Vectorization of nested for loop
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
Réponses (1)
Sulaymon Eshkabilov
le 12 Oct 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')
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

