Steel Plates & Sheet Piles for Rental => Contact : CW Gan ...
Module 5 Decision-Making Programs. CW 5.1 (1/2 sheet;No name) Provide your response to the following...
-
Upload
imogen-campbell -
Category
Documents
-
view
213 -
download
0
Transcript of Module 5 Decision-Making Programs. CW 5.1 (1/2 sheet;No name) Provide your response to the following...
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?
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?
A Model of the Information A Model of the Information Processing System (IPS)Processing System (IPS)
Short-term
Sensory Store
Input
Memory Loss Memory Loss
Rehearsal
Working Memory
Long-term Memory
Storage
Retrieval
Attention
Elaboration
Organization
44
Relational Operators
Relational operator
Meaning
< Less than
<= Less than or equal to
> Greater than
>= Greater than or equal to
== Equal to
~= Not equal to
Examples of Relational Ops>> x = 2; y = 5;
>> z = x < y % or
>> z = (x < y)
>> u = x == y % or
>> u = (x == y)
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)
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
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
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 = [1 0 0 0 1]
>> v = x(w)
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([1 0 0 0 1])
>> v = x(w)
Accessing Arrays using Logical Arrays
>> A = [5 6 7; 8 9 10; 11 12 13]
>> B = logical(eye(3))
>> C = A(B)
Now try
>> D = A(eye(3))
Logical (Boolean) OperatorsOperator
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
Logical OperatorsOperator
Name Definition
&& Short-Circuit AND
return true if both A and B truereturn false if both A and B false
|| Short-Circuit OR
return true if either A or B or both truereturn false if both A and B false
Order of PrecedencePrecedence
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
Examples of Logical Op ~ >> x = [0 3 9]; y = [14 -2 9];
>> a = ~x
>> b = ~x > y
>> c = ~(x > y)
>> d = (x <= y)
Examples of Logical Op & Compare two arrays of the same dim >> z = 0&3
>> z = 2&3
>> z = 0&0
>> z = [5 -3 0 0]&[2 4 0 5]
>> z = 1&2+3
>> z = 5<6&1
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)
Examples of Logical Op |>> z = 0|3
>> z = 0|0
>> z = [5 -3 0 0]|[2 4 0 5]
>> z = 3<5|4==7
>> z = (3<5) | (4==7)
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)
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);
CW 5.2 1. Determine the answers by hand. Use
MATLAB to check your answer.a. If x = [5 -3 18 4] and y = [-9 13 7 4] a = ~y > x b = x&y c = x|y d = xor(x,y)
b. If x=[-9 -6 0 2 5] and y=[-10 -6 2 4 6] e = (x < y) f = (x > y) g = (x ~= y) h = (x == y) i = (x > 2)
CW 5.2 2. Follow the MATLAB instructions below.
Compare your results with the Truth Table.>> x = [1 1 0 0]’>> y = [1; 0; 1; 0]>> Truth_Table=[x,y,~x,x|y, x&y, xor(x,y)]
Logical Fcns 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 0. 1 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
Logical Fcns 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’
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 0. 1 if A is a numeric array
isreal(A) a scalar, 1 or 0. 1 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
Examples of logical fcns
>> x = [-2 0 4];
>> y = find(x)
>> x = [6 3 9 11]; y = [14 2 9 13];
>> values = x (x<y)
>> how_many = length(values)
>> indices = find(x<y)
Examples of logical fcns
>> x = [5 -3 0 0 8]; y = [2 4 0 5 7];
>> z = find(x&y)
>> values = y (x&y)
>> how_many = length(values)
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
x
x
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
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
else Example 2Consider the following. Predict what should be the response.
>> x = [4 -9 25];
if x < 0
disp(‘some elements are –ve’)
else
y = sqrt(x), end
else Example 2Now consider the following.
>> x = [4 -9 25];
if x >= 0
y = sqrt(x)
else
disp(‘some elements are –ve’)
end
elseif Statement
if logical expression 1
statements 1
elseif logical expression 2
statements 2
else
statements 3
end
CW 5.3 (attach all printed codes)
1. Suppose that x = [-4 -1 0 2 10] and
y = [-5 -2 2 5 9]. Find the values and the indices of the elements in x that are greater than the corresponding elements in y
CW 5.32. 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
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.
Addressing string variableConsider
>> sch_name = ‘Mark Keppel High’
>> length(sch_name)
>> sch_name(4:6)
Prompt for response
>> reply = input(‘Continue? Y/N [Y]: ’, ‘s’);
>> if (isempty(reply))|reply==‘Y’|reply==‘y’)
reply = ‘Y’
else
reply = ‘N’
end
for Loops
Repeating a calculation a number of times
Typical structure
>> for loop_variable = start : step : end
stmts
end
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