leonidas 发表于 2007-9-11 18:16

请教如何实现大矩阵计算?

我用三个矩阵,每个大小定义为zeros(1000,1000)然后进行乘法计算,
就会显示内存不足,是不是matlab只能用到1G内存再也大不了了,
我要想算大的矩阵是不是只有用C++了?

[ 本帖最后由 leonidas 于 2007-9-11 18:25 编辑 ]

eight 发表于 2007-9-11 18:40

原帖由 leonidas 于 2007-9-11 18:16 发表 http://www.chinavib.com/forum/images/common/back.gif
我用三个矩阵,每个大小定义为zeros(1000,1000)然后进行乘法计算,
就会显示内存不足,是不是matlab只能用到1G内存再也大不了了,
我要想算大的矩阵是不是只有用C++了?


2006版本的matlab好像只能用到1G。大矩阵也可以用 matlab 计算的,请参考几篇拙作(在置顶帖可以找到)

花如月 发表于 2007-9-11 19:01

>> A=ones(1000,1000);
>> tic;B=A^3;toc;
Elapsed time is 7.478497 seconds.
我的256M的内存,乘法没有问题呀?和电脑内存的关系不大吧?

leonidas 发表于 2007-9-11 19:05

回复 #3 花如月 的帖子

谢谢指点,尝试中.......

leonidas 发表于 2007-9-11 19:10

回复 #3 花如月 的帖子

如果我再加大呢?
X=zeros(10000,10000)这个矩阵都生成不了,
我看了精华贴了,如果我不想降低精度呢,不用unit8。

花如月 发表于 2007-9-11 20:04

回复 #5 leonidas 的帖子

有必要这么大的矩阵么?如果真有这么大,就分块处理吧。没有用uint8,我用的就是double的类型

eight 发表于 2007-9-11 20:59

原帖由 leonidas 于 2007-9-11 19:10 发表 http://www.chinavib.com/forum/images/common/back.gif
如果我再加大呢?
X=zeros(10000,10000)这个矩阵都生成不了,
我看了精华贴了,如果我不想降低精度呢,不用unit8。

用稀疏矩阵吧
页: [1]
查看完整版本: 请教如何实现大矩阵计算?