6

私の問題は、Dymola によって生成されたいくつかの MAT ファイルを開くことです。小さなモデルの場合、MATLAB で作成された MAT ファイルを問題なく開くことができる場合があります。次に、ワークスペースで構造を確認できます。しかし、31.536.000 データ ポイントの巨大なシミュレーション モデルもあります。このモデルの場合、MATLAB はそれを開くことができません。いつもヒントをもらっています

Error using load
Unable to read MAT-file C:\Users\Patrick\Desktop\DymolaWork\GridHH_SLP.mat

File may be corrupt.

私の MATLAB バージョンは R2014a 64 ビットで、Dymola バージョンは 2014 FD001 64 ビットです。loadfixnamesまた、MathWorks ホームページで提供されている破損した変数名 ( / )を解決するツールを使用して問題を修正しようとしましたsavebadnames。しかし、このツールでは行列を復元できないため、これは正しく機能しませんdata_2。この問題を解決するためのアドバイスをくれる人はいますか?

4

3 に答える 3

3

Matlab4 形式では問題ありません。行列の行数と列数は、2 つの 32 ビット符号なし整数として格納されます。これにより、サイズ 8*(2^32-1) *(2^32-1) の double 行列が可能になります。これは、形式を読み取るための実装上の問題にすぎません。

モデルに約 136 を超える変数がある場合、データ ポイントの数を考えると、data_2 行列の合計サイズは 4GB を超えます (これが正しいかどうかは、GridHH_SLP.mat のファイル サイズからおそらくわかります)。この場合、Matlab はこのサイズの行列を処理するようにプログラムされていない可能性があります。Octave で 39GB の data_2 マトリックスを試してみましたが、次のように表示されますerror: out of memory or dimension too large for Octave's index type。OpenModelica で同じファイルを開くことができました (ただし、デフォルトでは転置形式で保存されないため、このような大きなファイルをプロットするには効率的ではありません)。

Dymola が少数の変数を出力できる場合、ファイルは Matlab で正常に機能する可能性があります。alistDymola に付属のプログラムを試して、mat ファイルの選択変数を csv 形式に出力することもできます (alist が大きなファイルを処理できる場合)。

于 2014-06-01T15:08:12.030 に答える