如何从 matlab 中的元胞数组写入多个 .csv 文件

How to write multiple .csv files from cell array in matlab

我有一个元胞数组。我想将单元格的每个元素写入一个 .csv 文件,并在此过程中专门命名该文件。

这是我的尝试:

for i=1:length(somecell)
     doublecell{i}=double(somecell{i});   
end

for j=1:length(doublecell)
    z=doublecell{j};
    csvwrite('matrix_%i.csv',z,j)
end

我希望我试图做的事情是清楚的,即使它是错误的。

您可以将您的代码缩短(并更正)为:

for i = 1:length(somecell)
    doubleVal = double(somecell{i});
    csvwrite(sprintf('matrix_%i.csv', i), doubleVal);
end

您不必将双精度值存储在中间元胞数组中,因为您可以在编写 CSV 文件时生成元素。

您的代码实际上有两个问题:

  • z=doublecell(j) 生成一个单元格,因为用括号索引单元格数组生成一个单元格。您将需要数值,因此这里的大括号索引是正确的:z = doublecell{j}.

  • csvwrite('matrix_%i.csv',z,j)不正确。您需要 sprintf 来创建文件名(参见示例)。