MATLAB一次导出多个.csv文件

时间:2016-12-16 12:41:04

标签: matlab csv matrix delimited-text

我有一个矩阵,我需要将每列导出到单独的.csv文件中。 我知道列的数量,如果我专门选择一列导出,我可以实现我想要的结果。我会这样做:

dlmwrite('1.csv',data(:,1), 'precision', 9)

因此,如果我想要第2列,我会将变量更改为数据(:,2)并将其另存为2.csv

所以我想要一个自动完成所有这一切的循环。我试过了

for i=1:Number_of_Columns
    dlmwrite('(i).csv',csv_data(:,(i)), 'precision', 9)
end

显然不会起作用,但我不确定该怎么做。

非常感谢任何帮助或建议

1 个答案:

答案 0 :(得分:2)

你的问题是文件名。如果在引号之间放置i,它将被视为字符而不是变量。 (在您的情况下,您的文件名将始终为“(i).csv”)

您可以使用[]连接字符串,因为我是一个整数,您必须使用num2str()将其转换为字符串

尝试:

for i=1:Number_of_Columns
    dlmwrite([num2str(i) '.csv'], csv_data(:,i), 'precision', 9)
end

PD:由于您将每列(而不是每一行)存储在一个文件中,我不确定您是否需要一个文件,其中每个元素都在一个单独的行中,或者您希望将该列存储为行并用逗号分隔。

如果您想要后者,请转置您的列:

dlmwrite([num2str(i) '.csv'], csv_data(:,i).', 'precision', 9)

请注意,转置运算符为.'而不是复共轭'(这是一种常见的误用,因为只要您使用实数就会得到相同的结果)