MATLAB Control Statement 1 RAT 10 1 n

MATLAB Control Statement 1

RAT 10. 1 n n Take out a piece of paper, write your name, team #, today’s date and RAT 10. 1. As an INDIVIDUAL, you have 2 -minutes to determine the value of y in the Mat. Lab code shown below. x = 10; if x >= 12 y = sqrt(x); else y = x^2; end Pass your answer to the center aisle Answer: y = 100 2

Learning Objectives n Students should be able to: n Use conditional statements to develop logical program flow. n n n if, elseif, and else commands switch structure Develop flow charts in standard notation. 3

4. 4 Conditional Statements n n n The Mat. Lab conditional statements enable us to write programs that make decisions Understanding the IF-THEN-ELSE logic is fundamental to all software development. Make sure that you understand: n n n if statement on p. 201 else statement on p. 202/203 elseif statement on p. 205 4

LOGICAL CONTROL PROGRAMMING CONSTUCTS n n A conditional (Boolean) statement is an expression which tests the validity of a specified condition e. g. , z = I ==J z=I>J These are used in selection structures (conditional statements) to control the flow of a program. 5

LOGICAL CONTROL PROGRAMMING CONSTRUCTS n n Syntax of the if statement: if logical expression statements end Proper indentation is MANDATORY or you will receive NO CREDIT! n n Note you can right click and choose smart indent in the m-file editor. See page 187 for a flow chart 6

LOGICAL CONTROL PROGRAMMING CONSTRUCTS Flowchart representation of the if statement. Conditional statement Figure 4. 1– 2 Sequential Statement(s) 7

LOGICAL CONTROL PROGRAMMING CONSTRUCTS n n n MATLAB starts at the beginning of the if sequence It proceeds one condition to the next When it finds a true statement, the appropriate section of the code is executed THE SEQUENCE IS THEN TERMINATED!!! The last section of code is closed using the keyword end 8

EXAMPLE x = some given value if x >= 0 y = sqrt (x) end 9

EXAMPLE x = 10; y = 20; if x >= 0 & y >= 0 z = sqrt(x) + sqrt(y); w = log(x) – 3*log(y); end 10

LOGICAL PROGRAMMING CONTRUCTS n Nested “if” statements: if logical expression 1 statement group 1 if logical expression 2 statement group 2 end n Nested Statement Note the indentions – an absolute must 11

Typical flow Chart for nested if…end Logic 12

LOGICAL PROGRAMMING CONTRUCTS THE else STATEMENT: If two mutually exclusive actions can occur as a result of a decision, use the else statement. if logical expression statement group 1 else statement group 2 end n See page 204 for a flow chart of a typical if-else structure. 13

LOGICAL PROGRAMMING CONTRUCTS Write these words Flowchart of the else structure. Figure 4. 4– 2 14

In-class Exercise (5 minutes) n n n Suppose y = x 1/2 for x >= 0 and y = ex – 1 for x < 0 Write a program (. m script file) to calculate y assuming that x already has a scalar value. Test your program for x = 3 and x = -2. 15

SOLUTION (Script File) % Solution to In-Class Exercise if x >= 0 y = sqrt (x); else y = exp (x) -1; Did you indent end properly? ! 16

LOGICAL PROGRAMMING CONSTRUCTS The elseif statement: When three actions can occur as a result of a decision, the else and elseif statements are used along with the if statement. Remember: ONLY ONE ACTION WILL ACTUALY OCCUR!!! 17

LOGICAL PROGRAMMING CONSTRUCTS if logical expression 1 statement group 1 elseif logical expression 2 statement group 2 else statement group 3 end 18

if part elseif check else is here Note: else is NOT a conditional statement 19

EXAMPLE Given: y = ln x for x > 10 y = x 1/2 for x >= 0 and x <= 10 y = ex – 1 for x < 0 Compute y if x has been assigned a scalar value. 20

SOLUTION (Script file) % Solution to example if x > 10 Does the order that I check y = log (x) things matter? elseif x >= 0 YES! y = sqrt (x) else y = exp (x) -1 end 21

LOGICAL PROGRAMMING CONSTRUCTS As a TEAM, take three minutes to complete the following exercise. Write the syntax for the if-else-end construct if there are more than three alternatives. 22

SOLUTION if logical expression 1 Statements group 1 elseif logical expression 2 Statements group 2 elseif logical expression 3 Statements group 3 elseif logical expression 4 Statements group 4 … else Statement if all other cases are false end 23

In-class Assignment 10. 1 -1 n n n As an INDIVIDUAL, you have 10 minutes. Write an. m script file that converts a numerical test score to a letter grade. (90 – 100) – A (80 – 89) – B (70 – 79) – C (60 – 69) – D Less than 60 – F Test your program for the grades of 95 and 72. 24

SOLUTION (Script file) % Program grades. m grade = 72; if grade >=90 letter = 'A' elseif grade >= 80 letter = 'B' elseif grade >= 70 letter = 'C' elseif grade >= 60 letter = 'D' else letter = 'F' end 25

4. 6 The switch Structure THE “switch” STATEMENT: n n Provides a convenient way to execute conditional code when there are many cases to choose from. This construct can replace series of ifelse-end statements 26

LOGICAL PROGRAMMING CONSTRUCTS SYNTAX: switch expression (scalar or string) case value 1 statement group 1 case value 2 statement group 2 … otherwise statement group n end 27

EXAMPLE for “switch” n n Suppose you are given a variable angle in degrees to represent the following directions: Northeast, Southwest, and Northwest. Use the switch statement to display the desired direction given the angle. 28

SOLUTION switch angle Decision variable name case 45 Value to test disp('Northeast') case 135 disp('Southeast') case 225 disp('Southwest') case 315 Default case disp('Northwest') otherwise disp('Direction Unknown') end 29

EXAMPLE #2 for “switch” n n You input a numerical value of a quantity in one set of units (e. g. , centimeters) and you desire an output in another set of units (e. g. , inches, feet, or meters, etc…). Write a program using the switch-case construction that transforms a length in centimeters, inches, feet, meters, etc… to length in centimeters 30

SOLUTION switch units case {'inch', 'in'} % ‘units’ contains type of y = x*2. 54; % input, output is in cm case {'feet', 'ft'} y = x*2. 54*12; case {'meter', 'm'} y = x*100; case {'centimeter', 'cm'} y = x; case {'millimeter', 'mm'} y = x/10; otherwise disp(['Unknown Units: ' units]) y = Na. N; end 31
- Slides: 31