可以考虑使用循环分批读取(特别是在各数据是独立的时候),或者使用稀疏矩阵来实现(对此可以参阅本版精华贴: [原创]提高matlab运行速度和节省空间的一点心得(之三))。另外,也可参考《深入浅出MATLAB 7_X混合编程》一书第一章 6. 读取整个txt文件的内容(获得文件中的所有字符): CODE:
f = fopen('yourfilename.txt','rt'); % t 属性根据需要可省略 x = fread(f,'*char'); fclose(f);
7. 把维数不同的矩阵及其变量名保存到一个 txt 文件中,例如 a1 = 123; a2 = [1 2 3;4 5 6] ,希望得到的 txt 文件如下: QUOTE: a1: 123 a2: 1 2 3 4 5 6
如果写入的时候简单一点,则可以采用以下方式,不过读取的时候比较麻烦: CODE: a1=123;
a2=[1 2 3;4 5 6];
fid = fopen('myfile.txt', 'wt'); fori=1:2
fprintf(fid, '%s: \\n %s\\n', ['a',int2str(i)], mat2str(eval(['a',int2str(i)]))); end
fclose(fid);
相反,如果写入的时候复杂一点,则读取的时候会简单一点: CODE: a1=123;
a2=[1 2 3;4 5 6];
fid = fopen('myfile.txt', 'wt'); fori=1:2
fprintf(fid, '%s: \\n', ['a',int2str(i)]); b = eval(['a',int2str(i)]);
fprintf(fid, [repmat('%d ', 1, size(b,2)), '\\n'], b'); end
fclose(fid);