【问题标题】:concatenate string to a variable iteratively - matlab [duplicate]迭代地将字符串连接到变量 - matlab [重复]
【发布时间】:2016-03-18 21:20:58
【问题描述】:

我从一个目录中加载我的 .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' undefined near line 1 column 1”

我的错误是什么? 谢谢!

【问题讨论】:

    标签: matlab octave


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2019-03-03
      • 1970-01-01
      • 2014-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多