我有一个单元数组。我想将单元数组中的每个元素写入一个.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
我希望你能明白我尝试做的事情,即使它是错误的。
我有一个单元数组。我想将单元数组中的每个元素写入一个.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
来创建文件名(请参见示例)。