# MATLAB Summary for Math 25

Bard Ermentrout

January 9, 1996

### Entering Matrices Creating new matrices Operations Functions Submatrices Output format Graphics Recording work

Commands are entered in MATLAB at the command prompt. Case is important so that A and a are different. To supress output add a semi-colon to the end of a statement. Use the arrow keys to scroll back to previous commands and left and right to edit statements.

1. Entering matrices

A matrix is entered by (i) explictly listing elements, (ii) using defining statements (iii) disk files.

Two examples of entering them yourself:

```A= [1 2 3; 4 5 6; 7 8 9]
B = [
1 3
5 7 ]
```
create the obvious matrices. The semicolon ; separates rows. Commas can be used insetad of spaces. Do not use spaces between parts of a number, e.g. 2.34e-9 is valid but 2.34 e-9 will be treated as two elements.

Complex numbers are allowed by appending i:

```A= [1 2;3 4] + i* [5 6;7 8]
A= [1+5i 2+6i;3+7i 4+8i]
```
produce the same matrix. Don't write 2 + 3i as that will produce two numbers. You can use i or j as the number sqrt(-1).

2. Other ways to create matrices

1. rand(n,m) eye(n,m) zeros(n,m) ones(n,m) respectively produce an n x m matrix or random numbers between 0 an 1, identity matrix, zero matrix, or matrix of 1's. If you only put one argument in these they produce square arrays, eye(5) is a 5 x 5 identity matrix.
2. diag(A), triu(A), tril(A) extract the diagonal, upper triangular, and lower triangular part of a matrix. The diagonal part returns a column vector. If A is a vector then diag(A) is the square matric with A down the diagonal.
3. Block definitions. For example, if A is 3-by-3 then B = [ A , zeros(3,2) ; zeros(2,3), eye(2)] produces a 5-by-5 matrix.

3. Operations

The following matrix operations are allowed:

+ - : addition and subtraction
* : multiplication
** ^ : power operator
/ \ : right and left division. A/b solves x A = b while A\b : solves A x = b .
' : is the matrix transpose

For powers, multiplication and division, the operators .* ./ .^ all perform elementwise multiplication. A.^ 2 squares each element in A while A^ 2 is the square of A.

4. Functions

Scalar functions

These functions operate elementwise on matrices

```sin  cos  tan  asin acos atan
exp  log  abs  sqrt sign rem (remainder)
```

Vector functions

These functions operate on vectors to produce a scalar or on a column-by-column fashion to produce a row vector. Use the transpose to get row-by-row operation.

```max   min   sum   prod   median
sort  std   any   all    mean
```
max(max(A)) give the maximum entry in A.

Matrix functions

eig : eigenvalues and eigenvectors. x=eig(A) returns eigenvalues of A in x but [v,x]=eig(A) gives the eigenvectors in v and the eigenvalues as entries in a diagonal matrix, x.
inv : inverse
rref : row-reduced echelon form
expm : matrix exponential
sqrtm : matric square root
poly : coefficients of the characteristic polynomial, highest first.
det : determinant
trace : trace
size : size of the matrix
rank : rank of the matrix

5. Submatrices and colon notation

• x:dx:y produces a column vector starting at x in steps of dx up to y. If the dx is left out the step is 1, e.g. 0:.1:1 produces 0 .1 .2 ... 1.0 as a column vector. Here is a table of sines
```x=[0.0:0.1:2.0]';
y=sin(x);
[x,y]
```
• A(2,3) is the element in row 2 and column 3 of A.
• A(1:4,3) is the first four entries of column 3 of A.
• A colon by itself is the entire row or column of A. e.g A(:,3) is the third column, A(1:4,:) is the first 4 rows.
• A(:,[2 4]) contains columns 2 and 4 of A.
• You can use this subsripting on both sides of the assignment: e.g A(:,[2 4 5]) = B(:,1:3) replaces columns 2, 4 and 5 of A with columns 1 2 and 3 of B.

6. Output format

MATLAB lets you output in various formats. Amond them are the following:

format short Fixed point with 4 decimal places
format long Fixed point with 14 decimal places
format short e Scientific with 4 places
format long e Scientific with 14 places
format rat rational approximation

7. Graphics

This is just a small subset of all the graphics MATLAB can do.

plot(x,y) This plots the vector y as a function of x. Thus, the following will plot sin(x):

``` x=-3.14:.1:3.14;
y=sin(x);
plot(x,y)
```
and the following plots sin(x) and cos(x) on the same plot:
``` x=-3.14:.1:3.14;
y1=sin(x);
y2=cos(x);
plot(x,[y1;y2])
```
Alternatively you could write the last line as plot(x,y1,y2).

The command

```print bob
```
will produce a file of the plot for printing called ``bob.ps''