将matlab单元格写入csv文件

时间:2014-01-04 21:47:35

标签: matlab csv cell

所以我有一个具有以下结构的单元格:

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中 没有为“单元格”输入定义函数。

我做错了什么?

2 个答案:

答案 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