Presentation is loading. Please wait.

Presentation is loading. Please wait.

Decision-Making Programs

Similar presentations


Presentation on theme: "Decision-Making Programs"— Presentation transcript:

1 Decision-Making Programs
Module 5 Decision-Making Programs

2 CW 5.1 (1/2 sheet;No name) Provide your response to the following questions on a ½ sheet of paper. 1. What aspects of the class interested you? 2. What helped you understand the ideas discussed? 3. What do you think is useful for your future study? 2

3 CW 5.1 cont’d 4. What would you change about this class in the immediate future to make it a more enjoyable or satisfying learning experience for you? Be as specific as possible please. 5. What ideas did you encounter in the last semester that you would have difficulty? And why? 3

4 Short-term Sensory Store
A Model of the Information Processing System (IPS) Short-term Sensory Store Input Memory Loss Rehearsal Working Memory Long-term Memory Storage Retrieval Attention Elaboration Organization 4 4

5 Relational Operators < Less than <= Less than or equal to >
Meaning < Less than <= Less than or equal to > Greater than >= Greater than or equal to == Equal to ~= Not equal to

6 Examples of Relational Ops
>> x = 2; y = 5; >> z = x < y % or >> z = (x < y) >> u = x == y % or >> u = (x == y) 6

7 Relational Ops on Arrays
>> x = [6 3 9]; y = [14 2 9]; >> z = (x < y) >> u = (x ~= y) >> v = (x > 8) >> w = x (x<y) 7

8 Relational and Arithmetic Ops
Arithmetic Ops have precedence over Relational Ops What are the differences below? >> z = 5 > 2 + 7 >> z = 5 > (2 + 7) >> z =(5 > 2) + 7 8

9 Precedence among Relational Ops
MATLAB evaluates Relational Ops from left to right What are the differences below? >> z = 5 > 3 ~= 1 >> z = (5 > 3) ~= 1 9

10 Logical Class in MATLAB
logical variables only hold the values 1 (true) and 0 (false) Below w is a numeric array and k is a logical array >> x = [ -2 : 2 ] >> k = (abs(x) > 1) >> z = x(k) >> w = [ ] >> v = x(w) 10

11 Logical Function return an array that is used for logical indexing or logical tests if A is a numeric array, then >> B = logical(A) returns a logical array B. Back to the question before, >> w = logical([ ]) >> v = x(w) 11

12 Accessing Arrays using Logical Arrays
>> B = logical(eye(3)) >> C = A(B) Now try >> D = A(eye(3)) 12

13 Logical (Boolean) Operators
Name Definition ~A NOT return a new array of same size, has ones where A is zero and zeros where A is nonzero A&B AND return a new array of same size, has ones where A and B are nonzero and zeros where either A or B is zero | OR return a new array of same size, has ones where A and/or B are nonzero and zeros where both A and B are zero 13

14 Logical Operators && Short-Circuit AND
Name Definition && Short-Circuit AND return true if both A and B true return false if both A and B false || Short-Circuit OR return true if either A or B or both true 14

15 Order of Precedence Highest Parentheses; start fr innermost pair
Operator Type Highest Parentheses; start fr innermost pair Higher Arithmetic ops and logical NOT (~); left to right Medium Relational ops; left to right Lower Logical AND Lowest Logical OR 15

16 Examples of Logical Op ~
>> x = [0 3 9]; y = [ ]; >> a = ~x >> b = ~x > y >> c = ~(x > y) >> d = (x <= y) 16

17 Examples of Logical Op &
Compare two arrays of the same dim >> z = 0&3 >> z = 2&3 >> z = 0&0 >> z = [ ]&[ ] >> z = 1&2+3 >> z = 5<6&1 17

18 Examples of Logical Op & …
>> x=[6 3 9];y=[14 2 9];a=[4 3 12]; >> z = (x>y) & a >> z = (x>y)&(x>a) In math, 5 < x < 10. In MATLAB, >> (5<x) & (x< 10) 18

19 Examples of Logical Op |
>> z = 0|3 >> z = 0|0 >> z = [ ]|[ ] >> z = 3<5|4==7 >> z = (3<5) | (4==7) 19

20 Examples of Logical Op | …
>> z = 1|0&1 >> z = (1|0)&1 >> z = 1|0&0 >> z = 1|(0&0) >> z = ~3==7|4==6 >> z = ((~3)==7)|(4==6) 20

21 Exclusive OR (xor) fcn xor(A,B)
= 1 if either A or B is nonzero but not both = 0 if A and B are both zero or both nonzero In MATLAB, Function z = xor(A,B) z = (A|B) & ~ (A&B); 21

22 Examples of xor fcn >> a = xor([3 0 6], [5 0 0])
>> b =[3 0 6] | [5 0 0] 22

23 Truth Table x y ~x x|y x&y xor(x,y) T F 23

24 CW 5.2 1. Determine the answers by hand. Use MATLAB to check your answer. a. If x = [ ] and y = [ ] a = ~y > x b = x&y c = x|y d = xor(x,y) b. If x=[ ] and y=[ ] e = (x < y) f = (x > y) g = (x ~= y) h = (x == y) i = (x > 2) 24

