matlab工作区访问具有相似名称的多个变量

时间:2013-11-19 18:05:27

标签: matlab

我有一个包含数据的文件列表......

    foo1.txt
    foo2.txt
    ...
    fooN.txt

我提取这些文件中的数据

    foo1
    foo2
    ...
    fooN

我现在想将这些变量传递给函数

   for i = 1:N
       % This is what I want: asdf = fooi
       function(asdf)
   end

我试过sprintf,还有

    asdf = ['foo' num2str(i)]

但是这些使得变量asdf成为char,而不是像fooi那样的双重变量。

提前致谢。

-gsandhu

2 个答案:

答案 0 :(得分:2)

Immidiate solution

asdf = eval( sprintf('foo%d',i) );

然而, 这是一般的好习惯 您应该做的是将文件读入单元格元素foo{1}将使foo1.txtfoo{2}的内容具有foo2.txt的内容,依此类推。这样,您只需访问foo{i}并获取所需的数据。

PS,
最好not to use i as a variable name in Matlab

答案 1 :(得分:0)

您可以使用eval功能

eval(['foo' num2str(i)])