Presentation is loading. Please wait.

Presentation is loading. Please wait.

Control Statements in Matlab

Similar presentations


Presentation on theme: "Control Statements in Matlab"— Presentation transcript:

1 Control Statements in Matlab
Learning Objectives How is program control implemented in Matlab.? What are the simple output statements? Are there any special values? Topics IF statement and Logical Operators Switch-Case Disp() vs fprintf() Input() Statement Display Format Special Values Summary AE6382 Design Computing Fall 2006

2 for loop for j=1:10 computations Repeats for specified number of times
done for j=1:10 % computations; end computations Repeats for specified number of times ALWAYS executes computation loop at least once!!! Can use + or – increments Can escape (BREAK) out of computational loop AE6382 Design Computing Fall 2006

3 while loop initialize k while k<10 computations change k
k=k+1; end while k<10 done computations change k Will do computational loop ONLY if while condition is met Be careful to initialize while variable Can loop forever if while variable is not updated within loop!!! AE6382 Design Computing Fall 2006

4 if statements Can include multiple statements
condition statements true false if condition true false statements (1) statements (2) if A>10 % computations; else end if A>10 % computations; end Can include multiple statements Statements can also include other if statements (can nest if statements inside if statements) Be careful not to overlap (crossover) if statements! AE6382 Design Computing Fall 2006

5 if-elseif statement Can have several elseif conditions…
false false false else true true statements (1) statements (2) statements (n) statements (n+1) if A>10 % computations; elseif A<10 else % computations end Can have several elseif conditions… Else is optional and executes if all other tests fail AE6382 Design Computing Fall 2006

6 If Statement and Logical Operators
Relational Operators < less than <= less than or equal to > Greater than >= greater than or equal to == equality ~= not equal What is the value of K? K=5 Interpret the following in words K>10 K*0 ~= 6 What if K is an array? K=ones(5,5) All elements in K are tested if K>10 will fail, but K(2,3)=20; will also fail becase ALL elements must be >10. Refer students to page in book. Sorry do not have book with me. Explain relational operator. Describe each operator. Use the examples at bottom to make your point. Make up more things to interpret. Get students to write down the answers. AE6382 Design Computing Fall 2006

7 if Statement and Logical Operators (Cont.)
OP Symbol not ~ and & or | xor Note: 0 is false Anything else is true 1 A xor B A&B A|B ~A B A AE6382 Design Computing Fall 2006

8 Relational Operators When relational operators are present: Example 1
All arithmetic operations are performed first (in their particular order) The relational operators are evaluated after. Example 1 (2*3) > (4+1); % solve by hand, then type this into MATLAB The multiplication and addition are first: 6 > 5 The relational operator is evaluated: 6 is greater than 5, so this returns 1 (true) AE6382 Design Computing Fall 2006

9 Examples a=7; b=4; c=3; ~(a==3*b) a > 5 & b > 5
Evaluates 3*b = 12 Reads: is (a==12) not (from the ~) true? Returns ans = 1 (true) a > 5 & b > 5 Evaluates (a>5) and (b>5) separately. One returns true, the other returns false. Since both are not true, the expression returns false. AE6382 Design Computing Fall 2006

10 Using Logicals in Assignments
True/False values can be assigned to variables. The variables will be assigned the value that returns from relational and/or logical operators. The variables will have a value of 1 or 0. Example: X = a > 2; Then x = 1; Y = b==5; Y will be equal to 0. AE6382 Design Computing Fall 2006

11 More Examples a=6; b=10; c=-2;
Try the following examples without the use of Matlab: X1 = abs(c)>3 & c<(b-a) & b+a > 3 X2 = (b==10) | (a< 4) X3 = a.*5 >= b.*3 & c < a AE6382 Design Computing Fall 2006

12 Operator precedence 1. transpose (.'), power (.^), complex conjugate, transpose ('), matrix power (^) 2. unary plus (+), unary minus (-), logical negation (~) 3. multiplication (.*), right division (./), left division (.\), matrix multiplication (*), matrix right division (/), matrix left division (\) 4. addition (+), subtraction (-) 5. colon operator (:) 6. less than (<), less than or equal to (<=), greater than (>), greater than or equal to (>=), equal to (==), not equal to (~=) 7. logical AND (&) 8. logical OR ( | ) AE6382 Design Computing Fall 2006

13 Practice Evaluate the following without Matlab:
Practice without the help of Matlab because you will not be able to use Matlab in the midterm. a = 4; b = 20; c = 12; d = 5; One = a>4 & b==20 Two = b<40 | c>10 Three = d.*c > a.*b Four = b.*3<= 100 & d<10 & a.*d==b AE6382 Design Computing Fall 2006

14 More practice When comparing vectors, the operator (>, <=, ~, &, etc.) is applied element-by-element: a = [0,2,4,2]; b = [4,1,-2,3]; What is: C = a .* b; C = b.^2-a.*b C = a >= b; Try them by hand, then try them in MATLAB. AE6382 Design Computing Fall 2006

