我有一個變量sndpwr
其中有18000行,只有一列。當我使用fprintf
時,需要350MB的txt文件才能寫入。即使是csvwrite
和dlmwrite
也需要200多MB的空間。MATLAB需要巨大的350 MB內存寫一個列向量到TXT文件
任何人都可以告訴我任何函數或方法,將它寫入一個小文本文件。我正在將其導入另一個無法導入此類大文件的程序中。
fid = fopen('sndpwr.txt','wt');
fprintf(fid,'%0.6f\r\n',sndpwr');
fclose(fid);
謝謝!
EDIt:在工作區中它被描述爲31957476x1 double。對不起,我以前的錯誤數據。
'fid = fopen('sndpwr.txt','wt');'這是用單引號編譯的? C++何時成爲JavaScript? – PaulMcKenzie
我的第一個動作是仔細檢查你的變量'sndpwr'的確是大小'[18000 x 1]'。 @PaulMcKenzie,'C++'標記不相關,它應該被刪除。這是'Matlab'代碼。 – Hoki
使用'nbw = fprintf(fid,'%0.6f \ n',sndpwr);'。您不需要'\ r \ n',因爲這會在每條值線之間給出一條空行。你也不需要轉置(在'sndpwr'後刪除''')。 'nbw'變量將包含函數fprintf寫入光盤的字節數(仔細檢查該值)。如果我將'sndpwr = rand(18000,1);'保存到上面的代碼(根據我的建議)的文本文件中,我最終得到的文件只有176KB。我強烈懷疑你的'sndpwr'變量不是你想象的那樣。 – Hoki