如何在Matlab中从单元数组中写入多个.csv文件

3

我有一个单元数组。我想将单元数组中的每个元素写入一个.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

我希望你能明白我尝试做的事情,即使它是错误的。

1个回答

2
您可以将您的代码缩短(并更正),如下所示:
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来创建文件名(请参见示例)。


第一个项目符号是我打错了,已经在问题中更正。感谢您的帮助。 - garserdt216

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接