一个caiNiao 2021-09-09 01:20 采纳率: 100%
浏览 32
已结题

Matlab|为什么用保存结构体的文件做函数输入无法改变结构体内容?

例如定义一个函数:
function [] = wiiii(filename)
load (filename,'x');
x.name='kong';
save filename x;
end

主函数:
x.name='wang';
x.age=24;
save 'matttt.mat' x;
bhh='matttt.mat';
wiiii(bhh);
disp(x.name);

结果是显示的x.name还是'wang'
应该如何通过函数改变结构体里面的内容呢?

  • 写回答

2条回答 默认 最新

  • slandarer MATLAB领域优质创作者 2021-09-09 08:15
    关注

    你现在有两个x,wiii那个函数作用区域的x已经变了,主函数部分还是原来的x,是因为你只传了形参到wiii,因此你可以尝试传实参(设置全局变量)或者把x再传回来,以下提供把x传回来的写法:

    function x=wiiii(filename)
    load (filename,'x');
    x.name='kong';
    save filename x;
    end
    
    x.name='wang';
    x.age=24;
    save 'matttt.mat' x;
    bhh='matttt.mat';
    x=wiiii(bhh);
    
    disp(x.name)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月13日
  • 已采纳回答 9月5日
  • 创建了问题 9月9日

悬赏问题

  • ¥15 matlab中mjs用不了
  • ¥15 Ios抖音直播的时候如何添加自定义图片在直播间!
  • ¥60 riscv-pulpino总线上挂载axi从机
  • ¥15 ssh登录页面的问题
  • ¥50 关于在matlab上对曲柄摇杆机构上一点的运动学仿真
  • ¥15 jetson nano
  • ¥15 :app:debugCompileClasspath'.
  • ¥15 windows c++内嵌qt出现数据转换问题。
  • ¥15 stm32 串口通讯过程中的问题
  • ¥20 公众号如何实现点击超链接后自动发送文字