Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将MATLAB单元数组导出到csv文件中_Arrays_Matlab_Export To Csv_Cell Array - Fatal编程技术网

Arrays 将MATLAB单元数组导出到csv文件中

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

我想从一个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
,但显然它与单元阵列不匹配。

问题在于下面的语句

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);