Arrays 将MATLAB单元数组导出到csv文件中
我想从一个MATLAB代码中以csv文件的形式写一些信息 在MATLAB代码中,我将标题存储为单元格数组:Arrays 将MATLAB单元数组导出到csv文件中,arrays,matlab,export-to-csv,cell-array,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('outf
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
,但显然它与单元阵列不匹配。问题在于下面的语句
ToCSV={ToCSV; {'EastLocation' 0.5 1e+3 1e+4 1e+2} };
这将在单元格数组中创建一个单元格数组,以便在索引ToCSV
时获得一个单元格数组。我想您应该像这样连接一行:
ToCSV=[ToCSV; {'EastLocation', 0.5, 1e+3, 1e+4, 1e+2} ];
或
逗号只是让它更容易阅读。你运行的是什么版本?@Xiaolezhu,我的MATLAB版本是R2012aI本打算建议使用表格和
writetable
函数,但我猜这可能在你的版本中不可用。他在循环。当连接第二次运行时,这将中断。您是对的。谢谢你指出。你的答案是I+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);
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);