将MATLAB单元阵列导出到csv文件中

时间:2013-12-05 03:17:48

标签: arrays matlab export-to-csv cell-array

我希望以MATLAB代码的形式从csv文件中写出一些信息。

在MATLAB代码中,我将标题存储为单元格数组:

ToCSV={'Location' 'Weight_factor' 'Average' 'Maximum' 'Minimum'};

我通过循环将行附加到此单元数组。示例声明是:

ToCSV={ToCSV; {'EastLocation' 0.5 1e+3 1e+4 1e+2} };

我希望将其打印为csv文件。我使用了以下例程给出错误:

fid = fopen('outfile.csv','w');
fprintf(fid,'%s, %s, %s, %s, %s\n',ToCSV{1,:});
fprintf(fid,'%s, %f, %10.2e, %10.2e, %f\n',ToCSV{2:end,:});
fclose(fid);

>>Error using fprintf
>>Function is not defined for 'cell' inputs.

有人可以提供指导来实现这一目标吗? 我也试过csvwrite,但显然它与单元格数组不太合适。

2 个答案:

答案 0 :(得分:2)

问题在于以下陈述

ToCSV={ToCSV; {'EastLocation' 0.5 1e+3 1e+4 1e+2} };

这会在单元格数组中生成一个单元格数组,以便在索引ToCSV时得到一个单元格数组。我想你想连接这样一行:

ToCSV=[ToCSV; {'EastLocation', 0.5, 1e+3, 1e+4, 1e+2} ];

ToCSV(end+1,:) = {'EastLocation', 0.5, 1e+3, 1e+4, 1e+2};

逗号只是让它更容易阅读。

答案 1 :(得分:1)

aa=ToCSV{1,:};
bb=ToCSV{2,:};
fid = fopen('outfile.csv','w');
fprintf(fid,'%s, %s, %s, %s, %s\n',aa{:});
fprintf(fid,'%s, %f, %10.2e, %10.2e, %f\n',bb{:});
fclose(fid);