From charlesreid1

Line 355: Line 355:
ans =
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.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
>> 1:0.8:10
ans =
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
     1.0000    1.8000    2.6000    3.4000    4.2000    5.0000    5.8000    6.6000
    7.4000    8.2000    9.0000    9.8000
</syntaxhighlight>
</syntaxhighlight>



Revision as of 21:30, 27 November 2010

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