有人可以告诉我是否有办法在 MATLAB 的循环的每次迭代中重命名变量?
实际上,我想将一个变量保存在一个具有不同名称的循环中,该名称包含循环的索引。谢谢。
根据您的评论,我建议使用cell array。这允许通过索引存储任何类型的结果。例如:
foo=cell(bar,1);
for ii=1:bar
foo{ii}=quux;
end
然后,您可以保存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
.