Can this be accelerated?
Show older comments
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
Accepted Answer
More Answers (0)
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!