我正在執行很多次模擬,並想將結果存儲在csv文件中。我怎樣才能一行一行地寫csv?
我只能將結果保存在一個數組中,並將數組寫入一個csv,但是這個數組會非常大,並且會對我的系統造成很大的負擔。
我在想它可能更容易模擬,將一個模擬的結果保存在csv中,完成一個新的模擬,然後將新的結果存儲在csv的第二行。
如何在matlab中逐一寫入csv行?
我正在執行很多次模擬,並想將結果存儲在csv文件中。我怎樣才能一行一行地寫csv?
我只能將結果保存在一個數組中,並將數組寫入一個csv,但是這個數組會非常大,並且會對我的系統造成很大的負擔。
我在想它可能更容易模擬,將一個模擬的結果保存在csv中,完成一個新的模擬,然後將新的結果存儲在csv的第二行。
如何在matlab中逐一寫入csv行?
嘗試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
fprintf比dlmwrite更快並且對系統的壓力更小 – mike
簡單,使用:dlmwrite(文件名,M ' - 追加')
例如:
simulation_results = [1,2,3,4]
dlmwrite('C:\<Your Directory Path>\simulaton_results.csv', simulation_results, '-append');
這將追加simulation_results矩陣的您指定的文件結尾。默認的分隔符是逗號...非常適合寫入csv文件。
查看fopen和fprintf –
[查看'dlmwrite(filename,M,' - append')'。](http://www.mathworks.com/help/matlab/ref/dlmwrite.html) – kmac
如果速度成爲一個問題,你應該考慮一個混合體,將行存儲在一個數組中,然後將這個數組寫入文件中。 'n'可能是100或1000,你可以玩弄它。 – Dan