of 43

Arrays and Array Operations

CSE123 Lecture 5 Arrays and Array Operations
0 views43 pages
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Documenttranscript
Title: Arrays and Array Operations 1 Lecture 5 CSE123
  • 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.
  • gtgtx0 .1pi .2pi .3pi .4pi .5pi .6pi .7pi .8pi .9pi pi gtgtysin(x) gtgty 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.
  • gtgt x(3) ans 0.6283 gtgt y(5) ans 0.9511 Colon notation Addresses a block of elements. The format is (startincrementend) 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 (startend) gtgt x(15) ans 0 0.3142 0.6283 0.9425 1.2566 gtgt x(7end) ans 1.8850 2.1991 2.5133 2.8274 3.1416 gtgt y(3-11) ans 0.5878 0.3090 gtgt 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.
  • gtgt B 1.5, 3.1 gtgt S 3.0 B S 3.0000 1.5000 3.1000
  • Changing Values can be changed by referencing a specific address
  • gtgt S(2) -1.0 gtgt S S 3.0000 -1.0000 3.1000
  • Extending Additional values can be added using a reference to a specific address.
  • gtgt S(7) 8.5 gtgt S S 3.0000 -1.0000 3.1000 5.5000 0 0 8.5000 gtgt S(4) 5.5 gtgt S S 3.0000 -1.0000 3.1000 5.5000 6 Vector Creation Alternatives
  • Colon notation
  • (startincrementend)
  • where start, increment, and end can now be floating point numbers.
  • x(00.11)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 gtgt xlinspace(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 100 1,ending at 102 100 and having 11 values gtgt 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. gtgt x 0 1 2 3 4 5 x 0 1 2 3 4 5 gtgt 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 The transpose operator () is used to transpose a row vector into a column vector gtgt a 15 a 1 2 3 4 5 gtgt c a c 1 2 3 4 5 gtgt c 12345 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 A 1, 2, 3 B 1 2 3 4 C 5 6 7 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.
  • gtgt h 1 2 3 4 5 6 7 8 9 h 1 2 3 4 5 6 7 8 9 gtgt k 1 23 4 5 ??? Number of elements in each row must be the same. gtgtf 1 2 3 4 5 6 f 1 2 3 4 5 6 gtgt g f g 1 4 2 5 3 6 12 Special matrix creation Manipulations and Combinations A 10 10 10 10 Matrix full of 10 gtgt A10ones(2,2) Matrix of random numbers between 0 and 10 gtgt B10rand(2,2) B 4.5647 8.2141 0.1850 4.4470 Matrix of random numbers between -1 and 0 gtgt C -rand(2,2) C -0.4103 -0.0579 -0.8936 -0.3529 Matrix of random numbers between -1 and 1 gtgt C2rand(2,2) ones(2,2) gtgt C2rand(2,2) -1 C -0.6475 0.8709 -0.1886 0.8338 13 Special matrix creation Concatenation Combine two (or more) matrices into one Notation C A, B gtgt Aones(2,2) gtgt Bzeros(2,2) gtgtCA , B gtgtDA B D 1 1 1 1 0 0 0 0 C 1 1 0 0 1 1 0 0 14 Matrix indexation Obtain a single value from a matrix Ex want to know a21 Notation A(2,1) gtgt A1 2 3 3 2 1 1 2 4 gtgt A(2,1) ans 3 gtgt A(3,2) ans 2 15 Matrix indexation Obtain more than one value from a matrix Ex X110 Notation A(13,23) Colon defines a range 1 to 10 Colon can also be used as a wildcard gtgt A1 2 3 3 2 1 1 2 4 gtgt BA(13,23) B 2 3 2 1 2 4 gtgt CA(2,) C 3 2 1 16 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. 17 Matrix size gtgt 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 gtgt A 1 2 3 4 5 6 A 1 2 3 4 5 6 gtgt s size(A) s 2 3 gtgt r,c size(A) r 2 c 3 18 Special matrix creation 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 gtgt Azeros(2,3) A 0 0 0 0 0 0 gtgt Bones(2,2) B 1 1 1 1 gtgt Ceye(2,2) C 1 0 0 1 gtgt Drand(3,2) D 0.9501 0.4860 0.2311 0.8913 0.6068 0.7621 19 Operations on vectors and matrices in Matlab Math Matlab Addition/subtraction AB A-B Multiplication/ division (element by element) A.B A./B Multiplication(Matrix Algebra) AB Transpose AT A Inverse A-1 inv(A) Determinant A det(A) 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.
  • gtgt f 1 2 3 4 5 6 f 1 2 3 4 5 6 gtgt g 2f -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 ab a . b 22 Array Operations MATRIX Addition (substraction) 23 Array Operations Examples Addition Subtraction 2 4 6 0 0 0 10 8 12 0 0 0 14 18 16 0 0 0 24 Array Operations
  • Element-by-Element Array-Array Mathematics
  • gtgt A 2 5 6 gtgt B 2 3 5 gtgt C A.B C 4 15 30 gtgt D A./B D 1.0000 1.6667 1.2000 gtgt E A.B E 4 125 7776 gtgt F 3.0.A F 9 243 729 25 Array Operations MATRIX Multiplication (element by element) 26 Array Operations Examples Multiplication Division (element by element) 1 4 9 1 1 1 16 25 36 1 1 1 49 64 81 1 1 1 27 Array Operations Matrix Multiplication
  • The matrix multiplication of m x n matrix A and nxp matrix B yields m x p matrix C, denoted by
  • C AB
  • Element cij is the inner product of row i of A and column j of B
  • Note that AB ? BA 28 Array Operations Matrix Multiplication Cell 1-1 29 Array Operations Example Matrix Multiplication 16 9 11 12 11 13 12 10 14 30 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? 31 Array Operations Solving systems of linear equations 1x 6y 7z 0 2x 5y 8z 1 3x 4y 5z 2 32 Array Operations Solving systems of linear equations A x S B A x S B A-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 33 Array Operations Solving systems of linear equations The previous set of equations can be expressed in the following vector-matrix form A x S B X 1x 6y 7z 0 2x 5y 8z 1 3x 4y 5z 2 34 Array Operations Matrix Determinant
  • 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.
  • Notation Determinant of A A or det(A) det(M) m11 m22 m21 m12 IMPORTANT the determinant of a matrix is a scalar 35 Array Operations Matrix Inverse
  • 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.
  • Notation inverse of A A-1 or inv(A) Formula for a 2x2 matrix M-1 IMPORTANT the inverse of a matrix is a matrix 36 Array Operations Matrices properties Property of inverse A x A-1 I and A-1 x A I Property of identity matrix I x A A and A x I A 37 Solving systems of equations in Matlab x 6y 7z 0 2x 5y 8z 1 3x 4y 5z 2 In Matlab gtgt A 1 6 7 2 5 8 3 4 5 gtgt B012 gtgt Sinv(A)B Verification gtgt det(A) ans 28 gtgt S 0.8571 -0.1429 0 38 Solving systems of equations in Matlab x 6y 7z 0 2x 5y 8z 1 3x 4y 9z 2 In Matlab gtgt A 1 6 7 2 5 8 3 4 5 gtgt B012 gtgt Sinv(A)B Verification gtgt det(A) ans 0 Warning Matrix is singular to working precision. gtgt S NaN NaN NaN NO Solution!!!!! 39 Applications in mechanical engineering Find the value of the forces F1and F2 40 Applications in mechanical engineering Projections on the X axis F1 cos(60) F2 cos(80) 7 cos(20) 5 cos(30) 0 41 Applications in mechanical engineering Projections on the Y axis F1 sin(60) - F2 sin(80) 7 sin(20) 5 sin(30) 0 42 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, sin and cos use radians, not degree In Matlab gtgt CFpi/180 gtgt Acos(60CF), cos(80CF) sin(60CF), sin(80CF) gtgt B7cos(20CF)5cos(30CF) -7sin(20CF)5sin (30CF) gtgt F inv(A)B or (A\B) Solution F1 16.7406 N F2 14.6139 N F 16.7406 14.6139
    Advertisement
    MostRelated
    View more
    We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks
    SAVE OUR EARTH

    We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

    More details...

    Sign Now!

    We are very appreciated for your Prompt Action!

    x