Vectorization of Loops with Matrix Multiplications

1 回表示 (過去 30 日間)
Tommaso Belluzzo
Tommaso Belluzzo 2020 年 3 月 30 日
回答済み: Matt Shellhammer 2020 年 3 月 31 日
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 件のコメント
David Hill
David Hill 2020 年 3 月 30 日
It would help if you explained what you are trying to do (big picture).

サインインしてコメントする。

採用された回答

Matt Shellhammer
Matt Shellhammer 2020 年 3 月 31 日
%% 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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by