2015-05-13 2 views
1

Результатом моего кода Matlab является N ячеек массивов, которые различаются по количеству строк, но длина их столбцов одинакова. Я хочу сохранить их отдельно в текстовом файле. например:Как сохранить данные Matlab в тексте с помощью цикла?

A{1} = {0 0;0.0909 1;0.1818 2;0.2727 3;0.3636 4}; 
A{2} = {0 0;0.25 1;0.5 2;0.75 3;1 4}; 
A{3} = {0 0;0.1429 1;0.2857 2;0.4286 3}; 

для цикла ниже не работает:

for i = 1:3 % N is 3 
    dlmwrite('my_data.txt',A{i}, ';'); 
end 

Как я могу иметь цикл, чтобы спасти их?

+0

Что не используя цикл и только 'dlmwrite (» my_data.txt», A)'? – Dan

+0

Ошибка при использовании dlmwrite (строка 118) Массив входных ячеек не может быть преобразован в матрицу. – mona

+0

О, я просто видел, что каждая ячейка содержит 2D-матрицу, на что вы хотите, чтобы результат выглядел? Вы хотите, чтобы 2 столбца, а затем стек 'A {1}' выше 'A {2}' и т. Д. В txt-файле ?. Также вы можете не просто создать числовую матрицу, которая напоминает ваш окончательный файл txt? – Dan

ответ

0

Для второго и третьего звонков необходимо использовать флаг -append на номер dlmwrite(). Попробуйте этот код:

dlmwrite('my_data.txt', A{1}, ';'); 

for i = 2:3 % N is 3 
    dlmwrite('my_data.txt', A{i}, ';', '-append', 'roffset', 1); 
end 
+0

Ошибка: Ошибка при использовании dlmwrite (строка 118) Делиметр не является допустимым атрибутом или разделителем. Разделитель должен быть единственным символом. ' – mona

0

я могу сохранить все данные с

save('data'); 

, а затем загружать каждую часть мне нужно с:

load('data.mat','A'); 
Смежные вопросы