Могу ли я написать документ в формате txt или csv с данными разных размеров в Matlab? - PullRequest
0 голосов
/ 14 мая 2018

Я использую Matlab R2013b. У меня есть матрица 100x100, которая содержит как числа, так и строки. Я преобразовал его в массив ячеек (alldat) и записал его в файл csv (blah.csv). Затем я попытался добавить одно число в верхнюю строку этого CSV-файла ... что Matlab не позволит мне сделать.

cell2csv('blah.csv',alldat)

Я могу добавить одно число 'n' внизу матрицы:

dlmwrite('blah.csv',n,'-append','delimiter',' ','roffset',1)

Но это не позволит мне сделать это наоборот (поэтому я могу поместить число в первую ячейку CSV-файла, а затем поместить матрицу под ним. Кто-нибудь может посоветовать?

Я также попытался вывести массив ячеек в текстовый документ, используя dlmwrite:

dlmwrite('blah.txt',alldat,'delimiter',' ');

И я продолжал получать эту ошибку:

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

1 Ответ

0 голосов
/ 14 мая 2018

Я часто использую таблицы для таких задач. Поскольку у вас есть массив 100 x 100, а не переменные с разными размерами, его можно адаптировать.

VarA={'12A3';123;'12B3'};
VarB={'45A6';456;'45B6'};
T=table(VarA,VarB);
writetable(T,'test.csv','WriteVariableNames',false)
T1=readtable('test.csv','ReadVariableNames',false)

Возможно, вы захотите использовать cell2table для создания таблицы непосредственно из вашего массива ячеек, хотя у меня это не сработало, потому что она сделала странные преобразования из числа в символ.

...