CH 4 LOOPS MATLAB PROGRAMMING FOR ENGINEERS Matlab

CH 4: LOOPS MATLAB PROGRAMMING FOR ENGINEERS Matlab Programming for Engineers Introduction to Matlab Basics Branching Statements Loops User Defined Functions Additional Data Types Input/Output Functions Simulink Toolbox Important Toolboxes (if time is available) Dr. Nidal Farhat Mechanical Engineering Department 1

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS OBJECTIVES § The while Loop § The for Loop § Logical Arrays and Vectorization § The Matlab Profiler Mechanical Engineering Department 2

CH 4: LOOPS MATLAB PROGRAMMING FOR ENGINEERS THE 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. Mechanical Engineering Department 3

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE while LOOP Example: Write a program that calculates the average, and the standard deviation, for a set of values (X), entered by the user. Mechanical Engineering Department 4

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE while LOOP Solution: Mechanical Engineering Department 5

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE while LOOP Solution (modified): Mechanical Engineering Department 6

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE while LOOP Solution (modified): Mechanical Engineering Department 7

CH 4: LOOPS MATLAB PROGRAMMING FOR ENGINEERS THE for LOOP Structure: Repeats a block of statements (Body) specified number of times. Matlab generates an array by evaluating this expression column by column. Legal Examples: Mechanical Engineering Department 8

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP Legal Examples: Mechanical Engineering Department 9

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP Example (The Factorial Function): N! = N * (N-1) * (N-2) * … * 3 * 2 * 1 Mechanical Engineering Department 10

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP Example (The Factorial Function): N! = N * (N-1) * (N-2) * … * 3 * 2 * 1 Mechanical Engineering Department 11

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP Example, calculating the day of year: Mechanical Engineering Department 12

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP Example: Use THE for LOOP to calculate the average and standard deviation for any (n) values (modify the previous while program). Mechanical Engineering Department 13

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE 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. 4. 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. 5. It is better to preallocate the array before THE for LOOP to make the program much more faster. Mechanical Engineering Department 14

CH 4: LOOPS MATLAB PROGRAMMING FOR ENGINEERS THE for LOOP Details of operation: (4. Vectorizing Arrays) Faster Mechanical Engineering Department 15

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE 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: Mechanical Engineering Department 16

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE 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 Mechanical Engineering Department 17

CH 4: LOOPS MATLAB PROGRAMMING FOR ENGINEERS THE for LOOP Nesting Loops: ii jj product Output Mechanical Engineering Department 18

CH 4: LOOPS MATLAB PROGRAMMING FOR ENGINEERS THE for LOOP Nesting Loops: Different loop index variables ii jj product Output Mechanical Engineering Department 19

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP Nesting Loops: The break/continue statements they apply to the current loop, example: Mechanical Engineering Department 20

CH 4: LOOPS MATLAB PROGRAMMING FOR ENGINEERS THE for LOOP Logical array and vectorization: Double array Logical array Mechanical Engineering Department 21

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE 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 Mechanical Engineering Department 22

CH 4: LOOPS MATLAB PROGRAMMING FOR ENGINEERS THE for LOOP Logical array and vectorization: Example 1: Calculate the sqrt of all the elements of array (a) > 5. Faster Mechanical Engineering Department 23

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE 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). Mechanical Engineering Department 24

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP The Matlab Profiler: Used to identify the parts of the program that consume most execution time. Mechanical Engineering Department 25

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP The Matlab Profiler: Mechanical Engineering Department 26

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP Example: (Projectile Motion) § General equation: § When the ball hits the ground Mechanical Engineering Department 28

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP Example: (Projectile Motion) § General equation: § When the ball hits the ground Mechanical Engineering Department 29

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS THE for LOOP Example: (Commands and Functions) Mechanical Engineering Department 30

MATLAB PROGRAMMING FOR ENGINEERS CH 4: LOOPS Home Work Solve the following problems: 4. [16, 19, 21] Mechanical Engineering Department 31
- Slides: 30