24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1961  |  回复: 13

猪二胖子

金虫 (正式写手)

[交流] 【求助】拜求高手解释下matlab的报错-----“out of memory”已有10人参与

编制了个小程序,内有嵌套的for循环(共计两个而已),开始计算后的前几千次还能正常运转,之后就出现了下列报错:


??? Error using ==> transpose
Out of memory. Type HELP MEMORY for your options.
Error in ==> odefinalize at 48
    solver_output{2} = yout(:,1:nout).';
Error in ==> ode45 at 541
solver_output = odefinalize(solver_name, sol,...



以前也遇到过,只不过糊里糊涂就pass过去了。
现在想深入理解一下这个问题,请高手详细解释下可以吗?
(出现这个报错的机理是什么以及如何避免之)
回复此楼
我信我能,只要我用心去做!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by 猪二胖子 at 2011-04-15 18:57:48:
编制了个小程序,内有嵌套的for循环(共计两个而已),开始计算后的前几千次还能正常运转,之后就出现了下列报错:


??? Error using ==> transpose
Out of memory. Type HELP MEMORY for your options.
...

内存不足。

两个方面的处理:

1、增加内存:物理内存或虚拟内存

2、优化程序:采用矢量化的计算,减少循环
明德厚学、求是创新
2楼2011-04-15 20:18:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

猪二胖子

金虫 (正式写手)

引用回帖:
Originally posted by xiegangmai at 2011-04-15 20:18:25:
内存不足。

两个方面的处理:

1、增加内存:物理内存或虚拟内存

2、优化程序:采用矢量化的计算,减少循环

原来2G的内存条也不够哦~~

就这些情况吗,还有没有别的了。。。。
我信我能,只要我用心去做!
3楼2011-04-15 20:21:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by 猪二胖子 at 2011-04-15 20:21:36:
原来2G的内存条也不够哦~~

就这些情况吗,还有没有别的了。。。。

没看到你的代码,不知道具体是什么原因。
查看一下进程,有没有特别占内存的进程?

1000次循环不算多
明德厚学、求是创新
4楼2011-04-15 20:22:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

猪二胖子

金虫 (正式写手)

引用回帖:
Originally posted by xiegangmai at 2011-04-15 20:22:51:
没看到你的代码,不知道具体是什么原因。
查看一下进程,有没有特别占内存的进程?

1000次循环不算多

你学机械动力学的呀~

《机械振动》与《非线性动力学》应该很强吧~

我闲着无聊正在算lorenz系统的分叉图玩玩,不过算不出来呀~
(出问题的正是这个计算程序)。

不知你能否搞到比较优化的matlab源程序,让我画出图来也爽一爽好不。。。。。
我信我能,只要我用心去做!
5楼2011-04-15 20:27:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gongping11

铁虫 (初入文坛)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
xiegangmai(金币+1): 鼓励讨论交流! 2011-04-16 22:37:06
建议你使用较新的版本2010a,那个改变了其中的数据存储方式。可以容纳更多的数据。官网上有提示的
6楼2011-04-16 12:18:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
xiegangmai(金币+1): 鼓励讨论交流! 2011-04-17 22:22:59
内存不够用,对于程序来说多大内存都不算大,关键是怎么用内存
1.简化计算方式,优化算法
2.释放内存
3.换更大的内存
4.....
7楼2011-04-17 14:27:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

justyet

金虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
xiegangmai(金币+1): 鼓励讨论交流!16G内存,算什么东东还出现内存不足啊? 2011-04-17 22:23:44
我16G的内存,有时候都不行
不需要的变量clear掉,能用函数尽量用函数
8楼2011-04-17 16:17:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

猪二胖子

金虫 (正式写手)

引用回帖:
Originally posted by justyet at 2011-04-17 16:17:36:
我16G的内存,有时候都不行
不需要的变量clear掉,能用函数尽量用函数

汗,你应该多架几台服务器。。。。
我信我能,只要我用心去做!
9楼2011-04-18 22:04:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

skyflow

铜虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖
建议提前分配变量空间,不要随循环变化,这样会减少内存碎片,提高内存效率!
仰望未来!
10楼2011-04-19 16:05:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 猪二胖子 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见