如何在MATLAB中重命名循环中的变量?

时间:2013-08-09 08:41:25

标签: matlab

有人可以告诉我在MATLAB中是否存在在循环的每次迭代中重命名变量的方法吗?

实际上,我想在一个包含循环索引的不同名称的循环中保存一个变量。感谢。

3 个答案:

答案 0 :(得分:12)

根据您的评论,我建议使用cell array。这允许通过索引存储任何类型的结果。例如:

foo=cell(bar,1);
for ii=1:bar
    foo{ii}=quux;
end

然后,您可以保存foo以保留所有中间结果。虽然循环索引没有根据需要添加到变量名中,但它提供了相同的功能。

答案 1 :(得分:8)

忽略这个问题,“你为什么需要这个?”,你可以使用eval()函数:

示例:

for i = 1:3
  eval(['val' num2str(i) '=' num2str(i * 10)]);
end

输出结果为:

val1 =
    10

val2 =
    20

val3 =
    30

答案 2 :(得分:0)

另一种方法,使用struct将循环索引保存到字段名称中:

for ii=1:bar
    foo.(["var" num2str(ii)]) = quux;
end

这会创建一个包含foo.var1foo.var1等字段的结构。这可以在不使用eval的情况下实现您的目标。