保存在加载文件的数组变量中

时间:2011-03-31 23:58:30

标签: matlab

我有

load t1.txt;
load t2.txt;
load t3.txt;
load t4.txt;

data=t1;

vector =[ 2 , 3 , 4 , 5 , 6 ];
for i = vector
    [TempFlag, MemberInd] = ismember( i, vector );
    fprintf('vector(%d) is %d\n', MemberInd, i);
    scatter( data(:,1),data(:,2))
end

如果我想对所有4个文件进行上述循环,你会如何在向量中加载它们,所以每次迭代它都会做其他数据?。

所以我想避免:

data = t2;

(loop)

data = t3;

(loop)

等...

1 个答案:

答案 0 :(得分:1)

您已设置data=1,但在此行中使用它就像一个矩阵:scatter( data(:,1),data(:,2)) ...应该给您一个Index exceeds matrix dimensions错误。

假设这是一个拼写错误,并且您只想针对data的不同值执行此操作,请使用嵌套循环。

data=[1,2,3,4];
vector=[2,3,4,5,6];

for i=data
    for j=vector
        <do stuff here>
    end
end

修改

如果您的文件名为t-{a,e,i,o,u}且数据变量的名称相同,则可以尝试以下操作:

fileName={'ta','te','ti','to','tu'};
for i=1:length(fileName)
    dummy=load(sprintf('%s.txt',fileName{i}));
    eval(sprintf('data=dummy.%s',fileName{i}));
    <other stuff here>
end