Title: Vectors and Matrices
 1Vectors and Matrices
- Lecture 
 - Basic vector  matrix concepts 
 - Creating arrays and matrices 
 - Accessing matrix components 
 - Manipulating matrices 
 - Matrix functions 
 - Solving simultaneous equations
 
Learning Objectives Understand the nature of 
matrices Understand how to manipulate matrices in 
Matlab 
 2Using Matlab with Arrays and Matrices
- Matlabs origins are in the early efforts to 
develop fast and efficient programs for handling 
linear equations  - Operations with arrays, vectors and matrices are 
needed  - Only the most computationally efficient routines 
are used  - Matlab is very C-like but adds a number of 
operators and extends its syntax to handle a 
range of array, vector and matrix operations  - Matlabs fundamental data structure is the array 
and vectors and matrices follow easily  - BUT to see some of the power of Matlab for 
engineering applications, well have to dig a bit 
more deeply into some of the underlying math (no, 
this is not going to turn into a math class, but 
its often hard to avoid math in engineering) 
  3Basic Concepts
Scalars magnitude only
x, mass, color, 13.451
Vectors magnitude AND direction
Arrays can be 2D or higher dimension 
 4Matlab Can Handle This
Scalars
gtgt whos Name Size Bytes 
Class a 1x1 8 
double array density 1x1 
8 double array mass 1x1 
 8 double array resistance 1x1 
 8 double array s 1x1 
 8 double array stress 1x1 
 8 double array
Vectors
gtgt force12.3, 5.67 force  12.3000 
5.6700 gtgt hvec1, 5, -3, 4, 0 hvec  1 
 5 -3 4 0
Arrays
gtgt coef1, 2 -4, 3 coef  1 2 -4 
 3 
 5Basic Array Operations
- Addition/subtraction CAB where cij  aijbij 
 - Multiplication/division CA . B where cij  
aijbij  - Exponentiation CA . 4 where cij  aij4
 
gtgt CAB C  -3 3 -7 9
B  -4 1 -3 6
A  1 2 -4 3
gtgt CA.B C  -4 2 12 18
gtgt CA./B C  -0.2500 2.0000 1.3333 
0.5000
gtgt CA.2 C  1 4 16 9 
 6Notes on Array Operations
- Arithmetic operations on arrays are just like the 
same operations for scalars but they are carried 
out on an element-by-element basis.  - the dot (.) before the operator indicates an 
array operator it is needed only if the meaning 
cannot be automatically inferred.  - when combining arrays, make sure they all have 
the same dimensions  - applies to vectors, 2D arrays, multi-dimensional 
arrays 
gtgt A1 2 3 4 5 gtgt 2.A ans  2 4 
6 8 10 gtgt 2A ans  2 4 6 
8 10 gtgt B2 4 6 8 10 gtgt A.B ans  2 
 8 18 32 50 gtgt AB ??? Error using gt 
 Inner matrix dimensions must agree. 
 7More Notes on Array Operations
- Most Matlab functions will work equally well with 
both scalars and arrays (of any dimension)  - Use brackets  to construct arrays 
 - Use colon notation (e.g., A(,2) or f(311) to 
index) 
gtgt A1 2 3 4 5 gtgt sin(A) ans  0.8415 
0.9093 0.1411 -0.7568 -0.9589 gtgt 
sqrt(A) ans  1.0000 1.4142 1.7321 
2.0000 2.2361 
 8Array Constructors
- Arrays are often read into Matlab from files or 
entered by the user  - But building arrays from scratch can be tedious 
 - Explicit 
 - Using Matlab array constructors
 
gtgt g(1)1 g(2)3 g(3)-4 g  1 3 -4
gtgt Aones(2,3) A  1 1 1 1 
1 1 gtgt B-3ones(1,5) B  -3 -3 -3 
 -3 -3 gtgt Czeros(2,3) C  0 0 
0 0 0 0 
 9Lets Build Some Arrays
What will these produce?
gtgt A3eye(2,2) A  3 0 0 3 gtgt 
Bdiag(1 2 3 4) B  1 0 0 0 
 0 2 0 0 0 0 3 0 
 0 0 0 4 gtgt Cdiag(1 2 1,1) C  
 0 1 0 0 0 0 2 0 
 0 0 0 1 0 0 0 0 gtgt 
