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

## Presentation on theme: "CSE123 Lecture 5 Arrays and Array Operations. Definitions Scalars: Variables that represent single numbers. Note that complex numbers are also scalars,"— Presentation transcript:

CSE123 Lecture 5 Arrays and Array Operations

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.

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.9511 Columns 8 through 11 0.8090 0.5878 0.3090 0.0000

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

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; >> S S = 3.0000 -1.0000 3.1000 >> S(4) = 5.5; >> S S = 3.0000 -1.0000 3.1000 5.5000 >> S(7) = 8.5; >> S S = 3.0000 -1.0000 3.1000 5.5000 0 0 8.5000

Vector Creation Alternatives Colon notation: (start:increment:end) where start, increment, and end can now be floating point numbers. x=(0:0.1:1)*pi x = Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.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) The increment is computed internally, having the value:

Vector Creation Alternatives >> x=linspace(0,pi,11) x = Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416 logspace(start_exponent,end_exponent,number) To create a vector starting at 10 0 = 1,ending at 10 2 = 100 and having 11 values: >> logspace(0,2,11) ans = Columns 1 through 7 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 Columns 8 through 11 25.1189 39.8107 63.0957 100.0000

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

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 = 1 2 3 4 5 The transpose operator (’) is used to transpose a row vector into a column vector >> a = 1:5 a = 1 2 3 4 5 >> c = a’ c = 1 2 3 4 5

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 ]; B= [ 1 2 ; 3 4 ]; A= [ 1, 2, 3 ];

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 3 4 5 6 7 8 9] h = 1 2 3 4 5 6 7 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 3 4 5 6 >> g = f’ g = 1 4 2 5 3 6

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

Concatenation: Combine two (or more) matrices into one Special matrix creation Notation: C=[ A, B ] Square brackets >> A=ones(2,2); >> B=zeros(2,2); >>C=[A, B] >>D=[A ; B] D = 1 1 1 1 0 0 C = 1 1 0 0 1 1 0 0

Obtain a single value from a matrix: Ex: want to know a 21 Matrix indexation Notation: A(2,1) Row index Column index >> A=[1 2 3; 3 2 1; 1 2 4]; >> A(2,1) ans = 3 >> A(3,2) ans = 2

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 Colon Colon defines a “range”: 1 to 10 Notation: A(1:3,2:3) Row 1 to 3 Column 2 to 3 Colon can also be used as a “wildcard” Row 2, ALL columns

Matrix size CommandDescription 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.

Matrix size >> A = [1 2 3; 4 5 6] A = 1 2 3 4 5 6 >> s = size(A) s = 2 3 >> [r,c] = size(A) r = 2 c = 3 >> whos Name Size Bytes Class A 2x3 48 double array ans 1x1 8 double array c 1x1 8 double array r 1x1 8 double array s 1x2 16 double array

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

Operations on vectors and matrices in Matlab MathMatlab Addition/subtractionA+B A-B Multiplication/ division (element by element) A. * B A./B Multiplication (Matrix Algebra) A*BA*B Transpose: A T A’ Inverse: A -1 inv(A) Determinant: |A|det(A) “single quote”

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 3 4 5 6 >> g = 2*f -1 g = 1 3 5 7 9 11

Array Operations Element-by-Element Array-Array Mathematics When 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 + b Subtraction a − b a - b Multiplication a x b a.*b Division a / b a./b Exponentiation a b a.^b

MATRIX Addition (substraction) M N M N M N Array Operations

Examples: Addition & Subtraction 246 8 10 12 14 16 18 000 0 00 0 00 Array Operations

Element-by-Element Array-Array Mathematics >> A = [2 5 6]; >> B = [2 3 5]; >> C = A.*B C = 4 15 30 >> D = A./B D = 1.0000 1.6667 1.2000 >> E = A.^B E = 4 125 7776 >> F = 3.0.^A F = 9 243 729

MATRIX Multiplication (element by element) M N M N M N “dot” “multiply” NOTATION Array Operations

Examples: Multiplication & Division (element by element) 149 16 2536 49 6481 111 1 11 1 11 Array Operations

The matrix multiplication of m x n matrix A and nxp matrix B yields m x p matrix C, denoted by C = AB Element c ij is the inner product of row i of A and column j of B Note that AB ≠ BA Matrix Multiplication

Row 1 Column 1 Cell 1-1 “multiply” NOTATION M1M1 N1N1 M2M2 N2N2 M1M1 N2N2 N1=M2 Array Operations

Example: Matrix Multiplication 16911 12 1113 12 1014 1x1 + 2x3 +3x3 1x2 + 2x2 +3x1 1x3 + 2x1 +3x2 Array Operations

Solving systems of linear equations Example: 3 equations and 3 unknown 1x + 6y + 7z =0 2x + 5y + 8z =1 3x + 4y + 5z =2 Can be easily solved by hand, but what can we do if it we have 10 or 100 equations? Array Operations

Solving systems of linear equations First, write a matrix with all the (xyz) coefficients 1x + 6y + 7z = 0 2x + 5y + 8z = 1 3x + 4y + 5z = 2 Write a matrix with all the constants Finally, consider the matrix of unknowns Array Operations

Solving systems of linear equations A x S = B 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

Solving systems of linear equations 1x + 6y + 7z =0 2x + 5y + 8z =1 3x + 4y + 5z =2 The previous set of equations can be expressed in the following vector-matrix form: A x S = B X Array Operations

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)= m 11 m 22 – m 21 m 12 Formula for a 2x2 matrix: IMPORTANT: the determinant of a matrix is a scalar Array Operations

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. M -1 = Formula for a 2x2 matrix: IMPORTANT: the inverse of a matrix is a matrix Array Operations

Property of identity matrix: I x A = A and A x I = A Matrices properties Property of inverse : A x A -1 = I and A -1 x A = I Example: Array Operations

x + 6y + 7z =0 2x + 5y + 8z =1 3x + 4y + 5z =2 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

x + 6y + 7z =0 2x + 5y + 8z =1 3x + 4y + 9z =2 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

Applications in mechanical engineering F1 F2 5N 7N x y 60 o 30 o 20 o 80 o Find the value of the forces F1and F2

F1 F2 5N 7N x y 60 o 30 o 20 o 80 o Projections on the X axisF1 cos(60) + F2 cos(80) – 7 cos(20) – 5 cos(30) = 0 Applications in mechanical engineering

F1 F2 5N 7N x y 60 o 30 o 20 o 80 o Projections on the Y axisF1 sin(60) - F2 sin(80) + 7 sin(20) – 5 sin(30) = 0 Applications in mechanical engineering

F1 cos(60) + F2 cos(80) – 7 cos(20) – 5 cos(30) = 0 F1 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 N F2= 14.6139 N Applications in mechanical engineering

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

Similar presentations