Hi,
The following computations are very expensive for large matrices A, B and the coefficient q.
C=reshape(A,a1*q,b1)*B;C=reshape(C,a1,b2*q);
a1 and a2 are the dimensions of A, while b1 and b2 are the dimensions of B and with the restriction that a2=b1*q.
In my applications, matrices A and B can have dimensions in the orders of thousands or more.
There is one way of implementing these operations using loops
C=zeros(a1,b2*q);acols=0:q:(b1-1)*q;ccols=0:q:(b2-1)*q;for ii=q:-1:1 C(:,ccols+ii)=A(:,acols+ii)*B;end
but that strategy is not as fast as the one above. Is there any way to accelerate these operations?
try them for instance with the following
b1=1300;b2=500;q=350;a1=300;a2=b1*q;B=rand(b1,b2);A=rand(a1,a2);
Thanks
Best Answer