Upload
hazel-kimbell
View
213
Download
0
Embed Size (px)
Citation preview
Array OperationsENGR 1181MATLAB 4
Aerospace Engineers use turbulence data to calculate how close other planes can fly near the wake of a larger plane. These vortices can cause unstable flight conditions for smaller planes approaching the wake of a commercial jetliner. Thus this turbulent flow data is important in airspace management.
Array Operations In The Real World
Today's Learning Objectives After today’s class, students will be able to:• Explain 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.
Scalar Math Review
For scalar variables a and b:
>> a = 6;>> b = 2;
MATLAB has scalar math operations:
>> a + b>> a – b>> a * b>> a / b>> a ^ b
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
Vector–Vector Addition Define the vector v and the vector c:
>> v = [ 10 20 30 40 ] ;>> c = [ 2 4 6 8] ;
Add them:>> v + c>> c + v
ans = 12 24 36 48
v and c must be the same length!
Scalar - Vector MultiplicationFor the vector x and the scalar c:
>> v = [ 10 20 30 40 ] ; >> c = 4 ;Multiply them:>> c * v>> v * c
ans = 40 80 120 160
Vector - Vector Multiplicationx = [ 10 20 30 40 ] y = [ 2 4 6 8 ]
Now multiply:
>> z = x * y
??? Error using ==> mtimesInner matrix dimensions must agree!!!
Vector - Vector Multiplicationx = [ 10 20 30 40 ] y = [ 2 4 6 8 ]
To multiply to arrays element by element we need to use the following syntax:
>> z = x .* yz = 20 80 180 320
Scalar - Vector Division>> v = [ 10 20 30 40 ]>> c = 4
Divide them:>> v / c
ans = 2.50 5.00 7.50 10.00
Scalar - Vector Division>> v = [ 10 20 30 40 ]>> c = 4
Divide them:>> c / vError using / Matrix dimensions must agree.
>> c./v
ans = 0.400 0.200 0.133 0.100
Vector - Vector Divisionx = [ 10 20 30 40 ]y = [ 2 4 6 8 ]
Divide them:
>> x . / yans = 5 5 5 5
Also, try
>> y . / xans = 0.20 0.20 0.20 0.20
Scalar - Vector Exponents>> v = [ 10 20 30 40 ]>> c = 4
Try:>> v ^ c
Try instead:>> v .^ c
Error using ^ Inputs must be a scalar and a square matrix.To compute elementwise POWER, use POWER (.^) instead.
Vector - Vector Exponentsx = [ 2 2 2 2 ] ;y = [ 2 4 6 8 ] ;
Try this:
>> x .^ y
Also try>> y .^ x
ans = 4 16 64 256
ans = 4 16 36 64
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 or c.*vDivision v / c or c./v or v ./ c
Exponent v .^ c or c .^ v
Vector - Vector Math Summary
For two vectors x and y :Addition x + y or y + xSubtraction x – y or y – x
Multiplication x .* y or y .* x
Division x ./ y or y ./ x
Exponent x .^ y or y .^ xYou must always use the dot operator
for Multiplication, Division, and Exponent
Example 1Calculate y = 4x2 for x = 1,2,3 and 4.
First define x
>> x = [1 2 3 4];
Then calculate y
>> y = 4.*x.^2 Which ‘.’ is required here?
y =
4 16 36 64
Example 2Calculate y = (4a2 + a)/(2+a) for a = 1,2,3 and 4.
First define a = [ 1 2 3 4 ]
>> 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
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
Important Takeaways Know when to use a dot operator for
Multiplication, Division, and Exponents.
Only use a dot operator when appropriate and understand what you are trying to accomplish before you use it.
Vector functions operate on an entire set of numbers located inside of an array, or matrix.
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
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?