[英]MATLAB export multiple .csv files at one time
我有一个矩阵,需要在其中将每列导出到单独的.csv文件中。 我知道列数,如果我专门选择要导出的一列,则可以实现所需的结果。 我可以这样做:
dlmwrite('1.csv',data(:,1), 'precision', 9)
因此,如果我想要第2列,则将变量更改为data (:,2)
并将其保存为2.csv
。
所以我想要一个循环,它将自动执行所有这些操作。 我努力了
for i=1:Number_of_Columns
dlmwrite('(i).csv',csv_data(:,(i)), 'precision', 9)
end
这显然是行不通的,但我不确定该怎么做。
任何帮助或建议,将不胜感激
您的问题是文件名。 如果将i
放在引号之间,它将被视为字符而不是变量。 (在您的情况下,您的文件名将始终为“(i).csv”)
您可以使用[]连接字符串,并且由于i是整数,因此必须使用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)
请注意,转置运算符为.'
而不是复共轭'
(这是常见的误用,因为只要使用实数,结果是相同的)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.