Sie sind auf Seite 1von 31

What is Matlab?

Why use Matlab?


What is possible in Matlab? graphic examples
How Matlab works?

What is Matlab

MATLAB is a numerical computing environment and


programming language.
Created by The MathWorks, MATLAB allows easy
matrix manipulation,
plotting of functions and data,
implementation of algorithms,
creation of user interfaces, and
interfacing with programs in other languages.
MATLAB is available for Windows, Macintosh and UNIX
systems. It is used by more than one million people in
industry and academia.

Why use Matlab?


Advantages:
It allows quick and easy coding in a very high-level
language.
Rich data types: Complex number, Three dimensional
matrix, structure, cell array, etc
Lots of nice functions and toolboxes: fminsearch, fsolve,
normcdf, norminv, etc; garch, optimization, symbolic,
Lots of users: economists, mathematicians, engineers,
High-quality graphics and visualization facilities are
available.
MATLAB M-files are completely portable across a wide
range of platforms.
EXTENSIVE documentation (type helpwin)
3

How to start and quit Matlab?


PC - a double click on the Matlab icon
unix system - Matlab

On both system leave a Matlab session by typing


quit or by typing exit at the Matlab prompt.
Use Control ^C to stop the running program. It may
take Matlab a while to respond.

Workspace: consists of the


variables you create during a
MATLAB session;
Current Directory browser: shows you
where you are.

Launch Pad: displays all the tools and


applications associated with MATLAB;
5

Getting Started

MATLAB Desktop:
Launch Pad: displays all the tools and
applications associated with MATLAB;
Workspace: consists of the variables you
create during a MATLAB session;
Command History: double click them to
evaluate them;
Current Directory browser: shows you where
you are.
Editor/Debugger: pops up when you create an
M-files (click on New button to launch it.)
6

Using Help in Matlab


Online help is available from the Matlab prompt (>> a double arrow)
>> helpwin
[a long list of help topics follows]
>> helpwin fminsearch
[a help message on the fminsearch function follows].
>>doc plot
[displays the HTML documentation for the MATLAB function plot].
>> type norminv
[display brief information of the non-built-in function norminv]
>> lookfor cdf
>> demo
7

What kind of graphics is possible in Matlab?


1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-3

-2

-1

x = -2.9:0.2:2.9;
bar(x,exp(-x.*x));
8

What kind of graphics is possible in Matlab?

1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

0.5

1.5

2.5

3.5

4.5

Line plot:
x=0:0.05:5;y=sin(x.^2);plot(x,y);
9

What kind of graphics is possible in Matlab?


0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15

0.5

1.5

2.5

3.5

Stem plot:
x = 0:0.1:4;, y = sin(x.^2).*exp(-x);
stem(x,y)
10

What kind of graphics is possible in Matlab?

10
5
0
-5
-10
30
20
10
0

10

15

20

25

Mesh plot: z=peaks(25); mesh(z);

11

What kind of graphics is possible in Matlab?

10
5
0
-5
-10
30
20
10
0

10

15

20

25

Surface plot:
z=peaks(25);, surf(z);, colormap(jet);

12

What kind of graphics is possible in Matlab?


25

20

15

10

10

15

20

25

Contour plot: z=peaks(25); contour(z,16);

13

What kind of graphics is possible in Matlab?

14

Matrix
Matlab works with essentially only one kind of object a rectangular
numerical matrix with possible complex entries.
Matrices can be

Entered manually;

Generated by built-in functions; (e.g., peaks(25))

Loaded from external file (using load command)


Example:
A=[ 1, 2, 3, 4; 5, 6, 7, 8]; % Use ; to indicate the end of each row
Equivalently
A=[ 1, 2, 3, 4
5, 6, 7, 8];
Or
A=[[ 1, 2, 3, 4]; [5, 6, 7, 8]];
15

Matrix
Examples
x = [ 3.5, 33.22, 24.5 ] ;
x1 = [ 2
5
3
-1];

x is a row vector or 1 x 3 matrix


x1 is column vector or 4 x 1 matrix

The matrix name can be any group of letters and numbers up to 63, but
always beginning with a letter. howaboutthisname how_about_this_name
Matlab is "case sensitive", that is, it treats the name 'C' and 'c' as two
different variables.
Similarly, 'MID' and 'Mid' are treated as two different variables.

16

Matrix Reference

Consider a 4-by-3 matrix


full index

1
2
3
4

5
6
7
8

9
10
11
12

How is it arranged in memory?

A(1,1)
A(2,1)
A(3,1)
A(4,1)
A(1,2)
A(2,2)
A(3,2)
A(4,2)
A(1,3)
A(2,3)
A(3,3)
A(4,3)

1st element
2nd element
3rd
4th
5th
6th
7th
8th
9th
10th
11th
12th
linear index

For 2-d double array, to move through memory sequentially


the first index changes the fastest, and
the second index changes the slowest

conversion: ind2sub, sub2ind


17

Matrix Reference

Subscripts: the element in row i and column j of


A is denoted by A(i, j) or we can compute the
linear index and refer A(i,j) as A(m)

i,j can also be vectors of indices or logical


arrays:
A=4*[1 2 3 4 5 6 7 8 9]
b=A>18; c=[5 6 7 8 9]

A(b)

gives same result as A([5 6 7 8 9])


18

Syntax in Matlab
Colon operator: The colon operator ' : ' is understood by Matlab to perform special
and useful operations.
For example, if two integer numbers are separated by a colon, Matlab will generate
all of the integers between these two integers.
a = 1:8
generates the row vector, a = [ 1 2 3 4 5 6 7 8 ].
If three numbers, integer or non-integer, are separated by two colons, the middle
number is interpreted to be a step and the first and third are interpreted to be limits:
b = 0 :0 .2 : 1.0
generates the row vector b = [ 0.0 .2 .4 .6 .8 1.0 ]
19

