2011-02-16 5 views
7

以前のバージョンのMATLAB(7.6)では、私は厄介なものだと思ったOutOfMemoryErrorsを取得しました。しかし、私は7.11にアップグレードして以来、何らかの理由でもうエラーを投げていません。MATLABがOutOfMemoryExceptionsまたは最大可変サイズエラーを投げていない

これは、誤って大きすぎる変数を作成しようとすると、MATLABシェルが変数を作成してマシンを停止させることを意味します。

これらのエラーがスローされて正常に終了したり、コードをデバッグすることができますが、どこでも解決策を見つけることはできません。

有用な詳細: 64ビットマシンでOSX 10.5を使用していますが、RAMは4GBです。 MATLAB 7.6では

:MATLAB 7.11で

$ rand(50000); 
??? Error using ==> rand 
Maximum variable size allowed by the program is exceeded. 

$ rand(50000); 
(hang) 
+0

良い質問です。 Hubrisはいつも私を捕まえるようだし、私はmatlabをクラッシュさせる巨大な行列を作ることになります。 – Tim

+0

7.6 - > 7.11はアップグレードではなくダウングレードのようですか? – albanx

+0

@albanx:6-> 11はアップグレード版です。それは7.1.1ではない – Jonas

答えて

2

バージョン7.6と7.11の間で、Macintosh版のMATLABは、32ビットアプリケーションから64ビットアプリケーションに切り替えました。だから、アドレス空間を使い果たす代わりに、MATLABは嫌がらせをします。

+0

これは最も可能性の高い答えのようです。私は人工的にMATLABのアドレス空間の量を抑える方法はないと思いますか? –

+0

MATLABにはありません(通常、より多くのアドレス空間が必要です)、残念ながらMac OS Xでは使用可能なメモリを制限するためにlimit/ulimitメカニズムがサポートされていないようです。 – SCFrench

1

MATLABがハングアップしません。それは単なるページングであり、永遠にかかる。大きな配列を割り当て、Activity Monitorを開き、 'Virtual Memory'が成長して成長するのを見てください。

システム上のページファイルサイズを小さくすると、その問題を回避できます。

関連する問題