1

私はMatlabに同一のコード、2台の異なるコンピューターを使用して分析された同一のデータを持っています。どちらもWin7 64bitです。どちらの Matlabs も 2014-a バージョンです。コードの実行が終了したら、save コマンドを使用して変数を保存し、.mat ファイルを出力します。

これらのファイルに対して 2 つの非常に異なるメモリ サイズを使用することは可能ですか? 1 つは 170 MB、もう 1 つは 2.4 GB のように? matlab で変数を確認すると、最大で 1.5 GB になるため、これはばかげています。この理由は何ですか?

.mat ファイルに保存すると、変数が圧縮されますか (通常の .mat 拡張子のまま)? 個々の変数を確認すると、合計で約 1.5 GB になるため、そうなっていると思います。

では、一方は小さいファイル サイズを出力するのに、もう一方は非常に大きいのはなぜでしょうか。

4

2 に答える 2

3

最近のバージョンの Mat は、gzip 圧縮を含む HDF5 です。おそらく 1 台の PC で、デフォルトのマット形式が圧縮をサポートしない古いバージョンに変更されています。バージョンを指定して保存すると、両方の PC が同じサイズになるはずです。

于 2015-02-12T14:24:56.640 に答える
0

この理由は、次の stackoverflow スレッドに基づいてわかりました: MATLAB: Differences between .mat versions

どうやら、コンピューターの 1 つは、はるかに小さいファイルを生成する -v7 形式を使用していたようです。- v7.3 では、ファイルが大幅に膨張します。しかし、これは私の意見では皮肉なことです。-v7.3 では 2 GB を超えるファイルを保存できるため、.mat ファイルに保存するとファイルがはるかに大きくなることを意味します。

とにかく、このリンクは非常に便利です。

アップデート:

上記のリンクに記載されているシリアル化を実装したところ、ファイル サイズが大きくなりました。私の場合、最適なオプションは -v7 形式を使用することです。これは、最小のファイル サイズを提供し、よく使用する構造体とセル配列も保存できるためです。

于 2015-02-12T15:56:03.217 に答える