Syntax in Matlab
The colon operator can be used to create a vector from a matrix.
Thus if
x=[2 6 8
0 1 7
-2 5 -6 ]
The command y = x(:,1) creates the column vector
y=[ 2
0
-2 ]
The command z = x(1,:) creates the row vector
z=[2 6 8]
What is w = x(2:end,:)?
20

Syntax in Matlab
The colon operator is useful in extracting smaller matrices from larger matrices.
If the 4 x 3 matrix c is defined by
c = [ -1 0
1 1
1 -1
0 0
Then

0
0
0
2]

d1 = c(:,2:3) or d1=c(:,[2, 3])


creates a matrix for which all elements of the rows from the 2nd and third columns
are used. The result is a 4 x 2 matrix
d1 = [ 0
1
-1
0

0
0
0
2]
21

Matrix Operations

+ addition
- subtraction
* multiplication
^ power
transpose for a real matrix and complex conjugate transpose
for a complex matrix (transpose for a complex matrix is .)
\ left division, / division
x = A \ b is the solution of A * x = b
x = b / A is the solution of x * A = b

Matrix math
Dimensions must agree
Scalar math
Same as usual
Scalar / matrix math
Scalar + matrix = [scalar + matrix(i, j)]
Scalar * matrix = [scalar * matrix(i, j)]

22

Matrix Operations
To make the * , ^, \ and / entry-wise, we precede the operators
by .
a .* b multiplies each element of a by the respective element
of b
a ./ b divides each element of a by the respective element of b
a .\ b divides each element of b by the respective element of a
a .^ b raise each element of a by the respective b element
Example
x = [1 2 3]; y = [4 5 6];
x * y = 32
x .* y = [4 10 18]

23

Matrix Operations
diag: Diagonal matrices or diagonals of a
matrix.
diag(A) for matrix A is the diagonals of A.
A= 0.1531 0.4929 0.1478
0.0495 0.6107 0.4326
0.9340 0.1224 0.7917
Then diag(A)= [ 0.1531; 0.6107; 0.7917]
blockdiag: Construct a block diagonal matrix
blockdiag(A,B,C)= A . . . 0
...

...

...

C
24

Working with Matrices


MATLAB provides five functions that generate basic
matrices:
Zeros: all zeros.
A = zeros(1,3)
Ones: all ones.
A = ones(2,4)
eye(3,3)?
rand: uniformly distributed random elements.
A = rand(3,5)
randn: normally distributed random elements.
A = randn(2,5)
Set the state of the random number generator
rand(state,2); randn(state,2);
Single (closing) quotes act as string delimiters, so 'state' is a
string. Many MATLAB functions take string arguments.
25

Working with Matrices


Concatenation: join small (compatible) matrices to
make bigger ones:
B = [A, A-2; A*2, A/4]
M=[]; empty matrix; M=[M, A];
Deleting rows and columns: B(:,2) = [ ]

26

Some Basic Statistics Functions


max(x)

returns the maximum value of the elements in a vector or if x is a matrix,


returns a row vector whose elements are the maximum values from each
respective column of the matrix.

min (x) returns the minimum of x (see max(x) for details).


mean(x) returns the mean value of the elements of a vector or if x is a matrix, returns
a row vector whose elements are the mean value of the elements from each
column of the matrix.
median(x) same as mean(x), only returns the median value.
sum(x)

returns the sum of the elements of a vector or if x is a matrix, returns the


sum of the elements from each respective column of the matrix.

prod(x) same as sum(x), only returns the product of elements.

27

Some Basic Statistics Functions


std(x)

returns the standard deviation of the elements of a vector or if x is a

matrix,
a row vector whose elements are the standard deviations of each column of
the matrix
sort(x) sorts the values in the vector x or the columns of a matrix and places them
in ascending order.
hist(x) plots a histogram of the elements of vector, x. The bins are scaled based on
the max and min values
hist(x,n) plots a histogram with 'n' bins scaled between the max and min values
of the elements
hist((x(:,2)) plots a histogram of the elements of the 2nd column from the matrix x
corr(x) returns a pairwise correlation coefficient between the columns in X
28

Some Basic Mathematical Functions


log(x) is the natural log. There is no ln(x) in
Matlab
exp(x), sqrt(x), sin(x), cos(x),
floor(x): Round towards minus infinity.
floor(5.4) =5; floor(-5.4)=-6
ceil(x): Round towards plus infinity.
Try helpwin elfun to get the list of
elementary math functions.
Try helpwin specfun to get the list of special
math functions, such as gamma(x), beta(x),
For a matrix A, fun(A) in general operates on
each element of A.
29

Useful Constants
NaN the arithmetic representation for Not-a-Number, a NaN is
obtained as a result of mathematically undefined operations like
0.0/0.0
Inf the arithmetic representation for positive infinity, a infinity
is also produced by operations like dividing by zero, e.g.
1.0/0.0, or from overflow, e.g. exp(1000).
>> exp(1000)
ans = Inf
eps

machine epsilon

ans

most recent unassigned answer

pi

3.14159.

i and j

Matlab supports imaginary numbers!


30

Some Basic Commands


pwd

prints working directory

demo

demonstrates what is possible in Matlab

who

lists all of the variables in your matlab workspace

whos

list the variables and describes their matrix size

clear

erases variables and functions from memory

clear x erases the matrix 'x' from your workspace


; (semicolon) prevent commands from outputting results
% (percent sign) comments line
%{comments1
comments2
%}
Block comments
A line can be terminated with three periods (...), which causes the next line
to be a continuation line

31