15 If statement example %DEMO %Header function output = DEMO(input)
%put help info here! %Do stuff if input > 0 fprintf(‘Greater than 0’) elseif input < 0 fprintf(‘Less than 0’) else fprintf(‘Equals Zero’) end %Set return value if needed outvar = 1; What’s an alternative to the if statement? AE6382 Design Computing Fall 2006

16 Switch-Case Statement
switch expression case condition_1 %Do Stuff #1 case {condition_2a, condition_2b,…} %Do Stuff #2 otherwise %Do Other Stuff end How does this relate to the ‘if’ statement? Refer students to page number in book. Show what it does. Relate it to Assignment / Project 2 if possible. AE6382 Design Computing Fall 2006

17 Switch-case statement example
units=‘m’; switch units %convert to centimeters case {‘inch’,’in’} y=x.*2.54; case {‘feet’,’ft’} y=x.*2.54.*12; case {‘meter’,’m’} y=x./100; case {‘centimeter’,’cm’} y=x; otherwise disp([‘Unknown units: ‘ units]) y=NaN; end AE6382 Design Computing Fall 2006

18 Display Formats Enter the following Matrix into Matlab…
Let’s explore each format: COMMAND FUNCTION format short default format long 14 decimals format short e 4 decimals format long e 15 decimals format bank 2 decimals format + +,-,blank AE6382 Design Computing Fall 2006

19 Disp() and fprintf() disp(X) – prints elements of an array X
disp(‘hello world’) – prints the string fprintf(fid, format, A) – does the following: Write A to file fid using format (omitting fid prints to screen) format is a string containing output string and format instructions for each variable in A Variables of all printable data types: Conversion specifications involve the character %, optional flags, optional width and precision fields, optional subtype specifier, and conversion characters: d, i, o, u, x, X, f, e, E, g, G, c, and s. The special formats \n,\r,\t,\b,\f can be used to produce linefeed, carriage return, tab, backspace, and formfeed characters respectively. Let’s use DEMO to explore these differences. We will discuss I/O in further depth in a later lecture AE6382 Design Computing Fall 2006

20 Demonstration Problem
% This program will calculate the % area and circumference of ten circles, % allowing the radius as an input, % but will only provide output for circles % with an area that exceeds 20. N = 0; R = 0.0; AREA = 0.0; CIRC = 0.0; for J = 1:1:10 R = input('Please enter the radius: '); AREA = pi * R^2; CIRC = 2.0 * pi * R; if AREA > 20.0 fprintf('\n Radius = %f units',R) fprintf('\n Area = %f units squared', AREA) fprintf('\n Circumference = %f units\n', CIRC) else N = N + 1; end fprintf('\n Number of circles that do not have area > 20: %.0f \n', N) AE6382 Design Computing Fall 2006

21 Getting User Input How do I prompt user for input?
Myvariable = input(‘Some String’); How can I format this better for the user? Myvariable = input(‘Another String’, ‘s’); What’s the difference between the two input lines? Discuss this … do it in class. AE6382 Design Computing Fall 2006

22 Special Values These objects have special meanings in Matlab:
pi - the value (How would I see more values?) i,j - sqrt(-1) (How is this represented?) inf - infinity (How can you prove this represents infinity?) NaN- “Not a number” (When do we get this message?) clock- matrix with date and time date – Current date in string form eps – “Epsilon” the smallest amount by which two values can differ on the current computer ans – just computed value Explain why these are important. My hope is that you will be able to do this in the context of the assignment / project that has been given to them. I have not thought this through for this semester. AE6382 Design Computing Fall 2006

23 Summary Topics Action Items IF statement and Logical Operators
Switch-Case Disp() vs fprintf() Input() Statement Display Format Special Values Summary Action Items Review the lecture Work out the simple control statement examples How do these compare to other languages you have used? AE6382 Design Computing Fall 2006

24 Problem Statements Sequential computation
Draw a flowchart and write the MatLab code that will calculate the area and the circumference of a circle allow the radius to be an input variable output radius, area and circumference. Introduce ‘if’ structure output radius, area and circumference IF the area is greater than 20 square units. AE6382 Design Computing Fall 2006

25 Problem Statements … contd.
Introduce ‘for’ loop Draw a flowchart and write the MatLab code that will calculate the area and the circumference of TEN circles allow the radius to be an input variable output radius, area and circumference IF the area is greater than 20 square units. output the number of circles with area  20. Introduce ‘while’ loop will calculate the area and the circumference of ANY NUMBER of circles J. C. Malzahn Kampe, MATLAB Programming, Division of Engineering Fundamentals, Virginia Polytechnic Institute and State University, Blacksburg, Virginia, 1999. AE6382 Design Computing Fall 2006


Download ppt "Control Statements in Matlab"

Similar presentations


Ads by Google