Graphics Programs Reference

In-Depth Information

i=

1

2

3

i=

1

3

6

Vectorised Code

matlab is a matrix language, and many of its algorithms are optimised

for matrices. matlab code can often be accelerated by replacing
for

and
while
loops with operations on matrices. In the following example,

we calculate the factorial of the numbers from 1 to 500 using a
for

loop. Create a script m-file called
factorialloop.m
that contains the

following code:

for number = 1:500

fact = 1;

for i = 2:number

fact = fact*i;

end

y(number) = fact;

end

We can time how long this program takes to run by using the stopwatch

functions
tic
and
toc
:

>> tic;factorialloop;toc

elapsed_time =

4.6332

which is the time in seconds. The same calculation can be done in much

less time by replacing the internal
for
loop by the
prod
function. Create

an m-file called
factorialvect.m
:

for number = 1:500

y(number) = prod(1:number);

end

This version takes about a tenth of the time:

>> clear

>> tic;factorialvect;toc

elapsed_time =

0.4331