Download presentation

Presentation is loading. Please wait.

Published byDina Boyd Modified over 4 years ago

1
CSE123 Lecture 5 Arrays and Array Operations

2
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.

3
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

4
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

5
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

6
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:

7
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

8
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

9
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

10
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 ];

11
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

12
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

13
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

14
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

15
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

16
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.

17
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

18
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

19
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”

20
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

21
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

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

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

24
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

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

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

27
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

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

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

30
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

31
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

32
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

33
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

34
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

35
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

36
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

37
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

38
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

39
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

40
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

41
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

42
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

Similar presentations

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google