How can I faster matrix multiplication

2 次查看(过去 30 天)
Hello, first time here to ask
I have a 3 by 3 matrix, say G. And I also have a row vector, R.
What I need is finding R * G * R.'
but it is running very slow.
It used around 84.5s to have it call 26800 times.
Is that normal? Or how can I speed up since I have to do it inside a nested for loop?
I am currently using matlab R2019b version.
Thank you!
  4 个评论
James Tursa
James Tursa 2020-2-26
So R is 1x3 and changing each iteration?
Paul
Paul 2020-2-26
yes
G = [...; ...; ...]
for a=0 to 5
for b = 0 to 5
for c = 0 to 5
R= [a b c];
R*G*R.'
end
end
end

请先登录,再进行评论。

回答(1 个)

KALYAN ACHARJYA
KALYAN ACHARJYA 2020-2-27
编辑:KALYAN ACHARJYA 2020-2-27
Is it simmilar?
G=[-0.00101584090085100 -0.0373729264800720 0.00786581385357300
-0.0373729264800720 -0.284509289498308 0.0752540345065320
0.00786581385357300 0.0752540345065320 -0.0158385837800100];
tic
result=cell(1,26800);
for i=1:26800
R=randi(10,[1,3]); % or Call the R here
result{i}=R*G*R';
end
toc
#
Elapsed time is 0.194492 seconds. (Measuring Elapsed Time Using tic and toc)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by