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

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

Embed Size (px)

Citation preview

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