Matlab内存溢出错误 Out of memory(重新总结)
Matlab内存溢出错误 Out of memory作者:alljoyland
Email: wjlmail1@163.com
HUST
matlab -nojvm(tips)
2008年12月20日21:34:04
a = zeros(200,200,10000);
??? Error using ==> zeros
Out of memory. Type HELP MEMORY for your options.
这个问题大多数是 矩阵太大,
因为单个矩阵太大而导致的这种错误,
解决办法
1.
稀疏矩阵
2.
化整为零
3.
内存加大,虚拟内存加大,采用64位的操作系统
4.
写入文件,而不是内存
5.
减少不必要的内存指出,如不保存中间变量
1,4和5 应该是最常见的办法化整为零
比如一个动态矩阵
A(200,200,1000)
可以分成 a(200,200,200) * 5
也就是每个A 分成5个小a
大块的矩阵不容易从系统得到
写入文件
如 fwrite
dlmwrite
等
化内存为外存
减少同时存在的大矩阵
有时候有些历史文件是可以不保存的
所以只要
一步 或者 两步,
不需要把每步都保存下来,所以不要的
立即销毁
内存释放原则
不要的中间变量马上销毁
Vista 64位matlab
参看前辈帖子
http://forum.vibunion.com/forum/thread-26077-1-1.html
http://forum.vibunion.com/forum/thread-57860-1-1.html###
http://forum.vibunion.com/forum/thread-59532-1-1.html
http://forum.vibunion.com/forum/archiver/tid-35912.html
[ 本帖最后由 alljoyland 于 2008-12-20 22:30 编辑 ] 能不能把这个内存释放掉呢
页:
[1]