lamsychen 发表于 2009-1-15 16:35

【求助】matlab循环load文件后死机

我用的linux redhat4 64位OS
8g内存

大概要循环load二千多张mat表,一共1.4g
每次都是到300多就死机了:@Q ,不知道怎么回事!:'(

请各位高手帮忙,小弟在此先谢过了!

ChaChing 发表于 2009-1-15 20:01

回复 楼主 lamsychen 的帖子

错误讯息是"Out of Memory"吗? 我记得Help文件中有, 找找吧!
另外LZ确定二千多资料必须同时存在吗? 实际上好像很少如此!

[ 本帖最后由 ChaChing 于 2009-1-15 20:02 编辑 ]

ch_j1985 发表于 2009-1-15 23:33

回复 楼主 lamsychen 的帖子

读取这么多文件,确实是个难题呀!
分多次循环可否?

lamsychen 发表于 2009-1-16 00:14

回复 沙发 ChaChing 的帖子

谢谢!
2千多张表确实是存在的 而且几乎每张表中都要提取一些数据
没有提示就是死掉了,应该是溢出问题
因为我debug的时候在linux下查看剩余内存
每加载一张表就要用去26m左右的内存空间
8g空间load到300多张就没反应了,只有重启。。。

lamsychen 发表于 2009-1-16 00:17

回复 板凳 ch_j1985 的帖子

恩!谢谢!
确实很困难,每次load后clear也没有什么作用
现在只有考虑分表操作了。。。但是要根据一定的规则分成几张表要增加工作量了。。::@(
不知哪位大大有关于matlab海量数据导入的方法
不胜感激!

ChaChing 发表于 2009-1-16 08:26

回复 地板 lamsychen 的帖子

LZ误会我的意思了, 可能我没表达得当!
是二千多资料必须同时存在於workspace, 而且占用不同位址的空间吗?
我遇过很多工程问题, 资料亦是大的惊人, 若是一开始都读入workspace, 铁定死机!
一般都会读一档, 马上进行资料处理, 仅留下後续必须用到的, 再读下一档(此时与上一次使用同变数)!
真的我看过很多此类大资料, 都可如此处理! 其实本应如此!

lamsychen 发表于 2009-1-16 12:50

回复 6楼 ChaChing 的帖子

恩。。应该是这样的
每load一张表用完后就把这张表clear掉
但是我的最终目的是把这2000张表拼接成一张大表
所以按照你的意思应该到最后等于2000张表同时存在在workspace了
其实每张表都不大,我以前也处理过load一张800多兆的表,也只占了3点G的内存。。
无奈表实在太多,我现在已经开始按条件分表集合然后再操作了。
页: [1]
查看完整版本: 【求助】matlab循环load文件后死机