首页 > 解决方案 > Matlab For Cycle,选择以递增数字命名的变量

问题描述

我有许多包含我必须以相同方式详细说明的数据的向量,它们以这种方式命名:“data1”,“data2”ecc ...我想用for循环自动化这个过程,怎么能我使用索引迭代地“选择”变量?例如,我阐述的第一行是“x = data1”之类的赋值,我希望第二个循环执行“x = data2”等等。先感谢您

标签: matlabfor-loop

解决方案


您可以使用strcat和的组合num2str来创建变量的名称

i = 1;
name = strcat("data",int2str(i));

因此,将它放在一个 for 循环中,更新i将不断更改名称。接下来您可以使用eval来评估名称

x = eval(name);

总共

for i = 1:n
    name = strcat("data",int2str(i));
    x = eval(name);
end

注 1:以这种方式创建变量名通常被认为是不好的做法。将所有变量保存在同一个数组中会更好。正如 Luis Mendo 在评论中所链接的那样。

注 2:它通常被认为是一个 for 循环,而不是一个 for 循环:D


推荐阅读