代码之家  ›  专栏  ›  技术社区  ›  dewalla

如何声明由其他变量组成的变量名(MATLAB)?

  •  0
  • dewalla  · 技术社区  · 15 年前

    我有一个变量需要依赖于循环中的另一个变量:

    for n=1:100
    
    newfilename="NEW_FILE_1.txt"
    
    end
    

    如何设置声明“newfilename”使变量“n”在其名称中?

    3 回复  |  直到 15 年前
        1
  •  5
  •   zellus    15 年前
    for n=1:100
        newfilename = ['NEW_FILE_' num2str(n) '.txt'];
    end
    
        2
  •  5
  •   yuk    15 年前

    或者在for循环中使用SPRINTF:

    for n=1:100
        newfilename = sprintf('NEW_FILE_%d.txt',n);
    end
    
        3
  •  1
  •   Kena    15 年前

    如果我答对了你的问题,你想在循环的最后,有一系列变量,叫做newfilename1,newfilename2。。。等。

    简单的回答是:不要。相反,将数据放在单元格数组中 如下

    for n=1:100
    
       newFilename{n} = sprintf('NEW_FILE_%i.txt', n)
    
    end
    

    然后可以将变量称为newfilename{1}、newfilename{2},等等。。。

    *有一种方法可以使用eval函数做你想做的事情,这个方法已经在其他帖子中得到了回答。但这只是坏习惯。