Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MATLAB中重命名循环中的变量?_Matlab - Fatal编程技术网

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

如何在MATLAB中重命名循环中的变量?,matlab,Matlab,有人能告诉我在MATLAB中循环的每次迭代中是否存在重命名变量的方法吗 实际上,我想在一个循环中保存一个变量,并使用一个包含循环索引的不同名称。谢谢。忽略“为什么需要此功能?”的问题,您可以使用以下功能: 例如: for i = 1:3 eval(['val' num2str(i) '=' num2str(i * 10)]); end 输出为: val1 = 10 val2 = 20 val3 = 30 根据您的评论,我建议使用一个。这允许通过索引存储任何类型

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

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

忽略“为什么需要此功能?”的问题,您可以使用以下功能:

例如:

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给出的答案是正确的方法。。