我一直以为save
将alrea存储完全相同的号码,你dy有已经用于将它们存储在matlab中的精度 - 你不会失去任何东西。唯一的问题可能是磁盘空间消耗(太精确的数字?)和.mat文件的封闭格式(不能被外部程序读取)。如果我想存储数据并稍后用matlab读取它们,我肯定会用save
。 save
也可以打印ascii数据,但是(如dlmwrite
)限于二维数组,所以使用dlmwrite
会比较适合您的情况。
另一种解决方案:
tmpM = [size(M), 0, reshape(M, [], 1)];
dlmwrite('filename.txt', tmpM, 'delimiter', '\t', 'precision', '%1.40f');
读书会有点难度,但只有一点点;)
然后,你可以写自己的函数写的东西用一个文件fopen
& fprintf
(就像dlmwrite
一样) - 您可以控制文件格式的各个方面(包括精度)。
如果我真的关心精度,文件大小和执行时间(这可能不是你的方式),我会做的事情是编写一个mex函数,它需要一个矩阵参数并将其存储在二进制文件中文件只需从matlab复制原始数据缓冲区。它也需要一些数组尺寸的指示,并且可能是最快的(不知道save
还没有做类似的事情)。
请记住,如果需要,您可以将您的4-D阵列“重塑”为2D并返回... – bla