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 2 3; 5 1 4; 3 2 ­1]

x =
    1     2     3
      5     1     4
     3     2    ­1

• transpose y = x.’     y =


   1
2
    
    5
1
Matrices

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

y=x(3,:)
• whole row y =
     3     2    ­1

y=x(:,2)
• whole column y =
     2
     1
   
     2
Operators (arithmetic)

+ addition
­ subtraction
* multiplication .* element­by­element mult
/ division ./ element­by­element div
^ power .^ element­by­element power
‘ complex conjugate  .‘ transpose
transpose

   
Operators (relational, logical) 

== equal pi 3.14159265…
~= not equal j imaginary unit,  −1
< less than i same as j
<= less than or equal
> greater than
>= greater than or equal

& AND
| OR
~ NOT
   
Generating Vectors from functions

x = zeros(1,3)
• zeros(M,N) MxN matrix of zeros x =
0     0     0

• ones(M,N) MxN matrix of ones x = ones(1,3)


x =
1     1     1

• rand(M,N) MxN matrix of uniformly 
x = rand(1,3)
distributed random numbers 
on (0,1) x =
    0.9501  0.2311  0.6068

   
Operators

[ ] concatenation x = [ zeros(1,3) ones(1,2) ]


x =
     0  0  0  1  1

( ) subscription 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
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 linear plot
• stemdiscrete plot
• grid add grid lines
• xlabel add X­axis label
• ylabel  add Y­axis label
• title add graph title
• subplot divide figure window 
• figure create new figure window
• pause 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 A > B
• if  statement 'greater'
• switch  statement elseif A < B
'less'
else
• for  loops 'equal'
• while  loops end

• continue  statement for x = 1:10


• break  statement 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 . . . . . .
(1,6) (2,6) (3,6) (4,6) (5,6) (6,6)

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

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

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

1 . . . . . .
(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 p[2]=0.0278
sum(y==3)/10000 ans = 0.0554 p[3]=0.0556
sum(y==4)/10000 ans = 0.0841 p[4]=0.0833
sum(y==5)/10000 ans = 0.1082 p[5]=0.1111
sum(y==6)/10000 ans = 0.1397 p[6]=0.1389
sum(y==7)/10000 ans = 0.1705 p[7]=0.1667
sum(y==8)/10000 ans = 0.1407 p[8]=0.1389
sum(y==9)/10000 ans = 0.1095 p[9]=0.1111
sum(y==10)/10000 ans = 0.0794 p[10]=0.0833
sum(y==11)/10000 ans = 0.0585 p[11]=0.0556
sum(y==12)/10000 ans = 0.0265 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
� n�
p(k ) = p k (1- p)n- k , k = 0,1,..., n Bernoulli 1720
�k�
k=0:20; k=0:20;
y=binopdf(k,20,0.5); y=binopdf(k,20,0.2);
stem(k,y) stem(k,y)

n = 20 p = 0.5 n = 20 p = 0.1

   
Combinatorics

• Permutations: n objects n!

n!
• Permutations: choose k objects from n Pkn =
(n - k )!
(hint: fill 2 spaces on a bookshelf with books chosen from 5 available books)

• Combinations: choose k objects from n without 
� n� n!
regard to the order =
�k� k !(n - k )!
(hint: make a committee of 2 people chosen from a group of 5 people)

� n�� � n �� � n�� � n�� � n�� � n ��


�� � = �� � �� � = �� � = n ! = 1 �� � = �� � =
n!
=n
� � k ��� �� n - k ��� �� 0��� �� n��� 0!n !   �� 1��� �� n - 1��� 1!(n - 1)!

You might also like