Vectorization of Loops with Matrix Multiplications

1 Ansicht (letzte 30 Tage)
Tommaso Belluzzo
Tommaso Belluzzo am 30 Mär. 2020
Beantwortet: Matt Shellhammer am 31 Mär. 2020
Hi all. I have the following code which is being repeated many times with different time series and this is producing a huge bottleneck on my code:
%% Example Data
t = 252;
h = randn(252,2);
l = round(0.1 * t,0);
%% Loop
for i = 1:(l - 1)
o_tmp = h(1,:).' * h(1+i,:);
for j = 2:(t - i)
o_tmp = o_tmp + h(j,:).' * h(j+i,:);
end
o_tmp = o_tmp / (t - i);
end
I would like ti know if there is a suitable way to improve it, maybe by vectorizing all computations or just some of them. Any suggestion is more than welcome. Thanks in advance for your help!
  1 Kommentar
David Hill
David Hill am 30 Mär. 2020
It would help if you explained what you are trying to do (big picture).

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Matt Shellhammer
Matt Shellhammer am 31 Mär. 2020
%% Example Data
t = 252;
h = randn(252,2);
l = round(0.1 * t,0);
%% Loop
for i = 1:(l - 1)
o_tmp = (h(1:(t-i),:).' * h((1+i):t,:))/(t-i);
end

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by