【问题标题】:Writing a matlab cell to a csv file将 matlab 单元格写入 csv 文件
【发布时间】:2014-01-04 21:47:35
【问题描述】:

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

result{index} = {name, mean(winternights), max(winternights), var(winternights), sum(winternights)};

name 变量是一个字符串,其余的是数字。我发现将单元格写入 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 时出错 没有为“单元”输入定义函数。

我做错了什么?

【问题讨论】:

    标签: matlab csv cell


    【解决方案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);
    

    【讨论】:

      【解决方案2】:

      类似问题 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

      【讨论】:

      • 这正是我正在做的。 celldisp 用于显示单元格,我认为我不能使用它将单元格写入 csv 文件。
      猜你喜欢
      • 2013-01-11
      • 1970-01-01
      • 2019-02-02
      • 2021-07-18
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      相关资源
      最近更新 更多