私は常にsave
、matlab に格納するために既に使用されている精度で、既に持っているのとまったく同じ数値を格納すると考えていました。何も失うことはありません。唯一の問題は、ディスク容量の消費 (正確すぎる数値?) と .mat ファイルのクローズド フォーマット (外部プログラムから読み取ることができない) かもしれません。データを保存して、後で matlab で読み取るだけなら、間違いなくsave
.
save
ascii データを出力することもできますが、(as dlmwrite
) 2D 配列に制限されているため、この場合は使用dlmwrite
する方が適切です。
別の解決策:
tmpM = [size(M), 0, reshape(M, [], 1)];
dlmwrite('filename.txt', tmpM, 'delimiter', '\t', 'precision', '%1.40f');
読むのは少し難しくなりますが、ほんの少しです ;)
fopen
次に、 &を使用してファイルに何かを書き込む独自の関数を作成するだけですfprintf
(ちょうどdlmwrite
そうです) - そこで、ファイル形式のあらゆる側面 (精度を含む) を制御できます。
精度、ファイルサイズ、および実行時間を本当に気にかけている場合 (これはおそらくあなたの方法ではありません)、行列パラメーターを取り、それをコピーするだけでバイナリ ファイルに格納する mex 関数を作成することです。 matlab からの生データ バッファー。また、配列の次元を示す必要があり、おそらく最も速いでしょう(まだsave
似たようなことをしていないかどうかはわかりません)。