Upload
della-bryan
View
238
Download
4
Embed Size (px)
Citation preview
1
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
Matlab Programming for Engineers Matlab Programming for Engineers Matlab Programming for Engineers Matlab Programming for Engineers
Dr. Nidal Farhat
Introduction to MatlabIntroduction to Matlab Matlab Basics Matlab Basics Branching Branching Statements Statements LoopsLoops User Defined Functions User Defined Functions Additional Data Types Additional Data Types Input/Output Functions Input/Output Functions Simulink Toolbox Simulink Toolbox Important Toolboxes (if time is available) Important Toolboxes (if time is available)
Introduction to MatlabIntroduction to Matlab Matlab Basics Matlab Basics Branching Branching Statements Statements LoopsLoops User Defined Functions User Defined Functions Additional Data Types Additional Data Types Input/Output Functions Input/Output Functions Simulink Toolbox Simulink Toolbox Important Toolboxes (if time is available) Important Toolboxes (if time is available)
2
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
OBJECTIVES OBJECTIVES
The while Loop
The for Loop
Logical Arrays and Vectorization
The Matlab Profiler
3
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE while LOOPTHE while LOOP
Structure:The Code Block is repeated until the expression is false.
If it is false, the program executes the first statement
after the end.
4
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE while LOOPTHE while LOOP
Example:
Write a program that calculates the average,
and the standard deviation,
for a set of values (X), entered by the user.
5
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE while LOOPTHE while LOOP
Solution:
6
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE while LOOPTHE while LOOP
Solution (modified):
7
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE while LOOPTHE while LOOP
Solution (modified):
8
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Structure:
Repeats a block of statements (Body) specified number of times.
Legal Examples:
Matlab generates an array by evaluating this expression
column by column.
9
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Legal Examples:
10
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Example (The Factorial Function):
N! = N * (N-1) * (N-2) * … * 3 * 2 * 1
11
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Example (The Factorial Function):
N! = N * (N-1) * (N-2) * … * 3 * 2 * 1
12
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Example, calculating the day of year:
13
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Example:
Use THE for LOOP to calculate the average and standard deviation for any (n) values (modify the previous while program).
14
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Details of operation:
1. Indent the bodies of loops (automatically done in Matlab).
2. Don’t modify the loop index within the body of a loop.
3. Preallocating arrays.
recall: arr = 1:4; arr(7) = 8; arr == [1 2 3 4 0 0 8]. (i.e. Matlab automatically extend/change the size of the array.
It is better to preallocate the array before THE for LOOP to make the program much more faster.
15
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Details of operation: (4. Vectorizing Arrays)
Faster
16
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
The break and continue Statements:
The break statement terminates the execution of a loop and passes control to the next statement after the end of the loop, example:
17
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
The break and continue Statements:
The continue statement terminates the current step of the loop and return the control to the top of the loop, example:
continue
18
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Nesting Loops:
Output
ii jj product
19
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Nesting Loops:
Output
ii jj product
Different loop index variables
20
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Nesting Loops:
The break/continue statements they apply to the current loop, example:
21
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Logical array and vectorization:
Double array
Logical array
22
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Logical array and vectorization:
Logical arrays can serve as a mask for arithmetic operations. The specified operation will be applied to the selected elements and not to the remaining elements, example:
Will take the square root of all elements for which the logical array b is true and leave all the other elements in the array
unchanged
23
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Logical array and vectorization:
Example 1:
Calculate the sqrt of all the elements of array (a) > 5.
Faster
24
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Logical array and vectorization:
Example 2: Calculate the sqrt of all the elements of array (a) > 5, and the square of the remaining (unselected by the previous operation).
25
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
The Matlab Profiler:
Used to identify the parts of the program that consume most execution time.
26
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
The Matlab Profiler:
28
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Example: (Projectile Motion)
General equation:
When the ball hits the ground 0
2*0, yvt t
g
0
0
210 2
0
( )
( )
y
x
y t y v t gt
x t x v t
0
0
0
0
sin( )
cos( )
y
x
v v
v v
29
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Example: (Projectile Motion)
General equation:
When the ball hits the ground 0
2*0, yvt t
g
0
0
210 2
0
( )
( )
y
x
y t y v t gt
x t x v t
0
0
0
0
sin( )
cos( )
y
x
v v
v v
30
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
THE for LOOPTHE for LOOP
Example: (Commands and Functions)
31
CH4: LOOPS
Mechanical Engineering Department
MATLAB PROGRAMMING FOR ENGINEERS
Home WorkHome Work
Solve the following problems:
4.[16, 19, 21]