对于字符串元胞数组,我使用以下简单函数,该函数C:\Users\NAME\Documents\MATLAB\@cell
位于您平台上的或等效的用户路径 ( ~/Documents/MATLAB/@cell
) 中。该@cell
名称告知 MATLAB,其中的函数@cell
只能用于元胞数组。
function csvwrite(fileName,cellArray)
fid = fopen(fileName,'w');
for i=1:size(cellArray,1)
fprintf(fid,'%s,',cellArray{i,1:end-1});
fprintf(fid,'%s\n',cellArray{i,end});
end
fclose(fid);
fprintf
如果您需要传统的 Windows/DOS 行结尾,请在第二次调用中将“\n”替换为“\n\r” 。如果您需要制表符,您也可以在第一次调用中将“,”替换为“\t”。
对于数值数组,您可以使用csvwrite
MATLAB 附带的函数。
如果您必须使用具有混合数据类型的元胞数组,则必须修改函数以接受格式说明符的数组。
function csvwrite(fileName,cellArray,spec)
fid = fopen(fileName,'w');
for i=1:size(cellArray,1)
fprintf([spec '\n'],cellArray{i,1:end});
end
fclose(fid);
对于具有类似于以下行的数组:例如,{ 1 3 5 'string1' string2' }
您将使用spec = '%d,%d,%s,%s'
。
基于这些示例,您可以编写一个更复杂的函数来测试每个单元格中的数据类型并构造一个格式字符串以匹配,以防您将有完全未知的数组内容。