更快的方法在matlab中添加许多大型矩阵

时间:2018-05-08 02:19:41

标签: matlab performance sum add

假设我有很多(大约1000个)大型矩阵(大约1000乘1000)并且我想将它们一起添加到元素中。非常天真的方法是使用临时变量并在循环中累积。例如,

summ=0;
for ii=1:20
    for jj=1:20
    summ=summ+ rand(400);
    end
end

在互联网上搜索了一段时间之后,有人说在sum()的帮助下做得更好。例如,

sump=zeros(400,400,400);
count=0;
for ii=1:20
    for j=1:20
        count=count+1;
        sump(:,:,count)=rand(400);
    end
end
sum(sump,3);

然而,在我测试了两种方法后,结果是

Elapsed time is 0.780819 seconds.
Elapsed time is 1.085279 seconds.

这意味着第二种方法更糟糕。

所以我只是想知道是否有任何有效的方法来添加?假设我正在使用具有超大内存和GTX 1080的计算机(CUDA可能会有所帮助,但我不知道是否值得这样做,因为通信也需要时间。)

感谢您的时间!任何回复都将受到高度赞赏!

0 个答案:

没有答案