25 CW 5.2 2. Follow the MATLAB instructions below. Compare your results with the Truth Table. >> x = [ ]’ >> y = [1; 0; 1; 0] >> Truth_Table=[x,y,~x,x|y, x&y, xor(x,y)] 25

26 Logical Fcns all(x) a scalar, 1 or 0. 1 if all elements are nonzero
Lgc fcn Definition all(x) a scalar, 1 or 0. 1 if all elements are nonzero all(A) a row vector having the same # of columns as A. 1 if all elements in a column are nonzero any(x) a scalar, 1 or if any element is nonzero any(A) a row vector having the same # of columns as A. 1 if any element in a column is nonzero find(A) an array having the indices of nonzero elements of array A 26

27 Logical Fcns [u,v,w]= find(A)
Lgc fcn Definition [u,v,w]= find(A) arrays u & v contain row & col indices of nonzero elements of A; w contain the nonzero elements; w is optional finite(A) an array same dim as A w/ ones where element of A is finite ischar(A) a scalar 1 if A is a character array isempty(A) A scalar 1 if A is an empty array isinf(A) An array same dim as A w/ones where element of A is ‘inf’ 27

28 Logical Fcns Lgc fcn Definition isnan(A) an array same dim as A w/ ones where element of A is ‘NaN’ isnumeric(A) a scalar, 1 or if A is a numeric array isreal(A) a scalar, 1 or if all elements of A are NON imaginary logical(A) Convert all elements of A into logical values xor(A,B) Exclusive or on each element ‘pair’of A and B 28

29 Examples of logical fcns
>> y = find(x) >> x = [ ]; y = [ ]; >> values = x (x<y) >> how_many = length(values) >> indices = find(x<y) 29

30 Examples of logical fcns
>> x = [ ]; y = [ ]; >> z = find(x&y) >> values = y (x&y) >> how_many = length(values) 30

31 Conditional Statements
MATLAB cond stmts include if else elseif end 31

32 if Statement Basic form if logical expression statements end 32

33 if Example 1 Math: y = only if x ≥ 0
English: If x is greater than or equal to zero compute y from y = MATLAB: >> if x >= 0 >> y = sqrt(x) >> end 33

34 if Example 1 Shortened form is allowed but less readable
>> if x >= 0, y = sqrt(x), end 34

35 if Example 2 >> x = 5; y = 2; >> z = 0;
>> if (x>0) & (y>0) z = sqrt(x) + sqrt(y) w = log(x) - 3 * log(y) end 35

36 else Statement Basic form if logical expression statements 1 else
end 36

37 else Example 1 Suppose that y = for x ≥ 0 and
that y = ex – 1 for x < 0 >> if x >= 0 y = sqrt(x) else y = exp(x) – 1 end 37

38 else Example 2 Consider the following. Predict what should be the response. >> x = [ ]; if x < 0 disp(‘some elements are –ve’) else y = sqrt(x), end 38

39 else Example 2 Now consider the following. >> x = [4 -9 25];
if x >= 0 y = sqrt(x) else disp(‘some elements are –ve’) end 39

40 elseif Statement if logical expression 1 statements 1
elseif logical expression 2 statements 2 else statements 3 end 40

41 elseif Example 1 Suppose that y = ln x if x ≥ 5 and that y = if 0 ≤x < 5 41

42 elseif Example 1 >> if x >= 5 y = log(x) else if x >= 0
y = sqrt(x) end 42

43 elseif Example 1 improved
>> if x >= 5 y = log(x) elseif x >= 0 y = sqrt(x) end 43

44 CW 5.3 (attach all printed codes)
Suppose that x = [ ] and y = [ ]. Find the values and the indices of the elements in x that are greater than the corresponding elements in y 44

45 CW 5.3 2. Suppose that y = ln x for x > 10 y = for 0 ≤ x ≤ 10
and y = ex -1 for x < 0 Write the shortest codes using if/else/elseif stmts Test value using x = -3, 5 and 12 45

46 CW 5.4 (Lab) 1. Given a number x and the quadrant q (q = 1, 2, 3, 4), write a program to compute sin-1(x) in degrees, taking into account the quadrant. The program should display an error message if |x| > 1. 46

47 String variable Contains variable >> number = 123;
>> street_num = ‘123’; What is the difference? 47

48 Addressing string variable
Consider >> sch_name = ‘Mark Keppel High’ >> length(sch_name) >> sch_name(4:6) 48

49 Prompt for response >> reply = input(‘Continue? Y/N [Y]: ’, ‘s’); >> if (isempty(reply))|reply==‘Y’|reply==‘y’) reply = ‘Y’ else reply = ‘N’ end 49

50 for Loops Repeating a calculation a number of times Typical structure
>> for loop_variable = start : step : end stmts end 50

51 for Loops example >> for k = 5 : 10 : 35 x = k^2 end
Short but not that readable >> for k = 0 : 2 : 10, y = sqrt(k), end 51

52 CW 5.5 1. Write a script file to compute the sum of the first 15 terms in the series 5k2 – 2k, where k = 3, 4, … , 18 2. Write a script file to plot x ≥ 9 y = 10 x ≤ x < 9 x < 0 52


Download ppt "Decision-Making Programs"

Similar presentations


Ads by Google