Связать строку с переменной итеративно - matlab
Я загружаю свои файлы.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 возле строки 1, столбец 1 "
В чем моя ошибка здесь? Спасибо!
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