Запись ячейки (matlab) в CSV-файл
как я могу сохранить эту ячейку
data = cell([3 2]);
data{1,1} = 'Bla';
data{2,1} = 'Bla1';
data{3,1} = 'Bla2';
data{1,2} = '2';
data{2,2} = '3';
data{3,2} = '1'
в файл csv?
пробовал
dlmwrite('C:UsersRoDesktopMestradoResultadosTabelasVaR_tab.csv',data,'delimiter',';')
но он дает это сообщение об ошибке:
Error using dlmwrite (line 118)
The input cell array cannot be converted to a matrix.
1 ответов
Я просто попробовал это, и это сработало:
filename = 'test';
cell2csv(filename,data)
С cell2csv
доступно как
function cell2csv(filename,cellArray,delimiter)
% Writes cell array content into a *.csv file.
%
% CELL2CSV(filename,cellArray,delimiter)
%
% filename = Name of the file to save. [ i.e. 'text.csv' ]
% cellarray = Name of the Cell Array where the data is in
% delimiter = seperating sign, normally:',' (default)
%
% by Sylvain Fiedler, KA, 2004
% modified by Rob Kohr, Rutgers, 2005 - changed to english and fixed delimiter
if nargin<3
delimiter = ',';
end
datei = fopen(filename,'w');
for z=1:size(cellArray,1)
for s=1:size(cellArray,2)
var = eval(['cellArray{z,s}']);
if size(var,1) == 0
var = '';
end
if isnumeric(var) == 1
var = num2str(var);
end
fprintf(datei,var);
if s ~= size(cellArray,2)
fprintf(datei,[delimiter]);
end
end
fprintf(datei,'\n');
end
fclose(datei);
Я скопировал код, потому что я не знаю, доступна ли функция в MathWorks File Exchange. Но Google тоже должен помочь.