Introduction to Engineering MATLAB - 14 Loops – end loops

advertisement
Introduction to Engineering
MATLAB - 14
Loops
 for – end loops
 The break command
 Nested loops
DEFINITION OF A LOOP
A loop is a set of commands in a computer
program that are being repeated.
Each repetition of the loop is called a pass.
The number of passes can be set to be fixed, or
the looping process is terminated when a specified
condition is satisfied.
In each pass some or all of the variables that are
defined in the loop obtain new values.
Example of a Loop Use
for – end LOOPS
for – end loops are used when the number of passes is known in
advance. A variable is used to control the looping process.
The general structure of a for – end loop is:
m is the value of
k in the first pass
s is the step value, which is the
increment in k after each pass
Variable
for k = m : s : p
.
.
commands
.
.
end
p is the value of
k in the last pass
for – end LOOPS
In the first pass, k = m, and the
computer
executes
the
commands
between the for and the end.
The computer goes back to the for
command for the second pass. k obtains
a new value equal to k = m+s, and the
commands between the for and the end
are executed with the new value of k.
The process repeats itself until the
last pass where k = p
for k = m : s : p
.
.
commands
.
.
end
Example:
If k = 1:2:9
there are five
loops. The
values of k are:
1 3 5 7 9
RULES REGARDING THE for k = m:s:p COMMAND
The step value s can be negative (i.e. k = 25:-5:10 produces
four loops with: k = 25, 20, 15, 10).
If s is omitted, the step value is 1 (default).
If m equals to p, the loop is executed once.
The value of k should not be redefined within the loop.
The looping continues until the value of k exceeds the value
of p (i.e. k = 8:10:50 produces five loops with: k = 8, 18, 28,
38, 48).
EXAMPLES OF for – end LOOPS
Type in the command window:
>> for k = 1:3:10
x = k^2
end
x=
1
x=
16
x=
49
x=
100
>> for k = 5:9
b = 2*k
end
b=
10
b=
12
b=
14
b=
16
b=
18
If a step value is not
entered, the default is 1
>> for k = 10:2:20
a = k/3;
end
>> a
a=
6.6667
>> k
k=
20
Semicolon, so
a is not printed
after each pass
a = 6.667
because
in the last
pass k = 20
COMMENTS ABOUT for LOOPS
For every for command a computer program MUST have
an end command.
for loops can be used in the command window and in script
and function files.
A semicolon is not needed after the for k = m:s:p
command to suppress printing.
To display the value of k in each pass (sometimes useful for
debugging) type k as one of the commands in the loop.
Loops can include conditional statements and any other
MATLAB commands (functions, plots, etc.)
EXAMPLES OF USING for – end LOOP
% A script file that demonstrates the use of a for - end loop.
% The file calculates the sum of n terms
% of the series: (-1)^n * n/2^n
% The program asks the user to input
% the number of terms n.
sumser=0;
n = input('the number of terms is: ');
for k = 1:n
sumser = sumser + (-1)^k*k/2^k;
end
disp('The sum of the series is:')
disp(sumser)
EXECUTING THE SERIES SUM FILE IN THE
COMMAND WINDOW
>> Lecture9Example1
the number of terms is: 4
The sum of the series is:
-0.1250
>> Lecture9Example1
the number of terms is: 15
The sum of the series is:
-0.2224
>> Lecture9Example1
the number of terms is: 5
The sum of the series is:
-0.2813
>> Lecture9Example1
the number of terms is: 20
The sum of the series is:
-0.2222
THE break COMMAND
The break command stops the execution of a loop.
When
MATLAB encounters a break command within a loop, MATLAB
jumps to the end command of the loop and continues to executes
the commands that follow.
The break command is typically used within a conditional
statement (if statement) to terminate the execution of a loop if
some condition is satisfied.
EXAMPLE OF USING THE break COMMAND
% A script file that demonstrates the use of the break command.
% Given an initial investment, saving goal and expected return,
% the file calculates the number of years it will take to reach the goal.
(The file continues on the next slide)
xi = input('Enter the initial investment ($): ');
xf = input('Enter the saving goal ($): ');
r = input('Enter the expected return per year (%): ');
disp(' ')
for k = 1 : 100
xk = xi*(1 + r/100)^k;
if xk >= xf
disp('The number of years it will')
disp('take to reach the goal is:')
disp(k)
break
This end is due to the if
end
end
This end is due to the for
if k == 100
disp('It will take more than')
disp('100 years to reach the goal')
end
EXECUTING THE SAVING GOAL SCRIPT FILE
IN THE COMMAND WINDOE
>> Lecture9Example2
Enter the initial investment ($): 2000
Enter the saving goal ($): 5000
Enter the expected return per year (%): 6
The number of years it will
take to reach the goal is:
16
>> Lecture9Example2
Enter the initial investment ($): 1500
Enter the saving goal ($): 100000
Enter the expected return per year (%): 4
It will take more than
100 years to reach the goal
NESTED for LOOPS
A for loop can be nested within another for loop.
for k = 1 : 3
for n = 1 : 5
.
commands
.
end
end
Every time k is increased by 1 the
nested loop loops five times with the
value of n ranging from 1 through 5.
Overall the commands will be executed
15 times with the values of:
k=1
k=1
k=1
k=1
k=1
n=1
n=2
n=3
n=4
n=5
k=2
k=2
k=2
k=2
k=2
n=1
n=2
n=3
n=4
n=5
k=3
k=3
k=3
k=3
k=3
n=1
n=2
n=3
n=4
n=5
EXAMPLE OF NESTED for LOOP
% A script file that demonstrates the use of nested for - end loop.
% The file creates a matrix in which all the terms are 7 except
% the terms whose row number is equal to the column number.
% These terms are equal to 1.
(The script file continues on the next slide)
matrix = 0;
n = input('Enter the number of rows ');
m = input('Enter the number of columns ');
Nested
loop
for i = 1:n
for j = 1:m
if i == j
matrix(i,j) = 1;
else
matrix(i,j) = 7;
end
end
end
disp('The matrix is:')
disp(matrix)
EXECUTING THE CREATING A MATRIX FILE
IN THE COMMAND WINDOW
>> Lecture9Example3
Enter the number of rows 3
Enter the number of columns 3
The matrix is:
1 7 7
7 1 7
7 7 1
>> Lecture9Example3
Enter the number of rows 3
Enter the number of columns 5
The matrix is:
1 7 7 7 7
7 1 7 7 7
7 7 1 7 7
>> Lecture9Example3
Enter the number of rows 4
Enter the number of columns 2
The matrix is:
1 7
7 1
7 7
7 7
ASSIGNMENT 10:
1. Problem 26, page 61 in the textbook.
2. Problem 27, page 61 in the textbook. Change the text to read:
Use the break command to determine how many ………
3. Writes a program in a script file that creates a multiplication
table by using a nested for loop. The program asks the user to
input the number of rows and the number of columns. The
program prints the multiplication table. Executes the file in the
command window to create a multiplication table with 16 rows
and 12 columns.
Submit a printout of the script file and a printout of the
command window.
Download