给定矩阵A
,我需要与其他n
向量相乘Bi
(即i=1...n
).大小A
可以像5000x5000
,因此Bi
喜欢5000x1
.
如果我按以下方式评估产品:
for i=1:n product=A*Bi; % do something with product end
结果是比计算产品的方式(数量级)慢:
%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
的问题是,数n
矢量的Bi
可能太大而被存储在存储器中,例如n=300000
,所以需要使用一个环方法,其中每个时间予评估该产品,用它,然后丢弃该载体Bi
.
与直接乘法相比,为什么这种方法如此缓慢,有没有办法克服这个问题?