Top Banner
CSE123 Lecture Lecture 5 5 Arrays and Array Arrays and Array Operations Operations
42

CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Dec 30, 2015

Download

Documents

Dina Boyd
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

CSE123 CSE123

Lecture Lecture 55

Arrays and Array OperationsArrays and Array Operations

Page 2: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Definitions

• Scalars: Variables that represent single numbers. Note that complex numbers are also scalars, even though they have two components.

• Arrays: Variables that represent more than one number. Each number is called an element of the array. Array operations allow operating on multiple numbers at once.

• Row and Column Arrays (Vector): A row of numbers (called a row vector) or a column of numbers(called a column vector).

• Two-Dimensional Arrays (Matrix): A two-dimensional table of numbers, called a matrix.

Page 3: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Vector Creation by Explicit List

• A vector in Matlab can be created by an explicit list, starting with a left bracket, entering the values separated by spaces (or commas) and closing the vector with a right bracket.

>>x=[0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]

>>y=sin(x)

>>y =Columns 1 through 7 0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511Columns 8 through 110.8090 0.5878 0.3090 0.0000

Page 4: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Vector Addressing / indexation

• A vector element is addressed in Matlab with an integer index (also called a subscript) enclosed in parentheses.

>> x(3)ans =0.6283

>> y(5)ans =0.9511

Colon notation: Addresses a block of elements. The format is:(start:increment:end)

Note start, increment and end must be positive integer numbers.

If the increment is to be 1, a shortened form of the notation may be used:(start:end)

>> x(1:5)ans =0 0.3142 0.6283 0.9425 1.2566

>> x(7:end)ans =1.8850 2.1991 2.5133 2.8274 3.1416

>> y(3:-1:1)ans =0.5878 0.3090

>> y([8 2 9 1])ans =0.8090 0.3090 0.5878 0

Page 5: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Vector Creation Alternatives

• Combining: A vector can also be defined using another vector that has already been defined.

>> B = [1.5, 3.1];>> S = [3.0 B]S =3.0000 1.5000 3.1000

• Changing: Values can be changed by referencing a specific address

• Extending: Additional values can be added using a reference to a specific address.

>> S(2) = -1.0;>> SS =3.0000 -1.0000 3.1000

>> S(4) = 5.5;>> SS =3.0000 -1.0000 3.1000 5.5000

>> S(7) = 8.5;>> SS =3.0000 -1.0000 3.1000 5.5000 0 0 8.5000

Page 6: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Vector Creation Alternatives

• Colon notation: (start:increment:end)

where start, increment, and end can now be floating point numbers.

x=(0:0.1:1)*pix =Columns 1 through 70 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850Columns 8 through 112.1991 2.5133 2.8274 3.1416

• linspace: generates a vector of uniformly incremented values, but instead of specifying the increment, the number of values desired is specified. The form:

linspace(start,end,number)

1

number

startendincrement

The increment is computed internally, having the value:

Page 7: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Vector Creation Alternatives

>> x=linspace(0,pi,11)x =Columns 1 through 70 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850Columns 8 through 112.1991 2.5133 2.8274 3.1416

logspace(start_exponent,end_exponent,number)To create a vector starting at 100 = 1,ending at 102 = 100 and having 11 values:

>> logspace(0,2,11)ans =Columns 1 through 71.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489Columns 8 through 1125.1189 39.8107 63.0957 100.0000

Page 8: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Vector Length

length(x): To determine the length of a vector array.

>> x = [0 1 2 3 4 5]x =0 1 2 3 4 5>> length(x)ans =6

Page 9: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Vector Orientation

A column vector, having one column and multiple rows, can be created by specifying it element by element, separating element values with semicolons:

>> c = [1;2;3;4;5]c =12345

The transpose operator (’) is used to transpose a row vector into a column vector

>> a = 1:5a =1 2 3 4 5>> c = a’c =12345

Page 10: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Matrix arrays in Matlab

Vector •Use square brackets.•Separate elements on the same row with spaces or commas.

&

Matrix•Use semi-colon to go to the next row.

