Info

この質問は閉じられています。 編集または回答するには再度開いてください。

How to vectorize this code? element wise to save time

3 ビュー (過去 30 日間)
MIDO
MIDO 2020 年 4 月 19 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
% size(matAL) > 32,500,5
matCT=zeros(500,32,32); %Pre-allocate
x=0;
for t=1:500
x=1+x;
for i=1:32
for j=1:32
xsd = squeeze(matAL(i,t,:) .* conj(matAL(j,t,:)));
matCT(x,j,i) = abs(mean(exp(1i*angle(xsd))));
end
end
end

回答 (1 件)

Vimal Rathod
Vimal Rathod 2020 年 4 月 26 日
Hi,
As all the three for loops have some dependencies it is difficult to vectorize the code.
you can try the following code, it is partially vectorized.
for i = 1:32
for j = 1:32
xsd = squeeze(matAL(i,1:500,:) .* conj(matAL(j,1:500,:)));
matCT(1:500,j,i) = abs(mean(exp(1i*angle(xsd(1:500,:)))'));
end
end

この質問は閉じられています。

タグ

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by