You are on page 1of 26

Introduction to Matlab

doikon@telecom.tuc.gr
http://www.telecom.tuc.gr

Desktop Tools (Matlab v6)


Command Window
type commands

Workspace
view program variables clear to clear double click on a variable to see it in the Array Editor

Command History
view past commands save a whole session using diary

Launch Pad
access tools, demos and documentation

Matlab Files (.m)


Use predefined functions or write your own functions
Reside on the current directory or the search path
add with File/Set Path

Use the Editor/Debugger to edit, run

Matrices
a vector
x = 1 2 5 1 x = [1 2 5 1]

a matrix
x = 1 5 3 2 1 2

x = [1 2 3; 5 1 4; 3 2 -1]

3 4 -1 y = x. y = 1 2 5 1

transpose

Matrices
x(i,j) subscription
y=x(2,3)
y = 4

y=x(3,:)

whole row

y = 3 2 -1

whole column

y=x(:,2) y = 2 1 2

Operators (arithmetic)
+ * / ^ addition subtraction multiplication division power complex conjugate transpose

.* ./ .^ .

element-by-element mult element-by-element div element-by-element power transpose

Operators (relational, logical)


pi 3.14159265 j imaginary unit, i same as j

== ~= < <= > >= & | ~

equal not equal less than less than or equal greater than greater than or equal AND OR NOT

Generating Vectors from functions


zeros(M,N) MxN matrix of zeros
x = zeros(1,3) x = 0 0 0 x = ones(1,3) x = 1 1 1 x = rand(1,3) x = 0.9501 0.2311

ones(M,N)

MxN matrix of ones

rand(M,N)

MxN matrix of uniformly distributed random numbers on (0,1)

0.6068

Operators
x = [ zeros(1,3) ones(1,2) ] x = 0 0 0 1 1
x = [ 1 3 5 7 9] x = 1 3 5 7 9 y = x(2) y = 3 y = x(2:4) y = 3 5 7

[ ] concatenation

( ) subscription

Matlab Graphics

x = 0:pi/100:2*pi; y = sin(x); plot(x,y) xlabel('x = 0:2\pi') ylabel('Sine of x') title('Plot of the Sine Function')

Multiple Graphs
t = 0:pi/100:2*pi; y1=sin(t); y2=sin(t+pi/2); plot(t,y1,t,y2) grid on

Multiple Plots
t = 0:pi/100:2*pi; y1=sin(t); y2=sin(t+pi/2); subplot(2,2,1) plot(t,y1) subplot(2,2,2) plot(t,y2)

Graph Functions (summary)


plot stem grid xlabel ylabel title subplot figure pause

linear plot discrete plot add grid lines add X-axis label add Y-axis label add graph title divide figure window create new figure window wait for user response

Math Functions
Elementary functions (sin, cos, sqrt, abs, exp, log10, round)
type help elfun

Advanced functions (bessel, beta, gamma, erf)


type help specfun type help elmat

Functions
function f=myfunction(x,y) f=x+y;

save it in myfunction.m call it with y=myfunction(x,y)

Flow Control
if switch for

statement statement
loops loops statement statement

while
continue

if A > B 'greater' elseif A < B 'less' else 'equal' end

break

for x = 1:10 r(x) = x; end

Miscellaneous
Loading data from a file
load myfile.dat

Suppressing Output
x = [1 2 5 1];

Getting Help
Using the Help Browser (.html, .pdf)
View getstart.pdf, graphg.pdf, using_ml.pdf

Type
help help function, e.g. help plot

Running demos
type demos type help demos

Random Numbers
x=rand(100,1); stem(x);

hist(x,100)

Coin Tosses
Simulate the outcomes of 100 fair coin tosses
x=rand(100,1); p=sum(x<0.5)/100 p =

0.5400

Simulate the outcomes of 1000 fair coin tosses


x=rand(1000,1); p=sum(x<0.5)/1000 p = 0.5110

Coin Tosses
Simulate the outcomes of 1000 biased coin tosses with p[Head]=0.4
x=rand(1000,1); p=sum(x<0.4)/1000 p = 0.4160

Sum of Two Dies


Simulate 10000 observations of the sum of two fair dies

6 5 4 3 2 1

(1,6) (2,6) (3,6) (4,6) (5,6) (6,6) (1,5) (2,5) (3,5) (4,5) (5,5) (6,5) (1,4) (2,4) (3,4) (4,4) (5,4) (6,4) (1,3) (2,3) (3,3) (4,3) (5,3) (6,3) (1,2) (2,2) (3,2) (4,2) (5,2) (6,2) (1,1) (2,1) (3,1) (4,1) (5,1) (6,1) 1 2 3 4 5 6

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

Sum of Two Dies


Simulate 10000 observations of the sum of two fair dies
x1=floor(6*rand(10000,1)+1); x2=floor(6*rand(10000,1)+1); y=x1+x2; sum(y==2)/10000 ans = 0.0275 sum(y==3)/10000 ans = 0.0554 sum(y==4)/10000 ans = 0.0841 sum(y==5)/10000 ans = 0.1082 sum(y==6)/10000 ans = 0.1397 sum(y==7)/10000 ans = 0.1705 sum(y==8)/10000 ans = 0.1407 sum(y==9)/10000 ans = 0.1095 sum(y==10)/10000 ans = 0.0794 sum(y==11)/10000 ans = 0.0585 sum(y==12)/10000 ans = 0.0265

p[2]=0.0278 p[3]=0.0556 p[4]=0.0833 p[5]=0.1111 p[6]=0.1389 p[7]=0.1667 p[8]=0.1389 p[9]=0.1111 p[10]=0.0833 p[11]=0.0556 p[12]=0.0278

Sum of Two Dies


for i=2:12 z(i)=sum(y==i)/10000 end bar(z)

Bernoulli Trials-Binomial Distribution


k n p(k ) = p (1- p)n- k , k k = 0,1,..., n

Bernoulli

1720

k=0:20; y=binopdf(k,20,0.5); stem(k,y)

k=0:20; y=binopdf(k,20,0.2); stem(k,y)

n = 20

p = 0.5

n = 20

p = 0.1

Combinatorics
Permutations:
Permutations:

n objects
choose k objects from n
Pkn =

n!
n! (n - k )!

(hint: fill 2 spaces on a bookshelf with books chosen from 5 available books)

Combinations:

choose k objects from n without n= regard to the order


k

n! k !(n - k )!

(hint: make a committee of 2 people chosen from a group of 5 people)

n= k

n n - k

n= 0

n= n ! = 1 n 0!n !

n= 1

n n! = = n n - 1 1!(n - 1)!

You might also like