diag(A) ans  3 3
D  magic(5) diag(D) diag(diag(D)) Z  
magic(3),zeros(3,2), -ones(3,1) 4ones(2,4), 
eye(2,2) Z(,3) mess  10rand(4,5) messy  
10randn(4,5) test  1./(3ones(2,3) 
 10Vectors and Matrices
- Weve referred to vectors and matrices 
frequently but exactly what are we talking 
about?  - what is a matrix? 
 - is it different from an array? 
 - ANSWER 
 - vectors and matrices are arrays with an 
attitude  - that is, they look just like an array (and they 
are arrays), but they live by a very different 
set of rules!  - Vectors
 
Can you explain what, if anything, results from 
these operations with vectors? 
 11Why Matrices?
- A matrix is an array that obeys a different set 
of rules  - addition  subtraction are same as for arrays, 
 - but multiplication, division, etc. are DIFFERENT! 
 - a matrix can be of any dimension but 2D square 
matrices are the most common by far  - A large and very useful area of mathematics deals 
with what is called linear algebra and matrices 
are an integral part of this.  - Many advanced computational methods in 
engineering make extensive use of linear algebra, 
and hence of matrices 
  12A Simple Example
- A set of simultaneous linear algebraic equations 
will often arise in engineering applications  - How do you solve these? 
 - Solve first for x in terms of y substitute in 
second and solve for y use this in first to find 
x  - Use Cramers Rule 
 - Other? 
 - Lets try a more abstract notation
 
OR 
 13A Simple Example-contd
- What do we mean by the  for this form? 
 - Note that the column matrix, z, is multiplied 
times the first row of C on an element-by-element 
basis and the results are summed to get the first 
row of the answer  - Ditto for the second row 
 - This is NOT array multiplication it is matrix 
multiplication  - For two 2D matrices in general
 
NOTE the number of columns in A must be equal 
to the number of rows in B (N in this example) 
 14A Few Notes on Matrices
- Matlab handles matrix multiplication with the  
symbol (NOTE this is NOT array multiplication!)  - From our formula we see that in general AB ? 
BA  - In other words, matrix multiplication is NOT 
commutative  - Matrices behave just like arrays for addition and 
subtraction  - Matrix division is not strictly defined but a 
matrix inverse is available to address this 
situation, among others.  - suppose 3y6 and you need to find y 
 - The usual approach y6/32 (division by 3) 
 - Also useful y3-162 (multiplication by the 
inverse of 3)  - If we dont know how to divide, we can accomplish 
the same by using the notion of the inverse. 
Recall definition of inverse  - Turns out we know how to compute matrix inverses 
(but it requires a lot of computational effort) 
  15Lets Solve Our Problem Using Matlab
gtgt coef3 -2 1 4 coef  3 -2 1 
 4 gtgt inv(coef)  Matlab has the inv() 
function ans  0.2857 0.1429 -0.0714 
0.2143 gtgt b14 -14' b  14 -14 gtgt 
zinv(coef)b z  2 -4 gtgt coefz  
Let's check our answer! ans  14 -14 
 16Some More Notes
- Using the Matlab inv() function is not always 
best  - It can take a VERY long time for large matrices 
 - The inverse may have poor precision for some 
kinds of matrices  - If you just want to solve the set of equations, 
there are much quicker and more accurate methods  - Uses powerful algorithms from linear algebra 
 - Notation is tricky because it introduces the 
concept of a left and a right matrix division 
in Matlab 
NOTEC\C1, and1anythinganything 
 17Lets Try This Out
coef  3 -2 1 4 gtgt b b  14 
 -14 gtgt zzcoef\b zz  2.0000 -4.0000
OK, now what do you think these expressions yield?
 coef\eye(2,2) coef\eye(2,2)coef 
 18Things Can Get Weird
- We usually think of the unknown (z) as a column 
matrix and the RHS (b) as a column matrix also  - In some fields, it is more useful if these are 
ROW matrices  - One formulation can easily be converted into the 
other!  - We can treat either formulation in Matlab 
 - First, ON YOUR OWN, prove from our multiplication 
formula that  - Now, using this, we take the transpose of our 
equation 
where 
 19Lets Try It Out in Matlab
gtgt coefTcoef' coefT  3 1 -2 
4 gtgt bTb' bT  14 -14 gtgt 
zTbTinv(coefT) zT  2 -4 gtgt  ALSO WE 
CAN USE RIGHT DIVIDE gtgt zT2bT/coefT zT2  
2.0000 -4.0000 
 20Other Matlab Matrix Functions
- So far weve only scratched the surface of 
Matlabs abilities to work with matrices  - Matrices can contain COMPLEX numbers 
 - Some of the other matrix functions are 
 - det(A) determinant of the matrix 
 - rank(A) rank of the matrix 
 - trace(A) sum of diagonal terms 
 - sqrtm(A) matrix square root (i.e., 
sqrtm(A)sqrtm(A)A)  - norm(A) matrix norm (useful for vector 
magnitudes)  - eig(A) eigenvalues and eigenvectors of matrix 
 -  
 - Keep in mind that Matlab is using some of the 
latest and most powerful algorithms to compute 
these functions. 
  21Finally, What About Vectors?
- The matrix and array operations and functions can 
be used to manipulate vectors, but youll have to 
be careful  - Vector dot product 
 - ON YOUR OWN 
 - Vector magnitude? 
 - Vector cross product?
 
gtgt f1 2' f  1 2 gtgt g4 -3' g  
 4 -3 gtgt fdotgf'g fdotg  -2
gtgt f1 2 f  1 2 gtgt g4 -3 g  
4 -3 gtgt fdotgfg' fdotg  -2 gtgt 
gdotfgf' gdotf  -2
Column vectors
Row vectors