小编xan*_*anz的帖子

Matlab重复矩阵乘法 - 循环与内置性能

给定矩阵A,我需要与其他n向量相乘Bi(即i=1...n).大小A可以像5000x5000,因此Bi喜欢5000x1.

如果我按以下方式评估产品:

for i=1:n
    product=A*Bi;
    % do something with product
end
Run Code Online (Sandbox Code Playgroud)

结果是比计算产品的方式(数量级)慢:

%assume that S is a matrix that contains the vectors Bi as columns, i.e. S(:,i)=Bi, then:
results=A*S;   %stores all the products in matrix form
% do something with results
Run Code Online (Sandbox Code Playgroud)

的问题是,数n矢量的Bi 可能太大而被存储在存储器中,例如n=300000,所以需要使用一个环方法,其中每个时间予评估该产品,用它,然后丢弃该载体Bi.

与直接乘法相比,为什么这种方法如此缓慢,有没有办法克服这个问题?

performance matlab matrix matrix-multiplication memory-efficient

5
推荐指数
1
解决办法
766
查看次数