Summary: This module introduces the script and function environment in MATLAB.
Script files, also called M- files as they
have extension
.m, make MATLAB programming much more efficient than
entering individual commands at the command prompt. A script file
consists of MATLAB commands that together perform a specific task.
The M-file is a text file which can be created and edited by any
plain text editor like Notepad, emacs or the built-in MATLAB
editor. To create a script in MATLAB use:
File - New - M -File from the menu. An example script
is shown below.
Our first script.
n = 0:pi/100:2*pi; %create an index vector
y = cos(2*pi*n); %create a vector y
plot(n,y); %plot y versus n
As shown above the %-sign allows for comments. Saving the script as
foo.m it can be executed as foo from the command prompt or by clicking the run
button in the MATLAB editor. Script files are very practical and should be the preferred alternative compared to the command prompt
in most cases.
As in most programming languages program flow can be controlled by using statements such as
for, while, if, else, elseif, and switch.
These statements can be used both in M-files and at the command prompt, the latter being highly
inconvenient. Below we show some examples. Use help to get more details.
for- To print "Hello World" 10 times write
for n=1:10
disp('Hello World')
end
for loops can in many cases be avoided by
vectorizing your code, more about that later.
if, elseand elseif - Classics that never go out of style.
if a == b
a = b + 1
elseif a > b
a = b - 1
else
a = b
end
Sometimes it is convenient to create your own functions for use in MATLAB. Functions are program routines, usually implemented in M-files. Functions can take input arguments and return output arguments. They operate on variables within their own workspace, separate from the workspace you access at the MATLAB command prompt.
Create a function for calculating the sum of
the
Solution: The sum of the N + 1 terms of a geometric
series is given by
function ssum = geom(a,N)
n=0:N;
ssum = sum(a.^n);
end
The function
geomcan then be called, e.g from the command prompt.
The function call geom(0.9,10)returns 6.8619.
To illustrate some more MATLAB programming we take on the task of
creating a MATLAB function that will compute the sum of an arbitrary geometric series,
Create a function to calculate the sum of an arbitrary geometric series.
Solution: For
function ssum = geomInf(a,N)
if(N==inf)
if(abs(a)>=1)
error('This geometric series will diverge.');
else
ssum=1/(1-a);
end
else
n=0:N;
ssum = sum(a.^n);
end
end
Note that in the two examples above we could have used the formula for the sum of a finite geometric series. However we chose to create a vector and use the function sum to illustrate MATLAB concepts.
Wouldn't it be great to learn from the best? Using the command type
followed by a function name the source code of the function is displayed.
As the built in functions are written by people with excellent knowledge of
MATLAB, this is a great feature for anyone interested in learning more
about MATLAB.