3D矩阵求和(复数倍)非常慢 - 可能的原因?

时间:2014-04-10 09:32:54

标签: matlab matrix

这听起来有点像初学者的问题,但请耐心等待。

我有两个大尺寸矩阵A和B(1502x128x128 复杂双) 我试图将它们加在一起但由于某些原因它似乎是一个永远持久的过程。 我想知道你是否可以指导我更快地完成这项工作

到目前为止,我尝试了以下两个脚本:

第一:

C=zeros(1502,128,128);

C=[A+B]

第二:

C=zeros(1502,128,128);

for ss=1:128
   C(:,:,ss)=squeeze(A(:,:,ss))+squeeze(B(:,:,ss));
end 

它是否很慢,因为它很复杂,没有办法解决这个问题,或者你对此有何看法。 谢谢

1 个答案:

答案 0 :(得分:1)

你有多少可用内存

A = rand(1502,128,128)+1i*rand(1502,128,128);
B = rand(1502,128,128)+1i*rand(1502,128,128);

tic 
C = A+B;
toc

需要:

Elapsed time is 0.211576 seconds.

它占用 1.2 GB RAM

我无法想象除了记忆问题之外的另一个原因。

在这种情况下,不需要预分配(C=zeros(1502,128,128);)。但你可以在开始时尝试clear C