How can I efficiently vectorize a for-loop in MATLAB? Provide an example where vectorization significantly improves performance compared to a traditional loop.

2 views (last 30 days)
How can I efficiently vectorize a for-loop in MATLAB? Provide an example where vectorization significantly improves performance compared to a traditional loop.

Accepted Answer

recent works
recent works on 31 Jul 2023
Edited: Walter Roberson on 22 Aug 2023
Example to calculate the cumulative sum of an array using a for-loop and its vectorized version:
% Sample array
arr = 1:100000;
% Using for-loop
tic;
sum_loop = 0;
for i = 1:length(arr)
sum_loop = sum_loop + arr(i);
end
time_loop = toc;
% Using vectorization
tic;
sum_vectorized = sum(arr);
time_vectorized = toc;
disp("Using for-loop: Sum = " + sum_loop + ", Time taken = " + time_loop + " seconds.");
disp("Using vectorization: Sum = " + sum_vectorized + ", Time taken = " + time_vectorized + " seconds.");
  1 Comment
Les Beckham
Les Beckham on 31 Jul 2023
In case someone want to actually see the results:
% Sample array
arr = 1:100000;
% Using for-loop
tic;
sum_loop = 0;
for i = 1:length(arr)
sum_loop = sum_loop + arr(i);
end
time_loop = toc;
% Using vectorization
tic;
sum_vectorized = sum(arr);
time_vectorized = toc;
disp("Using for-loop: Sum = " + sum_loop + ", Time taken = " + time_loop + " seconds.");
Using for-loop: Sum = 5000050000, Time taken = 0.019152 seconds.
disp("Using vectorization: Sum = " + sum_vectorized + ", Time taken = " + time_vectorized + " seconds.");
Using vectorization: Sum = 5000050000, Time taken = 0.001957 seconds.

Sign in to comment.

More Answers (0)

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!