array operations engr 1181 matlab 4. today's learning objectives after today’s class,...

21
Array Operations ENGR 1181 MATLAB 4

Upload: laurence-summers

Post on 18-Jan-2016

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Array OperationsENGR 1181MATLAB 4

Page 2: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Today's Learning Objectives

After today’s class, students will be able to:

• Explain the meaning of element-by-element operations.

• Identify situations where the standard operators in MATLAB (when used with arrays) are reserved for linear algebra, which is not always element-by-element.

• Apply dot operators for the six cases where linear algebra is not element-by-element and therefore dot operators are needed to produce element-by-element calculations.

Page 3: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Scalar Math

For scalar variables a and b :

>> a = 4 ;>> b = 2 ;

MATLAB has scalar math operations:

>> a + b>> a – b>> a * b>> a / b>> a ^ b

Page 4: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Scalar–Vector Addition

Define the vector v and the scalar c :

>> v = [ 10 20 30 40 ] ;>> c = 4 ;Add them:>> v + c>> c + v

ans = 14 24 34 44

Page 5: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Scalar - Vector Multiplication

For the vector v and scalar c :

>> v = [ 10 20 30 40 ] ; >> c = 4 ;

Multiply them:

>> c * v>> v * c

ans = 40 80 120 160

Page 6: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Scalar - Vector Division

>> v = [ 10 20 30 40 ] ;>> c = 4 ;

Divide:

>> v / c

ans = 2.50 5.00 7.50 10.00

Page 7: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Scalar - Vector Division>> v = [ 10 20 30 40 ] ;>> c = 4 ;

Divide:>> c / v

Error using / Matrix dimensions must agree.

>> c ./ v

ans = 0.40 0.20 0.13 0.10

Page 8: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Scalar - Vector Exponents>> v = [ 10 20 30 40 ] ;>> c = 4 ;Exponent:

>> v ^ c

Better:

>> v .^ c

Error using ^ Inputs must be a scalar and a square matrix.To compute elementwise POWER, use POWER (.^) instead.

ans =

10000 160000 810000 2560000

Page 9: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Scalar - Vector Math Summary

For a scalar c and a vector v:

Addition v + c or c + vSubtraction v – c or c – v

Multiplication v * c or c * v or v.* c orc.* v

Division v / c or c./ v or v./ c

Exponent v.^ c or c.^ v

Page 10: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Vector–Vector Addition Define the vector x and the vector y :

>> x = [ 10 20 30 40 ] ;>> y = [ 2 4 6 8 ] ;Add them:>> x + y>> y + x

ans = 12 24 36 48

x and y must be the same length!

Page 11: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Vector - Vector Multiplication

x = [ 10 20 30 40 ]; y = [ 2 4 6 8 ];

Multiply:

>> z = x * y

??? Error using ==> mtimesInner matrix dimensions must agree!!!

Page 12: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Vector - Vector Multiplication

x = [ 10 20 30 40 ] ; y = [ 2 4 6 8 ] ;

Multiply two vectors element-by-element:

>> z = x .* yz = 20 80 180 320

Page 13: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Vector - Vector Divisionx = [ 10 20 30 40 ] ;y = [ 2 4 6 8 ] ;

Divide:

>> x ./ y

ans = 5 5 5 5

Also try

>> y ./ x

ans = 0.20 0.20 0.20 0.20

Page 14: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Vector - Vector Exponents

x = [ 2 2 2 2 ] ;y = [ 2 4 6 8 ] ;

Exponent:

>> x .^ y

Also try:

>> y .^ x

ans = 4 16 64 256

ans = 4 16 36 64

Page 15: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Vector - Vector Math Summary

For two vectors x and y :

Addition x + y or y + xSubtraction x – y or y – x

Multiplication x.* y ory.* x

Division x./ y or y./ x

Exponent x.^ y or y.^ xAlways use the dot operator for Multiply, Divide, and Exponent

Page 16: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Example 1Calculate y = 4x2 for x = 1, 2, 3 and 4

First define x

>> x = [ 1 2 3 4 ];

Then calculate y

>> y Which '.' is required below?

y = 4.*x.^2

y = 4*x.^2y = 4 16 36 64

Required

y = 4 16 36 64

Page 17: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Example 2Calculate y = (4a2 + a)/(2+a) for a = 1, 2, 3 and 4

First define a :

>> a = [ 1 2 3 4 ]

a = 1 2 3 4

>> y = ((4*a.^2)+a)./(2+a)

y = 1.6667 4.5000 7.8000 11.3333

Page 18: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Built - In Vector FunctionsMATLAB has built-in functions for vectorsWhen v is a vector:

max(v) Returns the largest element in v

min(v) Returns the smallest element in v

mean(v) Returns the average value of the elements in v

sum(v) Returns the sum of the elements of v

length(v) Returns the number of elements in v

sort(v) Sorts the elements of v

Page 19: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Important Takeaways

Know when to use the dot operator for Multiply, Divide, and Exponent.

Always use a dot operator when appropriate and understand what you are trying to accomplish when you use it.

Vector functions operate on all of the numbers in a vector or matrix.

Page 20: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Preview of Next Class Input and Output• Inputting data into and out of

programs• GPA calculator example

With and without use of vectors

• Inputting to a script file• Output to command window

Page 21: Array Operations ENGR 1181 MATLAB 4. Today's Learning Objectives  After today’s class, students will be able to: Explain the meaning of element-by-element

Review today’s Quiz #04

Open the in-class activity from the EEIC website and we will go through it together.

Then, start working on MAT-04 homework.

Before next class, you will read more detail about script files including global variables. There is also information on input and output (I/O) commands in MATLAB.

What’s Next?