Connexions

You are here: Home » Content » Vectorizing loops in MATLAB
Content Actions

Vectorizing loops in MATLAB

Module by: Anders Gjendemsjø

Summary: In MATLAB, one should always try to avoid using loops. This module introduce the concept of vectorization.

In MATLAB one should try to avoid loops. This can be done by vectorizing your code. The idea is that MATLAB is very fast on vector and matrix operations and correspondingly slow with loops. We illustrate this by an example.
Example 1 
Given an=n an n , and bn=1000-n bn 1000 n for n=1,...,1000 n 1,...,1000 . Calculate n=11000anbn n 1 1000 an bn , and store in the variable ssum.
Solution: It might be tempting to implement the above calculation as
a = 1:1000;
b = 1000 - a;
ssum=0;
for n=1:1000 %poor style...
   ssum = ssum +a(n)*b(n);
end
Recognizing that the sum is the inner product of the vectors aa and bb, abT a b T , we can do better:
ssum = a*b' %Vectorized, better!
For more detailed information on vectorization, please take a look at MathWorks' Code Vectorization Guide.

Comments, questions, feedback, criticisms?

Discussion forum

Send feedback