Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 一次分配多个字段的巧妙方法?

由于遗留函数调用,有时我不得不像这样写丑包装

function return = someWrapper(someField) a = someField.a; b = someField.b; % and so on, realistically it's more like ten variables that % could actually be grouped in a struct save('params.mat', 'a', 'b'); %etc. % then, on another machine, a function loads params.mat, does the calculations % and saves the result in result.mat containing the variables c,d,... load('result.mat', 'c', 'd'); return.c = c; return.d = d; % again, it's more than just two return values 因此,基本思想是使用与someField的字段名相同的名称创建变量,运行一个函数,并使用someFunction的返回变量的名称作为字段名来创建return结构。

有什么方法可以使用某些循环来简化此操作,例如在fieldnames(someField)吗?

还是我实际上应该使用其他方法?由于对someField和result做了一些进一步的处理, result我想继续使用结构,但是第二个问题可能是

可以save和load重定向变量名称吗?即例如可以使用someField.a作为值存储someField.a的变量a ,而不必首先分配a = someField.a ?



回答:

为什么不这样呢?

如果是s:

sa=1 sb=2 sc=3 然后,此命令使用变量a,b,c创建一个名为“参数”的matfile:

save arguments.mat -struct s 然后此命令将matfiles变量加载到结构中

r = load('arguments.mat')

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:17


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.