A= [ 1 2 3 ];

C= [ 5 ; 6 ; 7 ];

321A

43

21B

7

6

5

C

B= [ 1 2 ; 3 4 ];

A= [ 1, 2, 3 ];

Page 11: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Matrix Arrays

A matrix array is 2D, having both multiple rows and multiple columns.

Creation of 2D arrays follows that of row and column vectors:– Begin with [ end with ]– Spaces or commas are used to separate elements in a row.– A semicolon or Enter is used to separate rows.

>> h = [1 2 34 5 67 8 9]h =1 2 34 5 67 8 9

>> k = [1 2;3 4 5]??? Number of elements in each row must be the same.

>>f = [1 2 3; 4 5 6]f =1 2 34 5 6

>> g = f’g =1 42 53 6

Page 12: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Manipulations and Combinations:

>> A=10*ones(2,2)A = 10 10

10 10

Special matrix creation

>> B=10*rand(2,2)

Matrix full of 10:

Matrix of random numbers between 0 and 10

B = 4.5647 8.2141

0.1850 4.4470

>> C= -rand(2,2)Matrix of random numbers between -1 and 0

C = -0.4103 -0.0579

-0.8936 -0.3529

>> C=2*rand(2,2) –ones(2,2)

>> C=2*rand(2,2) -1

Matrix of random numbers between -1 and 1

C = -0.6475 0.8709

-0.1886 0.8338

Page 13: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Concatenation: Combine two (or more) matrices into one

Special matrix creation

Notation:

C=[ A, B ]

Square bracketsSquare

brackets

>> A=ones(2,2);

>> B=zeros(2,2);

>>C=[A , B]

>>D=[A ; B]

D = 1 1

1 1

0 0

0 0

C = 1 1 0 0

1 1 0 0

Page 14: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Obtain a single value from a matrix:

Ex:

want to know a21

Matrix indexation

421

123

321

A

Notation:

A(2,1)

Row indexRow index Column indexColumn index

>> A=[1 2 3; 3 2 1; 1 2 4];

>> A(2,1)

ans =

3

>> A(3,2)

ans =

2

Page 15: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Obtain more than one value from a matrix:

Ex: X=1:10

Matrix indexation

>> A=[1 2 3; 3 2 1; 1 2 4];

>> B=A(1:3,2:3)

B = 2 3

2 1

2 4

>> C=A(2,:)

C = 3 2 1

ColonColon

Colon defines a “range”: 1 to 10

Notation:

A(1:3,2:3)

Row 1 to 3Row 1 to 3

Column 2 to 3Column 2 to 3

Colon can also be used as a “wildcard”

Row 2, ALL columns

Row 2, ALL columns

421

123

321

A

Page 16: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Matrix size

Command Description

s = size(A) For an m x n matrix A, returns the two-element row vector s = [m, n] containing the number of rows and columns in the matrix.

[r,c] = size(A) [r,c] = size(A) Returns two scalars r and c containing the number of rows and columns in A, respectively.

r = size(A,1) Returns the number of rows in A in the variable r.

c = size(A,2) Returns the number of columns in A in the variable c.

Page 17: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Matrix size

>> A = [1 2 3; 4 5 6]A =1 2 34 5 6

>> s = size(A)s =2 3

>> [r,c] = size(A)r =2c =3

>> whosName Size Bytes ClassA 2x3 48 double arrayans 1x1 8 double arrayc 1x1 8 double arrayr 1x1 8 double arrays 1x2 16 double array

Page 18: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

zeros(M,N)Matrix of zeros

ones(M,N)Matrix of ones

eye(M,N)Matrix of ones on the diagonal

rand(M,N)Matrix of random numbers between 0 and 1

>> A=zeros(2,3) A = 0 0 0

0 0 0

>> B=ones(2,2) B = 1 1

1 1

>> D=rand(3,2) D = 0.9501 0.4860

0.2311 0.8913

0.6068 0.7621

Special matrix creation

>> C=eye(2,2) C = 1 0

0 1

