我有一个变量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