Introduction To Matlab: Doikon@
Introduction To Matlab: Doikon@
[email protected]
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
• 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 .* elementbyelement mult
/ division ./ elementbyelement div
^ power .^ elementbyelement 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
• 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
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 Xaxis label
• ylabel add Yaxis 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
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 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 TrialsBinomial 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)