我有一个矩阵,我需要将每列导出到单独的.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
显然不会起作用,但我不确定该怎么做。
非常感谢任何帮助或建议
答案 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)
请注意,转置运算符为.'
而不是复共轭'
(这是一种常见的误用,因为只要您使用实数就会得到相同的结果)