Info
This question is closed. Reopen it to edit or answer.
Why is this Matrix Multiplication taking so long... using diag function
    4 views (last 30 days)
  
       Show older comments
    
Hi the vectors  are of length
 are of length  , and an array K is of length
, and an array K is of length  I want to turn
 I want to turn  into diagonal
 into diagonal  arrays to calculate the product
 arrays to calculate the product  and then sum the columns of this product, my code is
 and then sum the columns of this product, my code is 
 are of length
 are of length  , and an array K is of length
, and an array K is of length  I want to turn
 I want to turn  into diagonal
 into diagonal  arrays to calculate the product
 arrays to calculate the product  and then sum the columns of this product, my code is
 and then sum the columns of this product, my code is a=diag(a);
b=diag(b);
op=a*K*b;
p=sum(op);
but it takes a really long time to run, am I doing something that is bad practice which is slowing down this procedure im confused why this should take so long? More specifically the run time for that bit of code is 45 seconds ! 
EDIT : Consider the code 
m=10000 % or something larger !
K=rand(m);
a=rand(m,1);
b=rand(m,1);
% I want to calculate the matrix which has component i,j $a_i K_(i,j) b_j $
% and then sum the columns of the resulting matrix. 
% The following code is how I did this but it takes 45 seconds to run, is
% there a faster method ?
tic
a=diag(a);
b=diag(b);
op=a*K*b;
p=sum(op);
toc
0 Comments
Answers (0)
This question is closed.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!