如何在MATLAB中重命名循环中的变量?
有人能告诉我在MATLAB中循环的每次迭代中是否存在重命名变量的方法吗 实际上,我想在一个循环中保存一个变量,并使用一个包含循环索引的不同名称。谢谢。忽略“为什么需要此功能?”的问题,您可以使用以下功能: 例如:如何在MATLAB中重命名循环中的变量?,matlab,Matlab,有人能告诉我在MATLAB中循环的每次迭代中是否存在重命名变量的方法吗 实际上,我想在一个循环中保存一个变量,并使用一个包含循环索引的不同名称。谢谢。忽略“为什么需要此功能?”的问题,您可以使用以下功能: 例如: for i = 1:3 eval(['val' num2str(i) '=' num2str(i * 10)]); end 输出为: val1 = 10 val2 = 20 val3 = 30 根据您的评论,我建议使用一个。这允许通过索引存储任何类型
for i = 1:3
eval(['val' num2str(i) '=' num2str(i * 10)]);
end
输出为:
val1 =
10
val2 =
20
val3 =
30
根据您的评论,我建议使用一个。这允许通过索引存储任何类型的结果。例如:
foo=cell(bar,1);
for ii=1:bar
foo{ii}=quux;
end
然后可以保存
foo
,以保留所有中间结果。虽然循环索引没有按照您的需要烘焙到变量名称中,但这提供了相同的功能。另一种方法是,使用结构将循环索引保存到字段名称中:
for ii=1:bar
foo.(["var" num2str(ii)]) = quux;
end
这将创建一个包含
foo.var1
、foo.var1
等字段的结构。这可以实现您想要的功能,而无需使用eval
创建一个大小合适的向量foo
,并存储在foo(loopidx)
?@MarcClaesen,Hi Marc。谢谢,但这不是我想要的方式。它应该类似于:var_i,其中“i”是循环的当前索引。我需要将这些变量存储在MAT文件中。+1:…在大多数情况下,最好避免eval,因为有时候eval是邪恶的…虽然这是可能的,但通常不建议这样做,请参阅。Marc Claesean给出的答案是正确的方法。。