From charlesreid1

Revision as of 10:22, 27 November 2010 by Admin (talk | contribs) (→‎Operators)

Matrices

Basics

See Introduction to Matlab

Special matrices/vectors

Name (matrix type) Matlab syntax Result
Ones
>> ones(3,2);
$ \left[ \begin{array}{cc} 1 & 1 \\ 1 & 1 \\ 1 & 1 \end{array} \right] $
Zeros
>> zeros(3,1);
$ \left[ \begin{array}{cc} 0 \\ 0 \\ 0 \end{array} \right] $
Eye (identity)
>> eye(3);
$ \left[ \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right] $
Rand (random numbers)
>> rand(3,2);
$ \left[ \begin{array}{cc} 0.21955 & 0.27560\\ 0.42385 & 0.62212\\ 0.53343 & 0.69182 \end{array} \right] $
Meshgrid
>> [x,y] = meshgrid(1:4,1:4);
$ x = \left[ \begin{array}{cccc} 1& 2& 3& 4\\ 1& 2& 3& 4\\ 1& 2& 3& 4\\ 1& 2& 3& 4 \end{array} \right] $

$ y = \left[ \begin{array}{cccc} 1& 1& 1& 1\\ 2& 2& 2& 2\\ 3& 3& 3& 3\\ 4& 4& 4& 4 \end{array} \right] $

Magic (magic square matrix)

(The sum of each row and column is equal to the same value)

>> magic(4);
$ \left[ \begin{array}{cccc} 16& 2& 3& 13\\ 5& 11& 10& 8\\ 9& 7& 6& 12\\ 4& 14& 15& 1 \end{array} \right] $
Linspace
>> linspace(A,B,N)
$ \left[ A + \left( \frac{i}{N-1} \right) B \right] \qquad i=0, \dots, N-1 $
Logspace
>> logspace(A,B,N)
$ \left[ 10^{A} + 10^{ \left( \frac{i}{N-1} \right) B } \right] \qquad i=0, \dots, N-1 $

Functions

Function name Matlab syntax/output
det Returns the determinant of a matrix:
>> A=magic(4)
A =

   16    2    3   13
    5   11   10    8
    9    7    6   12
    4   14   15    1

>> det(A)
ans = -1.4495e-12
find
flipud
fliplr
length
max
min
repmat This function creates a new matrix consisting of several copies of an existing matrix.
>> A = magic(3)
A =

   8   1   6
   3   5   7
   4   9   2

>> repmat(A,2,2)
ans =

   8   1   6   8   1   6
   3   5   7   3   5   7
   4   9   2   4   9   2
   8   1   6   8   1   6
   3   5   7   3   5   7
   4   9   2   4   9   2
size
sort

Operators

Addition, subtraction

Addition/subtraction can be done with vectors or matrices as with numbers:

>> A=ones(2,3)
A =

   1   1   1
   1   1   1

>> B=ones(2,3)
B =

   1   1   1
   1   1   1

>> C = A + B
C =

   2   2   2
   2   2   2

>> C = A - B
C =

   0   0   0
   0   0   0

Multiplication, division

Multiplication of matrices requires that the inner dimensions must match (i.e. $ M \times N) \times (N \times P) $):

>> A
A =

   0.85645   0.86793   0.39228
   0.22329   0.82611   0.40042
   0.79097   0.45921   0.30861

>> B
B =

   0.976938   0.200895   0.239939
   0.300156   0.205414   0.963250
   0.396226   0.425022   0.041877

>> C = A*B
C =

   1.25264   0.51707   1.05796
   0.62476   0.38474   0.86609
   1.03284   0.38440   0.64504

Division of matrices is defined as $ A/B = A B^{-1} $:

>> A = rand(3,3)
A =

   0.85645   0.86793   0.39228
   0.22329   0.82611   0.40042
   0.79097   0.45921   0.30861

>> B = rand(3,3)
B =

   0.976938   0.200895   0.239939
   0.300156   0.205414   0.963250
   0.396226   0.425022   0.041877

>> 

>> C = A/B
C =

   0.015664   0.321640   1.879233
  -0.763591   0.516569   2.054946
   0.435077   0.177713   0.788906

>> C = A*inv(B)
C =

   0.015664   0.321640   1.879233
  -0.763591   0.516569   2.054946
   0.435077   0.177713   0.788906

Component-wise multiplication and division can also be done:

>> A
A =

   0.85645   0.86793   0.39228
   0.22329   0.82611   0.40042
   0.79097   0.45921   0.30861

>> B
B =

   0.976938   0.200895   0.239939
   0.300156   0.205414   0.963250
   0.396226   0.425022   0.041877

>> C = A.*B
C =

   0.836694   0.174363   0.094122
   0.067023   0.169693   0.385709
   0.313402   0.195175   0.012924

>> C = A./B
C =

   0.87666   4.32032   1.63489
   0.74392   4.02167   0.41570
   1.99626   1.08044   7.36944

Colon operator

The colon operator can be used to create a vector, similar to linspace:

>> 1:10
ans =

    1    2    3    4    5    6    7    8    9   10

The interval between elements can also be specified by using two colons:

>> 1:0.5:10
ans =

     1.0000     1.5000     2.0000     2.5000     3.0000     3.5000     4.0000     4.5000     5.0000     5.5000     6.0000     6.5000     7.0000     7.5000     8.0000     8.5000     9.0000     9.5000    10.0000

>> 1:0.8:10
ans =

     1.0000     1.8000     2.6000     3.4000     4.2000     5.0000     5.8000     6.6000     7.4000     8.2000     9.0000     9.8000

The vectors with intervals of 1 can be used to access elements of a vector or a matrix. To access indices M through N, the syntax M:N can be used:

>> A = magic(4)
A =

   16    2    3   13
    5   11   10    8
    9    7    6   12
    4   14   15    1

>> A(1:2,1:2)
ans =

   16    2
    5   11

The colon operator by itself can also indicate an index ranging the entire length of the vector or matrix:

>> A(1,:)
ans =

   16    2    3   13

Input/output

Switches

Functions

Graphics

Examples

Fluid mechanics

Heat transfer

Optimization

Statistics

See also