迭代地将字符串连接到变量 - matlab

时间:2016-03-18 21:20:58

标签: matlab octave

我从一个目录中加载我的.txt文件,其中包含4x4矩阵,直接在变量(rotLM)中加载以下代码:

  for i= 1:5
    file_rotLM= strcat('C:\Users\pc\Desktop\matrices\rotLM',int2str  (i),'.txt'); 
    rotLM= strcat('rotLM',int2str(i))
    rotLM= load(file_rotLM);
  end

我想要的是:变量名称" rotLM"应该包含最后的连接字符串。喜欢:" rotLM1,rotLM2 ... rotLM5"每个变量应包含相应的矩阵参数。 如果我运行上面的代码我只得到:

 rotLM = rotLM1
 rotLM = rotLM2
 rotLM = rotLM3
 rotLM = rotLM4
 rotLM = rotLM5

如果我在命令窗口中提示:rotLM它只给我最后一个读取矩阵,但如果我输入例如rotLM1我收到错误"' rotLM1'在第1行第1列"

附近未定义

这里我的错误是什么? 谢谢!

1 个答案:

答案 0 :(得分:1)

永远不要将索引放入你的变量名中,假设你在第一时间完成它,你最终得到的代码是可怕的维护。例如,对于这样的变量没有迭代器。而是使用单元格数组:

n=5
rotLM=cell(n,1);  
for ix= 1:5
    file_rotLM= strcat('C:\Users\pc\Desktop\matrices\rotLM',int2str(ix),'.txt'); 
    rotLM{ix}= load(file_rotLM);
end