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'
应该如何通过函数改变结构体里面的内容呢?

你现在有两个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)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632