Introduction to Matlab

Download Report

Transcript Introduction to Matlab

Introduction to Matlab
Οικονομίδης Δημήτρης
[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
• a matrix
1
x = [1 2 3; 5 1 4; 3 2 -1]
x =
1
5
3
• transpose
2
1
2
3
4
-1
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
• whole column
y=x(:,2)
y =
2
1
2
2
-1
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)
==
~=
<
<=
>
>=
equal
not equal
less than
less than or equal
greater than
greater than or equal
&
|
~
AND
OR
NOT
pi 3.14159265…
j imaginary unit,
i same as j
1
Generating Vectors from functions
• zeros(M,N)
MxN matrix of zeros
• ones(M,N)
MxN matrix of ones
• rand(M,N)
MxN matrix of uniformly
distributed random numbers
on (0,1)
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
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
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
• while
• continue
• break
statement
statement
loops
loops
statement
statement
if A > B
'greater'
elseif A < B
'less'
else
'equal'
end
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
3
4
5
6
(1,6) (2,6) (3,6) (4,6) (5,6) (6,6)
5
(1,5) (2,5) (3,5) (4,5) (5,5) (6,5)
4
(1,4) (2,4) (3,4) (4,4) (5,4) (6,4)
3
(1,3) (2,3) (3,3) (4,3) (5,3) (6,3)
2
(1,2) (2,2) (3,2) (4,2) (5,2) (6,2)
1
(1,1) (2,1) (3,1) (4,1) (5,1) (6,1)
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
ænö
k
n- k
÷
p(k ) = çç ÷
p
(1
p
)
,
÷
÷
çèk ø
k = 0,1,..., n
k=0:20;
y=binopdf(k,20,0.5);
stem(k,y)
n = 20
p = 0.5
Bernoulli
1720
k=0:20;
y=binopdf(k,20,0.2);
stem(k,y)
n = 20
p = 0.1
Combinatorics
• Permutations:
n objects
• Permutations:
choose k objects from n
n!
Pkn =
(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!
(n - 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
÷
÷ 0!n!
çènø
ænö
çç ÷
÷
=
÷
÷
çè1ø
æn ö
n!
÷
çç
÷
=
= n
÷
÷ 1!(n - 1)!
çèn - 1ø