Skip to content Skip to navigation

OpenStax-CNX

You are here: Home » Content » Programming with M-files: For Loops

Navigation

Recently Viewed

This feature requires Javascript to be enabled.
 

Programming with M-files: For Loops

Module by: Darryl Morrell. E-mail the author

Summary: This is a tutorial on using for loops in m-file scripting environments.

The For Loop

The for loop is one way to repeat a series of computations using different values. The for loop has the following syntax:

for d = array
    % Command 1
    % Command 2
    % and so on
end
In the for loop, array can be any vector or array of values. The for loop works like this: d is set to the first value in array, and the sequence of commands (Command 1, Command 2, and so on) in the body of the for loop is executed with this value of d. Then d is set to the second value in array, and the sequence of commands in the body of the for loop is executed with this value of d. This process continues through all of the values in array. So a for loop that performs computations for values of d from 1.0 to 2.0 is:
for d = 1.0:0.05:2.0
    % Command 1
    % Command 2
    % and so on
end
(Recall that 1.0:0.05:2.0 creates a vector of values from 1.0 to 2.0.)

Note that in all of the examples in this module, the commands inside the for loop are indented relative to the for and end statements. This is not required, but is common practice and makes the code much more readable.

The flow of control through a for loop is represented by the flow chart in Figure 1. This flow chart graphically shows how the sequence of commands in the for loop is executed once for each value. The flow of control through the for loop is also represented by the pseudo code in Figure 2; note that the pseudo code looks very similar to the actual m-file code.

Figure 1: A flow chart containing a for loop.
Figure 1 (ForFlowchart.png)
Figure 2: Pseudo code for a for loop.
for each element of the vector
    Do Command 1
    Do Command 2
    and so on

A useful type of for loop is one that steps a counter variable from 1 to some upper value:

for j = 1:10
    % Commands
end
For example, this type of loop can be used to compute a sequence of values that are stored in the elements of a vector. An example of this type of loop is
% Store the results of this loop computation in the vector v
for j = 1:10
    % Commands
    % More Commands to compute a complicated result
    v(j) = result;
end

Using a for loop to access and manipulate elements of a vector (as in this example) may be the most natural approach, particularly when one has previous experience with other programming languages such as C or Java. However, many problems can be solved without for loops by using the built-in vector capabilities. Using these capabilities almost always improves computational speed and reduces the size of the program. Some would also claim that it is more elegant.

For loops can also contain other for loops. For example, the following code performs the commands for each combination of d and c:

for d=1:0.05:2
    for c=5:0.1:6
        % Commands
    end
end

Content actions

Download module as:

Add 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