Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
Matlab Tutorial, CDS110-101
Elisa Franco
29 September 2006
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
Introduction
Variables
Arrays
Built-in variables
Operations and functions
Operations
Linear algebra
Polynomials
Functions
Graphics
Programming
Scripts and data management
Functions
Simulink
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
What is Matlab?
Matlab (stands for ”Matrix laboratory”) is an environment which is
suited to work with arrays and matrices, integrating visualization
and computation. Visit the website http://www.mathworks.com.
Several toolboxes (i.e. sets of precompiled routines) are available,
specifically suited for different engineering fields: statistics, signal
processing, control, data acquisition, symbiology ...
Matlab can be used both from the command window and by
coding scripts. GUI’s are available for specific tasks.
Files created in Matlab end in .m, data can be saved in files that
end in .mat (we will see how).
Help: command window Elisa
(see next slide),
Franco i.e. >>
Matlab Tutorial, help subj or full
CDS110-101
Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
Where to get Matlab
I Matlab is available for download if you are registered Caltech
students
I go to the url http://software.caltech.edu/
I log in with your CIT (IMSS) email account and psw
I go to the ”software” section and download the latest available
version of Matlab, R2006b (PC or MAC).
I For MAC users: you need X11
http://www.apple.com/downloads/macosx/apple/x11formacosx.html
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
Command window
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Arrays
Operations and functions
Built-in variables
Graphics
Programming
Simulink
How to define variables
In Matlab, variables are arrays. You do not need to define their
format (int, real ...) or dimensions in advance, nor to declare them
at the beginning of your program. One is mostly interested in
defining:
I Vectors
I Polynomials
I Matrices
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Arrays
Operations and functions
Built-in variables
Graphics
Programming
Simulink
How to define a vector
Typing: >> a = [1 2 3 4]; or >> a = [ 1, 2, 3, 4]; defines a
row vector a = ( 1 2 3 4 ).
1
2
Typing: >> a = [1 ; 2 ; 3 ; 4]; defines a column vector a = 3 .
4
You can also use the transpose operation: a = [1 ; 2 ; 3 ; 4]0 ;
defines again a row vector.
Type >> t = [0 : .1 : 1] or >> t = 0 : .1 : 1. Defines a row vector
t whose elements range from 0 to 1 and are spaced by .1.
To get rid of a, write >> clear a. (Clear all - clears all vars)
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Arrays
Operations and functions
Built-in variables
Graphics
Programming
Simulink
Comma and semicolon
Comma: array row separator. Semicolon: column separator.
If you do not type a semicolon after defining each variable, you’ll
have some hassle, especially if you defined big arrays ...
Note: Matlab has a built in variable ans that stores the most
recent variable you defined.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Arrays
Operations and functions
Built-in variables
Graphics
Programming
Simulink
How to define a polynomial
Typing: p = [ 1 1 3 ];
defines a row vector p = ( 1 1 3 ), which the environment can
also interpret as a second order polynomial p(s) = s 2 + s + 3.
Typing: p = [ 1 0 3 1 ];
will define a third order polynomial p(s) = s 3 + 3s + 1.
Matlab offers several functions to solve operations with
polynomials.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Arrays
Operations and functions
Built-in variables
Graphics
Programming
Simulink
How to define a matrix
A matrix is a stack of row vectors. Just type
A = [ 1 2 3; 1 2 3 ] and you will generate a 2 × 3 matrix:
1 2 3
A=
1 2 3
To access the (i, j) element of A, just type A(i, j). For instance
>> A(2, 3) will return >> ans = 3. Elements of a matrix can also
be reassigned, e.g. >> A(2, 3) = 100; will transform A into:
1 2 3
A=
1 2 100
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Arrays
Operations and functions
Built-in variables
Graphics
Programming
Simulink
How to define a matrix
1 2
I Transpose: type A = A0 : A = 2 2
3 3
I >> eye(3): 3 × 3 identity matrix. >> eye(4, 5): 4 × 4
identity plus a column of zeros;
I >> zeros(3, 2): 3 × 2 matrix padded with zeros;
I >> ones(3, 2): 3 × 2 matrix of ones;
I >> rand(n, m) and >> randn(n, m): uniformly and normally
distributed n × m matrices;
1 0
I >> diag ([1, 2]): diagonal matrix: A =
0 2
Type >> help gallery for a list of matrices that can be defined by
specifying their relevant parameters.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Arrays
Operations and functions
Built-in variables
Graphics
Programming
Simulink
How to manage matrices
I [ n, m ] = size(A) returns the row and cols. number of A. Use
size(A, 2) to access the cols. number.
I [ Y , I ] = max(A) returns: Y max el. in each row of A; I ,
indices of the corresponding element. max(max(A)) returns
the max el. of A. For vectors, max(v ) returns max el.
I [ Y , I ] = min(A), see above.
I Y = sort(M) sorts the cols of M in ascending order. See
>> help sort or >> doc sort for more info.
I find(M == 1) returns the linear indices of els. = 1.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Arrays
Operations and functions
Built-in variables
Graphics
Programming
Simulink
Built-in variables
There are seven built-in variables (which can be overwritten):
I ans, which we have seen already.
I eps is the floating point machine accuracy.
I i and j represent the imaginary unit. You can define complex
variables ( array, polynomial coefficients, matrices), e.g.
>> x = 5 + j ∗ 3 is a complex number.
I Inf is ”infinity”. 1/0, 22000 and exp(1000) all produce Inf ;
log (0) produces −Inf .
I pi is π.
I NaN is ”Not a Number”; this is generated when operations
have undefined numerical results, such as 0/0 or Inf /Inf .
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Operations
Variables
Linear algebra
Operations and functions
Polynomials
Graphics
Functions
Programming
Simulink
Operations and functions
A complete categorical list of operations and functions available in
Matlab cal be found through the Help Contents.
A wide number of elementary mathematical functions is offered
(exp, sin, log ...), together with linear algebra, polynomial tools,
specialized math and other categories.
Individual toolboxes will offer dedicated routines (e.g. function
minimization routines, Optimization Toolbox; controllability,
observability checks, Control Toolbox...).
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Operations
Variables
Linear algebra
Operations and functions
Polynomials
Graphics
Functions
Programming
Simulink
Elementary operations
Two types of arithmetic operations:
I matrix arithmetic operations: rules of linear algebra
I array arithmetic operations: carried out element by element.
The period character (.) distinguishes the array operations from
the matrix operations. Examples:
I A, B matrices of the same size; A + B, A − B, A ∗ B are the
sum, subtraction and matrix multiplication as classically
defined. A. ∗ B is an element-by-element product (A and B
must have the same size, unless one is a scalar).
I Ap is the matrix power. Equivalent to A × A × ... × A for
p-times. A.p is the array power: equivalent to A(i, j)p
elementwise. If p is a matrix, must be of the same size of A.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Operations
Variables
Linear algebra
Operations and functions
Polynomials
Graphics
Functions
Programming
Simulink
Elementary vector operations table (from Matlab help)
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Operations
Variables
Linear algebra
Operations and functions
Polynomials
Graphics
Functions
Programming
Simulink
Elementary matrix operations table (from Matlab help)
I >> A / B slash or right
division; is equivalent to
B ∗ inv (A).
I >> A \ B backslash or
left division; equivalent to
inv (A) ∗ B.
NOTE: if A is n × m,
n 6= m and B is m × 1,
A \ B will compute the
least squares or minimum
norm solution x̄ of
A x = B.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Operations
Variables
Linear algebra
Operations and functions
Polynomials
Graphics
Functions
Programming
Simulink
Relational operators (Table from Matlab Help)
A R B operates elementwise.
Returns array where elements
are 1 if R true, 0 if false. A
and B not need to have same
size.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Operations
Variables
Linear algebra
Operations and functions
Polynomials
Graphics
Functions
Programming
Simulink
Logic operators (Table from Matlab Help)
Again operate elementwise for
matrices.
To compare expressions:
exp1 && exp2
exp1 || exp2
where exp1 and exp2 give
scalar logical results.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Operations
Variables
Linear algebra
Operations and functions
Polynomials
Graphics
Functions
Programming
Simulink
Linear algebra
Given a square matrix
1 2 3
M= 4 5 6
7 8 9
I determinant: >> det(M) gives >> ans = 0;
I rank: >> rank(M), gives in fact >> ans = 2;
I null space: >> null(M) is [0.4082 0.8165 − 0.4082]> ;
I trace: >> trace(M) gives >> ans = 15;
I norm: >> norm(M, p) gives the p-norm. Ex. >> norm(M, 1)
gives >> ans = 18, while >> norm(M, 2) gives
>> ans = 16.8481. Check >> help norm for more info ...
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Operations
Variables
Linear algebra
Operations and functions
Polynomials
Graphics
Functions
Programming
Simulink
Linear algebra
...continued
I inverse: >> inv (M)... oops we obviously get a Warning:
Matrix is close to singular or badly scaled. Results may be
inaccurate. RCOND = 2.202823e-18. But if the matrix is
invertible, this won’t happen!
I eigenvalues and eigenvectors: >> [v , e] = eig (M) gives
−0.2320 −0.7858 0.4082 16.1168 0 0
v = −0.5253 −0.0868 −0.8165 , e = 0 −1.1168 0
−0.8187 0.6123 0.4082 0 0 −0.0000
I singular value decomposition: >> [U, S, V ] = svd(M)...
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Operations
Variables
Linear algebra
Operations and functions
Polynomials
Graphics
Functions
Programming
Simulink
Basic polynomial operations
Define a polynomial p = [ 1 1 1 1 1 ], and q = [ 1 0 2 ],
i.e. p(s) = s 4 + s 3 + s 2 + s + 1, and q(s) = s 2 + 2.
I roots of p: >> roots(p), gives s1,2 = 0.3090 ± 0.9511i and
s3,4 = −0.8090 ± 0.5878i.
I convolution of p and q: >> conv (p, q) gives
>> ans = 1 1 3 3 3 2 2. Also deconv exists.
I derivative of p: >> polyder (p) is 4s 3 + 3s 2 + 2s + 1. Can also
do polyder (p, q), will find the derivative of the convolution.
I characteristic polynomial: given our previous matrix M,
>> poly (M) returns
>> ans = 1.0000 − 15.0000 − 18.0000 − 0.0000.
Obviously one root is zero.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Operations
Variables
Linear algebra
Operations and functions
Polynomials
Graphics
Functions
Programming
Simulink
Useful mathematical functions
Define an array t = [0 : .1 : 10]. You can evaluate:
I trigonometric functions:
cos(t), sin(t), tan(t), sec(t), tanh(t)...
I exponential and logarithm: exp(t), log (t), log 2(t), log10(t)...
Other useful stuff:
I complex numbers: real(s), imag (s), abs(s), angle(s)...
I rounding and remainders: floor (s), ceil(s), mod(s1, s2),
rem(s1, s2)...
I discrete math: perm(s), factors(s), factorial(s)...
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
Simple graphics
Want to draw your sin(t)?
>> t = [0 : .1 : 10];
>> plot(t, sin(t))
>> xlabel(0 Time0 )
>> ylabel(0 sin(t)0 )
>> title(0 My first plot0 )
For more info: >> help plot.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
Surfaces
Example: >> x = [−2 : .1 : 2];
>> y = [−2 : .1 : 2];
>> [X , Y ] = meshgrid(x, y );
>> Z = X .∧ 2 + Y .∧ 2;
>> mesh(X , Y , Z )
>> xlabel(0 X0 )
>> ylabel(0 Y0 )
>> zlabel(0 Z0 )
>> title(0 My first surface0 )
Try also >> surf (X , Y , Z )! For
more info, type >> help mesh or
>> help surf .
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Scripts and data management
Operations and functions
Functions
Graphics
Programming
Simulink
Create a script
Go to File → New
M-file.
This will launch the
Matlab editor.
Then you can write
some code and debug.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Scripts and data management
Operations and functions
Functions
Graphics
Programming
Simulink
Control flow
I for:
I if–else:
for var = expr
if expr1 T
stat
stat
end
else if expr2 T
stat
I while: else
stat
while expr T
end
stat
end
end
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Scripts and data management
Operations and functions
Functions
Graphics
Programming
Simulink
Example
Note: comments are preceded by %
Figures can be split in more windows.
Try to play with the parameters of
the main equation!
Tip: use the smart indent formatting
command (Edit → Select All, Text
→ Smart Indent)!
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Scripts and data management
Operations and functions
Functions
Graphics
Programming
Simulink
Where are my data?
All your data are stored in the
Matlab workspace.
Also your commands are stored in
the command history, which can be
scrolled up/down.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Scripts and data management
Operations and functions
Functions
Graphics
Programming
Simulink
Data management
Save the data you
produce:
I to a text file
I in .mat format;
more convenient if
need to utilize them
again in Matlab.
Use
>> load mydata
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Scripts and data management
Operations and functions
Functions
Graphics
Programming
Simulink
Functions
If you need to repeat similar operations,
consider defining a function. Example:
discretized equations for an oscillator.
Important: you need to save the file with
the function name!
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
What is Simulink?
Simulink is a software
package for modeling,
simulating, and
analyzing dynamic
systems. It supports
linear and nonlinear
systems, in continuous
or discrete time, or a
hybrid of the two. Type
>> simulink in the
comm. win. or click on
icon.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
Create an example
File → New Model. Save the
foo.mdl file.
You can now define a model
with inputs, dynamics,
controller, sensors and
actuators.
For now, just play with blocks.
Double click to set parameters.
This example just produces a
sin wave plot.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
Run a simulation
To run a simulation,
need to set the
simulation parameters.
Duration, ODE solver,
step size: depend on the
problem.
Scopes are needed to
plot the variables of
interest.
Elisa Franco Matlab Tutorial, CDS110-101
Outline
Introduction
Variables
Operations and functions
Graphics
Programming
Simulink
Conclusions
This was a short introduction to the main features of Matlab.
Please always refer to the full product documentation! For other
online tutorials, Google will pop out many of them!
I http://www.math.ufl.edu/help/matlab-tutorial/
I http://www.math.utah.edu/lab/ms/matlab/matlab.html
I control tutorial: http://www.engin.umich.edu/group/ctm/
I ...
Elisa Franco Matlab Tutorial, CDS110-101