1 Week 3: Vectors and Matrices (Part III) READING: 2.2 – 2.4 EECS Introduction to Computing for the Physical Sciences
Vectors and Matrices as Function Arguments 2 EECS Introduction to Computing for the Physical Sciences In MATLAB, an entire vector or matrix can be passed as an argument to a function such as sum, prod >> v = 1:5; >> sum(v) ans = 15 For a vector, the function will be evaluated on every element. Example: >> v = 1:5; >> prod(v) ans = 120 Means Means 1 * 2 * 3 * 4 * 5
Vectors and Matrices as Function Arguments 3 EECS Introduction to Computing for the Physical Sciences For matrices, the sum and prod functions operate on every individual column. Hence, if a matrix has dimensions: r x c, the result for the sum and prod functions will be a 1 x c row vector >> A = [1:3; 2:4; 5:7]; >> sum(A) ans = Example: from from from
Vectors and Matrices as Function Arguments 4 EECS Introduction to Computing for the Physical Sciences >> A = [1:3; 2:4; 5:7]; >> Example: How would you compute the sum of all the entries in A?
Vectors and Matrices as Function Arguments 5 EECS Introduction to Computing for the Physical Sciences Some other commonly used functions in array include: functionsdescriptionsExamples in vectors: minReturns the smallest number >> v = [ ]; >> min(v) ans = 1 maxReturns the largest number >> v = [ ]; >> max(v) ans = 4 cumsumReturns the cumulative sum >> v = [ ]; >> cumsum(v) ans = cumprodReturns the cumulative product >> v = [ ]; >> cumprod(v) ans =
Vectors and Matrices as Function Arguments 6 EECS Introduction to Computing for the Physical Sciences >> A = [1:3; 2:-1:0; 5:7]; Example: How would you determine the largest number in the following matrix?
Vectors and Matrices as Function Arguments 7 EECS Introduction to Computing for the Physical Sciences Example: >> A = [1:3; 2:4; 5:7]; >> cumsum(A) ans = Hence, the resulting matrix will have the same dimension as the input matrix. When the cumsum and cumprod functions are used in matrices, they return the cumulative sum or product of every column:
Matrix transpose 8 EECS Introduction to Computing for the Physical Sciences Example: >> A = [1 2; 3 4; 5 6] A = >> transpose_A = A’ transpose_A = If A is an m x n matrix, then the transpose of A is an n x m matrix, where the row vectors of A are written as column vectors
Scalar multiplication 9 EECS Introduction to Computing for the Physical Sciences Example of a vector: >> v = [ ]; >> v*3 ans = Numerical or arithmetic operations can be performed on every element in the entire vectors or matrices
Scalar multiplication 10 EECS Introduction to Computing for the Physical Sciences Example of a matrix: >> A = [1 3; 5 7; 2 4]; >> A*3 ans =
Scalar addition and subtraction 11 EECS Introduction to Computing for the Physical Sciences Example: >> A = [1 3; 5 7; 2 4]; >> A + 2 ans = Add every element by 2
Array operations: addition and subtraction 12 EECS Introduction to Computing for the Physical Sciences You can perform element-by-element arithmetic with two arrays of the same size >> v1 = [1 2 3]; >> v2 = [4 5 6]; >> v1 + v2 ans = Example: Adding two vectors
Array operations: addition and subtraction 13 EECS Introduction to Computing for the Physical Sciences >> A1 = [1 2 3; 2 2 5]; >> A2 = [1 0 1; 3 6 1]; >> A1 + A2 ans = Example: Adding two matrices
Array operations: addition and subtraction 14 EECS Introduction to Computing for the Physical Sciences >> A1 = [1 2 3; 2 2 5]; >> A2 = [1 0 1; 3 6 1]; >> A1 - A2 ans = Example: Subtracting two matrices
Array operations: addition and subtraction 15 EECS Introduction to Computing for the Physical Sciences >> A1 = [1 2 3; 2 2 5]; >> A2 = [1 0 1; 3 6 1]; >> A2(2,:)=[] >> A1 - A2 ans = Error using - Matrix dimensions must agree. Example: Subtracting two matrices with different dimensions
Matrix Multiplication 16 EECS Introduction to Computing for the Physical Sciences Multiplication between two matrices works as follows: To multiply a matrix A by a matrix B to result in a matrix C, the number of columns of A must equal to the number of row in B Example: 2 x 2 2 x 1 the inner dimensions must be the same
Matrix Multiplication 17 EECS Introduction to Computing for the Physical Sciences Example: >> A = [1 2; 3 2]; >> B = [4 1]’; >> A*B ans = 6 14 Multiplying two matrices
Vector Multiplication 18 EECS Introduction to Computing for the Physical Sciences To multiple 2 vectors, they must have the same number of elements, but one must be a row vector and the other a column vector OR Example: 1 x 3 3 x 11 x 1
Vector Multiplication 19 EECS Introduction to Computing for the Physical Sciences Example: >> A = [1 2 4]; >> B = [2; 0; 1]; >> A*B ans = 6 Multiplying two vectors 1 x 3 vector 3 x 1 vector
Vector Multiplication 20 EECS Introduction to Computing for the Physical Sciences Example: >> A = [1 2 4]; >> B = [2; 0; 1]; >> B*A ans = x 3 vector 3 x 1 vector Multiplying two vectors 3 x 3 matrix
Array operations: Multiplication 21 EECS Introduction to Computing for the Physical Sciences How do we perform element-by-element multiplication or division between 2 vectors or 2 matrices? Example: >> v1 = [1:6] v1 = >> v1*v1 MATLAB will interpret this one as multiplying a 1 x 6 vector with a 1 x 6 vector >> Error using * Inner matrix dimensions must agree.
Array operations: Multiplication 22 EECS Introduction to Computing for the Physical Sciences To perform element-by-element multiplication-based operation between multiple vectors, a “dot” must be placed in front of the operator operatorsdescriptionsExamples in vectors:.*element-by-element multiplication >> v = [ ]; >> v.*v ans = /element-by-element division >> v = [ ]; >> v./v ans = ^element-by-element exponentiation >> v = [ ]; >> v.^3 ans =
Array operations: Multiplication 23 EECS Introduction to Computing for the Physical Sciences Recall from LAB 2, when we plot a function that involves multiplication among sub-functions, we are performing element-by-element multiplication operation between multiple vectors Example, to plot the function: y = xe x >> x = [0:0.1:0.5] x = >> exp(x) ans = >> y = x.*exp(x) y = A row vector for the independent variable
Array operations: Multiplication 24 EECS Introduction to Computing for the Physical Sciences
Array operations: Multiplication 25 EECS Introduction to Computing for the Physical Sciences To perform element-by-element multiplication-based operation between 2 matrices, the dimensions must be the same >> A = [1 2; 3 2]; >> B = [2 0; 1 4]; >> A.*B ans = Multiply each element in the same position of A and B Final result is:
Array operations: Multiplication 26 EECS Introduction to Computing for the Physical Sciences NOTE: the difference between element-by-element multiplication and the actual matrix multiplication in this example since we have two 2 x 2 matrices >> A = [1 2; 3 2]; >> B = [2 0; 1 4]; >> A.*B ans = >> A = [1 2; 3 2]; >> B = [2 0; 1 4]; >> A*B ans = Matrix multiplication Element-by-element multiplication
Array operations: Multiplication 27 EECS Introduction to Computing for the Physical Sciences >> A = [1 2; 3 2]; >> B = [2 0; 1 4]; >> B.*A ans = >> A = [1 2; 3 2]; >> B = [2 0; 1 4]; >> B*A ans = Matrix multiplication Element-by-element multiplication A.*B = B.*A A*B ≠ B*A
Array operations: Multiplication 28 EECS Introduction to Computing for the Physical Sciences Example: >> v = [2:2:8]; >> v.^2/2 ans = Example: >> A = [ones(1,3); 1:3]; >> A.^2’ ans = ^ has higher precedence than /