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

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日

悬赏问题

  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化