matlab所能表示的最大矩阵?我想用100,000*100,000的矩阵,可是提示说超出了最大范围,这个要怎么解决?

如题所述

提示出错的问题也许是当前内存不足或者页面交换区被其他程序占用导致的。试试重启电脑,然后只运行 matlab 试试。如果问题依旧,那应该是矩阵太大造成的。两个解决方法:

1. 如果你只对部分数据进行操作,而非整个矩阵,则不需要申请那么大的空间来存放整个矩阵。例如,如果你每次只对 1*18000 的数据进行处理,则只需要申请 1*18000 大小的矩阵来存储,大不了用循环罢了。这是用时间换取空间的方法(事实上,大型矩阵处理时使用循环未必比不用循环慢)

2. 如果整个矩阵的数据是关联的(针对你的处理来说),可以考虑稀疏矩阵进行申请、存取,这时候数据中的 0 不被存储下来,不过对于原始数据,这种方法不一定作用很大(0 元素不多),你试试吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-03
楼上说得有道理。
其实在学矩阵论时,就学过矩阵分块,这么大的矩阵就算在matlab里可以定义,运算起来想必也不会快,不如把该矩阵分块处理,再计算,这样效率会高不少的。追问

嗯,非常感谢

第2个回答  2012-05-03
你这个矩阵是太大了,你弄小一点吧,如果数实在是很多的话,想办法分成几个矩阵!追问

每一行每一列都是有关联的,不好分开,没有其他办法了么?求高手指点

追答

这个真好像没有办法,我以前遇到就想办法分开了

第3个回答  2012-05-03
肯定大了,估计100*100以上就不可以了追问

10000*10000还行,100000的就不行了,怎么解决呢

追答

可以分成多个矩阵的

追问

O(∩_∩)O谢谢