Presentation is loading. Please wait.

Presentation is loading. Please wait.

Fall 2006AE6382 Design Computing1 Control Statements in Matlab Topics IF statement and Logical Operators Switch-Case Disp() vs fprintf() Input() Statement.

Similar presentations


Presentation on theme: "Fall 2006AE6382 Design Computing1 Control Statements in Matlab Topics IF statement and Logical Operators Switch-Case Disp() vs fprintf() Input() Statement."— Presentation transcript:

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

2 Fall 2006AE6382 Design Computing2 if statements 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! if A>10 % computations; end if condition statements true false if A>10 % computations; else % computations; end if condition statements (1) true false statements (2)

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

4 Fall 2006AE6382 Design Computing4 If Statement and Logical Operators Relational Operators <less than <=less than or equal to >Greater than >=greater than or equal to ==equality ~=not equal

5 Fall 2006AE6382 Design Computing5 if Statement and Logical Operators (Cont.) Logical Operators OPSymbol not ~ and & or | xor Note: 0 is false Anything else is true 011011 101001 101110 000100 A xor BA&BA|B~ABA

6 Fall 2006AE6382 Design Computing6 Relational Operators When relational operators are present: –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)

7 Fall 2006AE6382 Design Computing7 Examples a=7; b=4; c=3; ~(a==3*b) –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.

8 Fall 2006AE6382 Design Computing8 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.

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

10 Fall 2006AE6382 Design Computing10 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 ( ), greater than or equal to (>=), equal to (==), not equal to (~=) 7.logical AND (&) 8.logical OR ( | )

11 Fall 2006AE6382 Design Computing11 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 10 –Three = d.*c > a.*b –Four = b.*3<= 100 & d<10 & a.*d==b

12 Fall 2006AE6382 Design Computing12 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 ? : (Try This…) –C = a.* b; –C = b.^2-a.*b –C = a >= b;

13 Fall 2006AE6382 Design Computing13 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?

14 Fall 2006AE6382 Design Computing14 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?

15 Fall 2006AE6382 Design Computing15 Switch-case statement example (skip !) x=2.5; 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

16 Fall 2006AE6382 Design Computing16 Display Formats Let’s explore each format: COMMANDFUNCTION format short default format long 14 decimals format short e 4 decimals format long e 15 decimals format bank 2 decimals format + +,-,blank M = [55.3 -22 12; 10 23.4324 30.42] Enter the following Matrix into Matlab…

17 Fall 2006AE6382 Design Computing17 Disp() and fprintf() -Important !! 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

18 Fall 2006AE6382 Design Computing18 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)

19 Fall 2006AE6382 Design Computing19 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?

20 Fall 2006AE6382 Design Computing20 Special Values These objects have special meanings in Matlab: pi-the value 3.1416 (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

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


Download ppt "Fall 2006AE6382 Design Computing1 Control Statements in Matlab Topics IF statement and Logical Operators Switch-Case Disp() vs fprintf() Input() Statement."

Similar presentations


Ads by Google