我一直以爲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