Download Understanding MATLAB Script and Function Files and more Slides Computer Engineering and Programming in PDF only on Docsity!
MATLAB: Script and Function
Files
Lecture 19
MATLAB Script Files
- A MATLAB script file (Called an M-file) is a text
(plain ASCII) file that contains one or more
MATLAB commands and, optionally, comments.
- The file is saved with the extension ".m".
- When the filename (without the extension) is
issued as a command in MATLAB, the file is
opened, read, and the commands are executed as
if input from the keyboard. The result is similar
to running a program in C. The following slide is
the contents of an M-file. Note that there are no
prompts (>>).
MATLAB Script Files
- The preceding file is executed by issuing a
MATLAB command:
>> g
- This single command causes MATLAB to look in
the current directory, and if a file g13.m is found,
open it and execute all of the commands. The
result, in this case, is a plot of the data from
g13.dat.
- If MATLAB cannot find the file in the current
working directory, an error message will appear.
MATLAB Script Files
• When the file is not in the current working
directory, a cd or chdir command may be
issued to change the directory.
>> cd a:\ % Make a:\ the current working
directory
>> g
MATLAB Function Files
• A MATLAB function file (called an M-file) is a
text (plain ASCII) file that contains a MATLAB
function and, optionally, comments.
• The file is saved with the function name and
the usual MATLAB script file extension, ".m".
• A MATLAB function may be called from the
command line or from any other M-file.
MATLAB Function Files
- When the function is called in MATLAB, the file is
accessed, the function is executed, and control is
returned to the MATLAB workspace.
- Since the function is not part of the MATLAB
workspace, its variables and their values are not
known after control is returned.
- Any values to be returned must be specified in
the function syntax.
MATLAB Function Files
• It is OK to use the same variable names in the
returned value list as in the argument. The
effect is to assign new values to those
variables. As an example, the following slide
shows a function that swaps two values.
Example of a MATLAB Function File
function [ a , b ] = swap ( a , b )
% The function swap receives two values, swaps them,
% and returns the result. The syntax for the call is
% [a, b] = swap (a, b) where the a and b in the ( ) are the
% values sent to the function and the a and b in the [ ] are
% returned values which are assigned to corresponding
% variables in your program.
temp=a;
a=b;
b=temp;
MATLAB Function Files
• Referring to the function, the comments
immediately following the function definition
statement are the "help" for the function. The
MATLAB command:
>>help swap %displays:
The function swap receives two values, swaps
them,
and returns the result. The syntax for the call is
[a, b] = swap (a, b) where the a and b in the ( )
are the Docsity.com
MATLAB Function Files
• The MATLAB function must be in the current
working directory. If it is not, the directory
must be changed before calling the function.
• If MATLAB cannot find the function or its
syntax does not match the function call, an
error message will appear. Failure to change
directories often results in the error message:
Undefined function or improper matrix Docsity.com
MATLAB Function Files
• Unlike C, a MATLAB variable does not have to
be declared before being used, and its data
type can be changed by assigning a new value
to it.
• For example, the function factorial ( ) on the
next slide returns an integer when a positive
value is sent to it as an argument, but returns
a character string if the argument is negative.
MATLAB Function Files
function [n] = factorial (k)
% The function [n] = factorial(k) calculates and
% returns the value of k factorial. If k is negative,
% an error message is returned.
if (k < 0) n = 'Error, negative argument';
elseif k<2 n=1;
else
n = 1;
for j = [2:k] n = n * j; end
end Docsity.com