Page 19: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Operations on vectors and matrices in Matlab

Math Matlab

Addition/subtraction A+B

A-B

Multiplication/ division (element by element)

A.*B

A./B

Multiplication(Matrix Algebra)

A*B

Transpose: AT A’

Inverse: A-1 inv(A)

Determinant: |A| det(A)

“single quote”“single quote”

Page 20: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Array Operations

Scalar-Array Mathematics

Addition, subtraction, multiplication, and division of an array by a scalar simply apply the operation to all elements of the array.

>> f = [1 2 3; 4 5 6]f =1 2 34 5 6>> g = 2*f -1g =1 3 57 9 11

Page 21: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Array Operations

Element-by-Element Array-Array MathematicsWhen two arrays have the same dimensions, addition, subtraction, multiplication, and division apply on an element-by-element basis.

Operation Algebraic Form Matlab

Addition a + b a + bSubtraction a − b a - bMultiplication a x b a.*bDivision a / b a./bExponentiation ab a.^b

Page 22: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

333231

232221

131211

aaa

aaa

aaa

A

333231

232221

131211

bbb

bbb

bbb

B

333332323131

232322222121

131312121111

bababa

bababa

bababa

BA

MATRIX Addition (substraction)

M

N

M

N

M

N

Array Operations

Page 23: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

987

654

321

A

BA

Examples: Addition & Subtraction

987

654

321

B

2 4 6

8 10 12

14 16 18

BA

0 0 0

0 0 0

0 0 0

Array Operations

Page 24: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Array Operations

Element-by-Element Array-Array Mathematics

>> A = [2 5 6];>> B = [2 3 5];>> C = A.*BC =4 15 30

>> D = A./BD =1.0000 1.6667 1.2000

>> E = A.^BE =4 125 7776

>> F = 3.0.^AF =9 243 729

Page 25: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

333231

232221

131211

aaa

aaa

aaa

A

333231

232221

131211

bbb

bbb

bbb

B

333332323131

232322222121

131312121111

bababa

bababa

bababa

BA

MATRIX Multiplication (element by element)

M

N

BA

M

N

M

N

“dot”

“multiply”

NOTATION

Array Operations

Page 26: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

987

654

321

A

BA

Examples: Multiplication & Division (element by element)

987

654

321

B

1 4 9

16 25 36

49 64 81

B/A

1 1 1

1 1 1

1 1 1

Array Operations

Page 27: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Array Operations

The matrix multiplication of m x n matrix A and nxp matrix B yields m x p matrix C, denoted byC = AB

Element cij is the inner product of row i of A and column j of B

n

kkjikij bac

1

Note that AB ≠ BA

Matrix Multiplication

Page 28: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

333231

232221

131211

aaa

aaa

aaa

A

333231

232221

131211

bbb

bbb

bbb

B

333323321331323322321231313321321131

332323221321322122221221312321221121

331323121311321322121211

bababababababababa

bababababababababa

babababababa

BA

Matrix Multiplication

Row 1

Colum

n 1

Cell 1-1

311321121111 bababa

BA

“multiply”

NOTATION

M1

N1

M2

N2

M1

N2

N1=M2

Array Operations

Page 29: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

213

123

321

A

BA

Example: Matrix Multiplication

16 9 11

12 11 13

12 10 14

213

123

321

B

1x1 + 2x3 +3x31x2 + 2x2 +3x11x3 + 2x1 +3x2

Array Operations

Page 30: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Solving systems of linear equations

Example: 3 equations and 3 unknown

1x + 6y + 7z =02x + 5y + 8z =13x + 4y + 5z =2

Can be easily solved by hand, but what can we do if it we have 10 or 100 equations?

Array Operations

Page 31: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Solving systems of linear equations

First, write a matrix with all the (xyz) coefficients

543

852

761

A

1x + 6y + 7z = 02x + 5y + 8z = 13x + 4y + 5z = 2

Write a matrix with all the constants

2

1

0

B

Finally, consider the matrix of unknowns

z

y

x

S

Array Operations

Page 32: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Solving systems of linear equations

