所以我有一个具有以下结构的单元格:
result{index} = {name, mean(winternights), max(winternights), var(winternights), sum(winternights)};
名称变量是一个字符串,但其余的是数字。我发现将单元格写入csv文件的唯一方法如下:
fid = fopen('Measurements.csv','wt');
for i=1:size(result,1)
fprintf(fid, '%s,%d,%d,%d,%d\n', result{i,:});
end
fclose(fid);
但这会引发错误: ???使用==>时出错fprintf中 没有为“单元格”输入定义函数。
我做错了什么?
答案 0 :(得分:1)
当您指定result
时,调用result{i} = {...}
将单元格数组放在单元格数组result
的第i个元素内。因此,您需要将文件编写代码更改为以下
fid = fopen('Measurements.csv','wt');
for i=1:size(result,1)
fprintf(fid, '%s,%d,%d,%d,%d\n', result{i}{:});
end
fclose(fid);
答案 1 :(得分:0)
类似问题 here。
你可以这样做:
[nrows,ncols]= size(mycell);
filename = 'celldata.dat';
fid = fopen(filename, 'w');
for row=1:nrows
fprintf(fid, '%s %d %d %d\n', mycell{row,:});
end
fclose(fid);
或者您可以使用Matlab中心的this function cell2csv 。