MATLABでJAVAを使わない
Windows XP(32bit)版MATLAB 6.5 (R13)は一変数の大きさに制限があります。
ちょっと大きい変数を扱うとすぐに
??? エラー: ==> horzcat
メモリが足りません.HELP MEMORYとタイプしてオプションを確認してください
や
プログラムで利用できる最大変数サイズを越えました
と表示されてしまいます。
MathWorks社の
Technical Solutionsによると
MATLAB 6.5.1用の
patch.zip
をdownloadして
...\MATLAB6p5p1\bin\win32で解凍すると
r13sp1_exepatch.exeができるそうです。これを実行すれば容量は増えるそうです。
MathWorks社の
Product SupportからMATLAB 6.5(R13)用にdumpmemmex.dllをdownloadして
...\MATLAB6p5p1\bin\win32に保存して、一変数の容量の大きさを調べてみました。
path(path,'c:\MATLAB\bin\win32'); % pathを通す
dumpmemmex
Largest available memory block is 400556032 bytes (382.00 MB) located at address 22900000
と表示されました。要するに最大容量は382MB何だそうです。
JAVAを不使用とすれば、一変数で扱える容量が約150MB増えるそうです。
command promptを選択し
.../bin/win32/matlab nojvmと入力します。
以下のようにmatlab.exeがあるdirectoryを指定して-nojvmをつけてMATLABを起動します。
MATLABが起動しました。
Command Windowしかありません。MATLABが起動すればCommand promptは用なしです。終了します。
dumpmemmexで調べてみました。
dumpmemmex
Largest available memory block is 710942720 bytes (678.01 MB) located at address 100fe000
最大容量が678MBに増えました。
MATLAB 7.0 R(14) で調べてみました。commandは以下の通りです。
feature('DumpMem');
JAVAあり・・・569.5MB
JAVAなし・・・760.25MB
MATLABが64bit Windows対応になると一変数の容量制限が改善するものと期待しております。