сохранить в массив vars загруженных файлов Matlab - PullRequest
0 голосов
/ 01 апреля 2011

У меня есть

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 Ответ

1 голос
/ 01 апреля 2011

Вы установили 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...