萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 6868|回复: 22

[其他学科] 请教关于matlab的memory的问题,谢谢啦

[复制链接]
发表于 2009-7-26 17:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
如果编程过程中一个变量的值太大了,out of memory了,该怎么办啊?例如,将一个数组的所有排列组合放入另一个变量中,但是程序运行时显示出错。out=[out;choicevec(i)+ones(size(tempout, 1),1)tempout]

谢谢先啦~~~~~~~~~~~~~~~~~
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-7-26 17:53 | 显示全部楼层
本帖最后由 江南织造 于 2009-7-26 18:14 编辑

1.如果是java.lang.OutOfMemoryError
修改JAVA虚拟机的内存
请看这个
http://hi.baidu.com/zgyz/blog/item/fedb53f073cbfacb7831aaff.html

2.如果运行过程中OutOfMemory, 可增加虚拟内存
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-7-27 08:57 | 显示全部楼层
干嘛一定要用ones呢? choicevec(i)+1 不就行了? 用ones不是白白占用内存么?
还有, 如果matirx比较稀疏的话, 建议直接上sparse matrix. 极端节省内存
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-7-27 12:45 | 显示全部楼层
1.如果是java.lang.OutOfMemoryError
修改JAVA虚拟机的内存
请看这个
http://hi.baidu.com/zgyz/blog/item/fedb53f073cbfacb7831aaff.html

2.如果运行过程中OutOfMemory, 可增加虚拟内存
江南织造 发表于 2009-7-26 17:53



谢谢啦,偶重新试了一下,用了3G switche,但是还是不行啊。报错说是: error using => vertcat   out of memory   

哎~~~~~~~~~~~~~~~~
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-7-27 12:49 | 显示全部楼层
干嘛一定要用ones呢? choicevec(i)+1 不就行了? 用ones不是白白占用内存么?
还有, 如果matirx比较稀疏的话, 建议直接上sparse matrix. 极端节省内存
ElberEis 发表于 2009-7-27 08:57



8好意思,能不能麻烦说详细点啊,偶是菜鸟,不是很懂啊~~~~~~~~~~~   这个其实是报错信息里面的,说是 error using => vertcat out of memory   out=[out; choicevec(i)+ones(size(tempout,1),1) tempout] 偶实在是8太明白这个到底是什么意思。谢谢啦~~~~~~~~~~~
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-7-27 20:33 | 显示全部楼层
8好意思,能不能麻烦说详细点啊,偶是菜鸟,不是很懂啊~~~~~~~~~~~   这个其实是报错信息里面的,说是 error using => vertcat out of memory   out=[out; choicevec(i)+ones(size(tempout,1),1) tem ...
星星和月亮 发表于 2009-7-27 12:49


你是想 choicevec(i) 每个数值都加一吧
直接 choicevec(i)+1, 和你这个choicevec(i)+ones(size(tempout,1),1)  效果是等同的
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-7-27 23:17 | 显示全部楼层
你是想 choicevec(i) 每个数值都加一吧
直接 choicevec(i)+1, 和你这个choicevec(i)+ones(size(tempout,1),1)  效果是等同的
江南织造 发表于 2009-7-27 20:33


我其实是有一串数组,然后求他们不同的组合排列,但是这个数组有29个元素,然后从中取12个进行排列组合,运行了很长很长很长时间以后就告诉我out of memory。然后我又尝试了3G开关,也不行啊~~~~~~~~~ 我原程序里面没有用过choicevec(i),我用的是combntns(t, a)。那个choicevec(i)是报错信息里面出来的,我也不明白是怎么回事啊~~~~~~~~~~
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-7-27 23:27 | 显示全部楼层
我其实是有一串数组,然后求他们不同的组合排列,但是这个数组有29个元素,然后从中取12个进行排列组合,运行了很长很长很长时间以后就告诉我out of memory。然后我又尝试了3G开关,也不行啊~~~~~~~~~ 我原程序里 ...
星星和月亮 发表于 2009-7-27 23:17


汗一个, 29取12的排列组合..............确实有点大, 10的24还是23次方个数据
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2009-7-28 01:09 | 显示全部楼层
汗一个, 29取12的排列组合..............确实有点大, 10的24还是23次方个数据
江南织造 发表于 2009-7-27 23:27



对啊,所以我到现在也没想出来怎么解决这个问题啊~~~~~~~~~~~~~~~~~~
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-7-28 11:39 | 显示全部楼层
这样讨论没效率.
你把你的代码当中造成内存溢出的那一部分贴上来看看
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-4-27 22:47 , Processed in 0.065510 second(s), 20 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表