Skip to content Skip to navigation Skip to collection information

OpenStax_CNX

You are here: Home » Content » An Introduction to MATLAB » Scripts and Functions in MATLAB

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

Scripts and Functions in MATLAB

Module by: Anders Gjendemsjø. E-mail the author

Summary: This module introduces the script and function environment in MATLAB.

Script files

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.

Example 1

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.

Program flow

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
    

User Defined Functions

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.

Example 2

Create a function for calculating the sum of the N+1N1 first terms of geometric series. Assume N< N .

Solution: The sum of the N + 1 terms of a geometric series is given by ssum=n=0Nan ssum n 0 N a n . An implementation of this sum as a function accepting the input arguments aa and NN is shown below.


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, ssum=n=0Nan ssum n 0 N a n .

Example 3

Create a function to calculate the sum of an arbitrary geometric series.

Solution: For N< N we know that the sum converges regardless of aa. As NN goes to the sum converges only for a<1a1, and the sum is given by the formula n=0an=11a n 0 a n 1 1 a . A possible implementation is given as:


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.

Learn From Existing Code

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.

Collection Navigation

Content actions

Download:

Collection as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Module as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Add:

Collection to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks

Module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks