Vectorization of nested for loop

4 Ansichten (letzte 30 Tage)
Ilaria
Ilaria am 12 Okt. 2023
Bearbeitet: Ilaria am 8 Dez. 2023
Hello,
I am trying to vectorise a piece of code. The code is the following:
main_calc=zeros(N,length(time)); %initialize main calculation
for wall_send=1:length(6) %sending wall
for send=1+lenght(wall_send):lenght(wall_send+1) %elements on the sending wall
for wall_rec=1:length(6) %receiving wall
for rec=1+lenght(wall_send):length(wall_send+1) %elements of receiving wall
main_calc(rec,time_step_ij)=main_calc(rec,time_step_ij)+previous_calc(send,time_step_ij); %new calc
end
end
end
end
previous_calc=main_calc; %update
How do I vectorize the above code?
Thank you

Antworten (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov am 12 Okt. 2023
I don't think what you are doing is a vectorization. Here is a simple demo of vectorization :
% Loop
x = linspace(0, 2*pi);
y = linspace(-pi, pi);
Z = zeros(numel(x), numel(y));
for ii = 1:numel(x)
for jj=1:numel(y)
Z(ii,jj) = sin(x(ii))+cos(y(jj));
end
end
figure(1)
mesh(Z)
title('Computed with a loop')
% Vectorization
x = linspace(0, 2*pi);
y = linspace(-pi, pi);
[X, Y] = meshgrid(x,y);
Z = sin(X)+cos(Y);
figure(2)
mesh(Z')
title('Computed with a vectorization')
  1 Kommentar
Ilaria
Ilaria am 16 Okt. 2023
i am not sure this does help me. What should I do in my case?

Melden Sie sich an, um zu kommentieren.

Kategorien

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

Community Treasure Hunt

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

Start Hunting!

Translated by