alljoyland 发表于 2008-12-20 22:26

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 编辑 ]

qxg6 发表于 2008-12-28 22:08

能不能把这个内存释放掉呢
页: [1]
查看完整版本: Matlab内存溢出错误 Out of memory(重新总结)