24小时热门版块排行榜    

查看: 1804  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

dlwxtj

铁杆木虫 (著名写手)

[求助] 大型矩阵的存储及读取问题已有2人参与

各位大神:
    本人好久不用matlab了,有些手生了。现打算处理36个大型矩阵(各矩阵维数不等),最大一个矩阵规模在10000*10000,为了减少内存,存成了单精度,算了下这个矩阵大概380M,为了不出现out of memory的问题,又将每个矩阵单独存为mat文件输出,并在计算下一个大型矩阵前进行及时清除。但仍然避免不了这36个大矩阵同时需要操作的问题,因为要将其合成一个更大规模的矩阵并求其逆矩阵。想了好几天也不知如何操作,还请大神们帮忙看看如何操作?另外想问下是否有好的方法将这36个矩阵存mat文件时就合成一个矩阵呢并存到mat文件中?数据库也看了下,好像更加复杂了,最好能避免用数据库。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   关注TA 给TA发消息 送TA红花 TA的回帖

lishouyin

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
dlwxtj: 金币+5, 有帮助, 谢谢! 2014-05-12 12:45:09
分块处理可不可以?

[ 发自手机版 http://muchong.com/3g ]
3楼2014-05-12 09:46:34
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
dlwxtj: 金币+10, 有帮助, 谢谢帮助! 2014-05-12 12:44:46
大矩阵的操作本来就耗费内存,规模太大精度不起作用,建议可以采用以下的方法:
1. 硬件方面,用64位系统并有足够的内存可用;
2. 若是稀疏矩阵,建议采用稀疏矩阵进行运算;
3. 不建议保存为一个大矩阵,因为这样不但可能导致out of memory,而且在之后的运算及使用时要耗费大量的时间用于导入这么大矩阵,而且若前面已经经过一系列的运算,很容易出现内存不足的情况,因为之前的运算已经将整体的内存单元分割成很多小小的单元,这样就不能分配出足够大的空余单元用于存储数据;若有足够的硬盘空间,可以以"-v6"的格式存储数据,这在导入时是最快的,但耗费硬盘的空间也最大,因为没有经过压缩;
4. 若以上方式不可行,请查一些关于矩阵计算的资料,里面有讲如何将很大的矩阵分割成小矩阵,然后对小矩阵进行求逆以得到大矩阵的逆;

祝好运
What would Jesus do?
2楼2014-05-11 23:57:34
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

dlwxtj

铁杆木虫 (著名写手)

请关闭此贴!谢谢
4楼2014-11-27 12:50:49
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见