如何逐行编写csv?

时间:2015-11-23 04:03:14

标签: matlab csv

我正在多次执行模拟,并希望将结果存储在csv文件中。

我可以将结果保存在数组中并将数组写入csv,但是数组会非常大并且对我的系统造成很大压力。

我认为可以更容易模拟,在csv中保存一个模拟的结果,完成新的模拟,然后将新结果存储在csv的第二行。

如何在matlab中逐一编写csv行?

2 个答案:

答案 0 :(得分:3)

简单,使用:dlmwrite(filename,M,' - append')

例如:

simulation_results = [1,2,3,4]

dlmwrite('C:\<Your Directory Path>\simulaton_results.csv', simulation_results, '-append');

这会将simulation_results矩阵附加到您指定的文件的末尾。默认分隔符是逗号...非常适合编写csv文件。

答案 1 :(得分:1)

试试fprintf

%save to file
%save using fprintf function

fid_out = fopen('file_out.csv','w'); %open file and create fid

%save tab-separated column headers
%define column format and names and save to file
fprintf(fid_out,'%s\t%s\t%s\t%s\n','a_name','b_name','c_name','d_name');

%save tab-separated columns of data
for i = 1:size(data,1) %loop trough each line of each data variable and save to file line by line

%define column format and date to be saved.
%use () for numeric data, and {} for strings
fprintf(fid_out,'%s\t%s\t%d\t%.5f\n',a{i},b{i},c(i),d(i));
end

fclose(fid_out); %close file

%NOTE: fprintf cannot save structured data