MATLAB can execute a sequence of statements stored on diskfiles. Such files are called "M-files" because they must have the file type of ".m" as the last part of their filename.

Much of your work with MATLAB will be in creating and refining M-files.

There are two types of M-files: *script files* and *function
files*.

A script file consists of a sequence of normal MATLAB statements. If
the file has the filename, say, *rotate.m*, then the MATLAB command

rotate

will cause the statements in the file to be executed. Variables in a
script file are global and will change the value of the environment. Script
files are often used to enter data into a large matrix; in such a file,
entry errors can be easily edited out. If, for example, one enters the
following in a diskfile, *data.m*:

A = [ 1 2 3 4 5 6 7 8 ];

then the MATLAB statement

data

will cause the assignment given in *data.m* to be carried out.

An M-file can reference other M-files, including referencing itself recursively.

Function files provide extensibility to MATLAB. You can create new functions specific to your problem which will then have the same status as other MATLAB functions. Variables in a function file are local.

We first illustrate with a simple example of a function file:

function P = prodsqr(A,B) PRODSQR Product of the square of two matrices. P = A^2*B^2;

Memory will be used more efficiently if A is overwritten with the result:

function A = prodsqr(A,B) PRODSQR Product of the square of two matrices. A = A^2*B^2;

This should be placed in a diskfile with filename *prodsqr.m* (corresponding
to the function name). The first line declares the function name, input
arguments, and output arguments; without this line, the file would be a
script file. Then a MATLAB statement

z = prodsqr(x,y)

for example, will cause the variables x and y to be passed to the variables A and B in the function file, with the output result being passed to the variable z. Since variables in a function file are local, their names are independent of those in the environment.

A function may also have multiple output argurnents. For example:

function [mean, stdev] = stat(x) STAT Mean and standard deviation For a vector x, stat(x) returns the mean and standard deviation of x. For a matrix x, stat(x) returns two row vectors containing, respectively, the mean and standard deviation of each column. [m n] = size(x); if m == 1 m = n; handle case of a rov vector end mean = sum(x)/m; stdev = sqrt(sum(x.^2)/m - mean.^2)

Once this is placed in a diskfile *stat.m*, the MATLAB command

[xm, xd] = stat(x)

for example, will assign the mean and standard deviation of the entries in the vector x to xm and xd, respectively. Single assignments can also be made with a function having multiple output arguments. For example,

xm = stat(x)

will assign the mean of x to xm.

This function illustrates some of the MATLAB features which you can
use use to produce efficient code. Note, for example, that **x.^2**
is the matrix of squares of the entries of x, that **sum** is a vector
function (see the section on "Matlab Vector Functions"), that
**sqrt** is a scalar function (see the section on "Matlab Scalar
Functions"), and that the division in sum(x)/m is a matrix-scalar
operation.

The percent sign () symbol indicates that the text following the percent sign is a comment; MATLAB will ignore the rest of the line. However, the first few comment lines, which document the M-file, are available to the online help facility and will be displayed if, for example, you enter the command:

help stat

Click on an item listed below to access additional MATLAB-related hints.

- A General Introduction to MATLAB
- Algorithm Efficiency Comparisons
- The Basics of MATLAB
- MATLAB Command Summary
- FOR, WHILE, and IF Loops
- Formatting Your MATLAB Output
- Generating MATLAB Graphics
- Matrix-Building Functions
- Entering Matrices in MATLAB
- Matrix Operating Functions
- Matrix Operations
- A Brief Explanation of M-Files
- Managing M-Files
- Printing a Hardcopy of Your MATLAB Session
- MATLAB Scalar Functions
- MATLAB Statements, Expressions and Variables
- Submatrices and Colon Notation
- Vector Functions

Return to ACS home page.

Please send comments and suggestions to

consult@rpi.edu