2015-11-23 31 views
0

我正在執行很多次模擬,並想將結果存儲在csv文件中。我怎樣才能一行一行地寫csv?

我只能將結果保存在一個數組中,並將數組寫入一個csv,但是這個數組會非常大,並且會對我的系統造成很大的負擔。

我在想它可能更容易模擬,將一個模擬的結果保存在csv中,完成一個新的模擬,然後將新的結果存儲在csv的第二行。

如何在matlab中逐一寫入csv行?

+0

查看fopen和fprintf –

+3

[查看'dlmwrite(filename,M,' - append')'。](http://www.mathworks.com/help/matlab/ref/dlmwrite.html) – kmac

+0

如果速度成爲一個問題,你應該考慮一個混合體,將行存儲在一個數組中,然後將這個數組寫入文件中。 'n'可能是100或1000,你可以玩弄它。 – Dan

回答

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 
+0

fprintf比dlmwrite更快並且對系統的壓力更小 – mike

3

簡單,使用:dlmwrite(文件名,M ' - 追加')

例如:

simulation_results = [1,2,3,4] 

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

這將追加simulation_results矩陣的您指定的文件結尾。默認的分隔符是逗號...非常適合寫入csv文件。

相關問題