请问有没有办法在MATLAB循环的每次迭代中重命名变量?
实际上,我想在循环中用一个包含循环索引的不同名称保存变量。谢谢。
根据您的评论,我建议使用cell数组。这允许通过索引存储任何类型的结果。例如:
foo=cell(bar,1);
for ii=1:bar
foo{ii}=quux;
end
你可以保存foo
来保留所有的中间结果。尽管循环索引没有像你想的那样嵌入变量名中,但这提供了相同的功能。
你可以保存foo
来保留所有的中间结果。尽管循环索引没有像你想的那样嵌入变量名中,但这提供了相同的功能。
eval()
:for i = 1:3
eval(['val' num2str(i) '=' num2str(i * 10)]);
end
val1 =
10
val2 =
20
val3 =
30
另一种方法是使用结构体将循环索引保存到字段名称中:
for ii=1:bar
foo.(["var" num2str(ii)]) = quux;
end
这将创建一个具有诸如 foo.var1
、foo.var1
等字段的结构。这样做可以满足您的需求,而无需使用 eval
。
foo
,并将其存储在foo(loopidx)
中? - Marc Claesen