ch4: loops mechanical engineering department matlab programming for engineers 1 matlab programming...

Post on 03-Jan-2016

238 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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]

top related