A x S = B

A x S = BA-1 x A-1 x

(A-1 x A) x S = A-1 x B

I x S = A-1 x B

S = A-1 x B

Array Operations

Page 33: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Solving systems of linear equations

1x + 6y + 7z =02x + 5y + 8z =13x + 4y + 5z =2

The previous set of equations can be expressed in the following vector-matrix form:

A x S = B

543

852

761

2

1

0

z

y

x

X

Array Operations

Page 34: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Matrix Determinant

Notation: Determinant of A = |A| or det(A)

•The determinant of a square matrix is a very useful value for finding if a system of equations has a solution or not.

•If it is equal to zero, there is no solution.

det(M)= m11 m22 – m21 m12

2221

1211

mm

mmM

Formula for a 2x2 matrix:

IMPORTANT: the determinant of a matrix is a scalar

Array Operations

Page 35: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Matrix Inverse

Notation: inverse of A = A-1 or inv(A)

•The inverse of a matrix is really important concept, for matrix algebra

•Calculating a matrix inverse is very tedious for matrices bigger than 2x2. We will do that numerically with Matlab.

2221

1211

mm

mmM M-1=

Formula for a 2x2 matrix:

1121

1222

)det(

1

mm

mm

M

IMPORTANT: the inverse of a matrix is a matrix

Array Operations

Page 36: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Property of identity matrix:

I x A = Aand A x I = A

Matrices properties

Property of inverse : A x A-1 = I

and A-1 x A = I

Example:

100

010

001

2.04.08.0

2.06.02.0

6.02.04.0

x

102

121

211

Array Operations

Page 37: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

x + 6y + 7z =02x + 5y + 8z =13x + 4y + 5z =2

543

852

761

A

2

1

0

B

z

y

x

S

In Matlab:>> A=[ 1 6 7; 2 5 8; 3 4 5]>> B=[0;1;2];>> S=inv(A)*B

Verification:

>> det(A)

ans =

28

Solving systems of equations in Matlab

>> S =

0.8571 -0.1429 0

Page 38: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

x + 6y + 7z =02x + 5y + 8z =13x + 4y + 9z =2

943

852

761

A

2

1

0

B

z

y

x

S

In Matlab:>> A=[ 1 6 7; 2 5 8; 3 4 5]>> B=[0;1;2];>> S=inv(A)*B

Verification:

>> det(A)

ans =

0

NO Solution!!!!!

Solving systems of equations in Matlab

Warning: Matrix is singular to working precision.

>> S =

NaN NaN NaN

Page 39: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

Applications in mechanical engineering

F1

F25N

7N

x

y

60o

30o

20o

80o

Find the value of the forces F1and F2

Page 40: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

F1

F25N

7N

x

y

60o

30o

20o

80o

Projections on the X axis F1 cos(60) + F2 cos(80) – 7 cos(20) – 5 cos(30) = 0

Applications in mechanical engineering

Page 41: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

F1

F25N

7N

x

y

60o

30o

20o

80o

Projections on the Y axis F1 sin(60) - F2 sin(80) + 7 sin(20) – 5 sin(30) = 0

Applications in mechanical engineering

Page 42: CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,

F1 cos(60) + F2 cos(80) – 7 cos(20) – 5 cos(30) = 0F1 sin(60) - F2 sin(80) + 7 sin(20) – 5 sin(30) = 0

F1 cos(60) + F2 cos(80) = 7 cos(20) + 5 cos(30) F1 sin(60) - F2 sin(80) = - 7 sin(20) + 5 sin(30)

In Matlab:>> CF=pi/180;>> A=[cos(60*CF), cos(80*CF) ; sin(60*CF), –sin(80*CF)];>> B=[7*cos(20*CF)+5*cos(30*CF) ; -7*sin(20*CF)+5*sin(30*CF) ]>> F= inv(A)*B or (A\B)

F = 16.7406 14.6139

In Matlab, sin and cos use radians, not degree

Solution: F1= 16.7406 NF2= 14.6139 N

Applications in mechanical engineering