Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

Why is this Matrix Multiplication taking so long... using diag function

조회 수: 1 (최근 30일)
daniel adams
daniel adams 2021년 11월 12일
마감: daniel adams 2021년 11월 12일
Hi the vectors are of length , and an array K is of length I want to turn into diagonal arrays to calculate the product 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개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by