Matlab Basics Tutorial
Let's start off by creating something simple, like a vector.
Enter each element of the vector (separated by
a space) between brackets, and set it equal to a variable. For example,
to create the vector a, enter into the Matlab command window (you can
"copy" and "paste" from your browser into Matlab to make it easy):
Matlab should return:
Let's say you want to create a vector with elements between
0 and 20 evenly spaced in
increments of 2 (this method is frequently used to create a time vector):
t = 0:2:20
0 2 4 6 8 10 12 14 16 18 20
Manipulating vectors is almost as easy as creating them. First, suppose
you would like to add 2 to each of the elements in vector 'a'. The
equation for that looks like:
b = a + 2
3 4 5 6 7 8 11 10 9
Now suppose, you would like to add two vectors together. If the two
vectors are the same length, it is easy. Simply add the two as shown
c = a + b
4 6 8 10 12 14 20 18 16
Subtraction of vectors of the same length works exactly the same way.
To make life easier, Matlab includes many standard
functions. Each function is a block of code that accomplishes a specific
task. Matlab contains all of the standard functions such
as sin, cos, log, exp, sqrt, as well as many others. Commonly used constants
such as pi, and i or j for the square root of -1, are also incorporated
To determine the usage of any function, type help [function name]
at the Matlab command window.
Matlab even allows you to write your own functions with the function command; follow the link
to learn how to write your own functions and
see a listing of the functions we created for this tutorial.
It is also easy to create plots in Matlab.
Suppose you wanted to plot a
sine wave as a function of time. First
make a time vector (the semicolon after each statement tells Matlab we don't
want to see all the values) and then compute
the sin value at each time.
y = sin(t);
The plot contains approximately
one period of a sine wave. Basic plotting is very easy in
Matlab, and the plot command has extensive add-on capabilities.
I would recommend you visit the plotting page to learn more about it.
In Matlab, a
polynomial is represented by a vector. To create a polynomial in Matlab,
simply enter each coefficient of the polynomial into
the vector in descending order. For instance, let's say you have the
To enter this into Matlab, just enter it as a vector in the following
x = [1 3 -15 -2 9]
1 3 -15 -2 9
Matlab can interpret a
vector of length n+1 as an nth order polynomial.
Thus, if your polynomial is missing any
coefficients, you must enter zeros in the appropriate place in the
vector. For example,
would be represented in Matlab as:
You can find the value of a polynomial using the polyval
function. For example, to find the value of the above polynomial at s=2,
z = polyval([1 0 0 0 1],2)
You can also extract the roots of a polynomial. This is useful when you
degree polynomial such as
Finding the roots would be as easy as entering the following command;
roots([1 3 -15 -2 9])
Let's say you want to
multiply two polynomials together. The product of two polynomials is
found by taking the convolution of their coefficients.
Matlab's function conv that
will do this for you.
x = [1 2];
y = [1 4 8];
z = conv(x,y)
1 6 16 16
Dividing two polynomials is just as easy. The deconv function will
return the remainder as well as the result. Let's divide z by y and see
if we get x.
[xx, R] = deconv(z,y)
0 0 0 0
As you can see, this is just the polynomial/vector x from before. If y had not
gone into z evenly, the remainder vector would have been something other
If you want to add two polynomials together which have the same order,
a simple z=x+y will work (the vectors
x and y must have the same length). In the general case,
the user-defined function, polyadd can be used. To use
copy the function into an m-file, and
then use it just as you would any other function in the Matlab toolbox.
Assuming you had the polyadd
function stored as a m-file, and you wanted to add the two uneven
polynomials, x and y,
you could accomplish this by entering the command:
z = polyadd(x,y)
1 4 8
1 5 10
Entering matrices into Matlab is the
same as entering a vector, except each row of elements is separated by a
semicolon (;) or a return:
B = [1 2 3 4;5 6 7 8;9 10 11 12]
1 2 3 4
5 6 7 8
9 10 11 12
B = [ 1 2 3 4
5 6 7 8
9 10 11 12]
1 2 3 4
5 6 7 8
9 10 11 12
Matrices in Matlab can be manipulated
in many ways. For one, you can find the transpose of a matrix using the
C = B'
1 5 9
2 6 10
3 7 11
4 8 12
It should be noted that if C had been complex, the apostrophe would have actually given the complex conjugate transpose. To get the transpose, use .' (the two commands are the same if the matix is not complex).
Now you can multiply the two matrices B and C together. Remember that
order matters when multiplying matrices.
D = B * C
30 70 110
70 174 278
110 278 446
D = C * B
107 122 137 152
122 140 158 176
137 158 179 200
152 176 200 224
Another option for matrix manipulation is that you can multiply the
corresponding elements of two matrices using the .* operator (the matrices
must be the same size to do this).
E = [1 2;3 4]
F = [2 3;4 5]
G = E .* F
If you have a square matrix, like E, you can also multiply it by itself
as many times as you like by raising it to a given power.
If wanted to cube each element in the matrix, just use the
You can also find the inverse of a matrix:
X = inv(E)
or its eigenvalues:
There is even a function to find the coefficients of the characteristic
polynomial of a matrix. The "poly" function creates a vector that includes
the coefficients of the characteristic polynomial.
p = poly(E)
1.0000 -5.0000 -2.0000
Remember that the eigenvalues of a matrix are the same as the roots of its
Here are a few notes to end this tutorial.
You can get the value of a particular variable at any time by typing its
1 2 3
4 5 6
7 8 9
You can also have more that one statement on a single line, so long as you
separate them with either a semicolon or comma.
Also, you may have noticed that so long as you don't assign a variable a
specific operation or result, Matlab with store it in a temporary variable
Your anonymous answers to the following questions will help us to
improve future versions of these tutorials.
Root Locus |
Frequency Response |
State Space |
7/29/96: MS, 8/26/96 JDP