MATLAB"内存不足"错误

Con*_*ngo 10 matlab

当我在MATLAB中运行示例脚本时,它说:

内存不足.键入HELP MEMORY以获取选项.

当我输入"记忆"时,它会报告:

Maximum possible array:             156 MB (1.638e+008 bytes) *
Memory available for all arrays:    740 MB (7.756e+008 bytes) **
Memory used by MATLAB:             1054 MB (1.105e+009 bytes)
Physical Memory (RAM):             3070 MB (3.219e+009 bytes)

*  Limited by contiguous virtual address space available.
** Limited by virtual address space available.
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个错误?我正在使用Windows XP x32和MATLAB 2009a.

Mar*_*cin 12

pack进行内存碎片整理.它可能对你可用的连续内存有所帮助.


Jac*_*cob 9

请记住,当MATLAB说内存不足时,这意味着它不在连续的内存中,因此重启或重启MATLAB可能会起作用.

但是,我建议优化你的代码,并确定你如何吃掉这么多的内存.它可能是一个设计不合理的递归循环,或者是一个糟糕的索引函数(使用双精度而不是逻辑来索引一个巨大的矩阵).

自从我处理大量数据集以来,我几乎一直存在记忆错误,但总有一种解决方法,提出具体问题,你会感到惊讶.


Con*_*ngo 6

问题已解决.

在Windows XP x32下,我通过编辑boot.ini来添加交换机/ 3GB/USERVA = 3030,几乎使MATLAB可用的内存量增加了一倍

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /3GB /USERVA=3030
Run Code Online (Sandbox Code Playgroud)

与减少我们的阵列大小一起,这完全解决了问题:)

我也可以通过升级到Windows x64或Windows 7 x64来解决问题.即使你坚持使用MATLAB x32并且不升级到MATLAB x64,这个行为也会使MATLAB可用的内存量翻倍.Windows x64的内存效率更高,即使系统只安装了4 GB的物理RAM.

  • "只有4GB的物理内存" - 嘿,这都是相对的 (3认同)