Vectorization of nested for loop
4 views (last 30 days)
Show older comments
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
Answers (1)
Sulaymon Eshkabilov
on 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')
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
