Introduction to Matlab Οικονομίδης Δημήτρης [email protected] .

26
Introduction to Matlab Οικονομίδης Δημήτρης [email protected] http://www.telecom.tuc.gr
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    225
  • download

    4

Transcript of Introduction to Matlab Οικονομίδης Δημήτρης [email protected] .

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 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 =

12

51

Matrices

• x(i,j) subscription

• whole row

• whole column

y=x(2,3)

y =

4

y=x(3,:)

y =

3 2 -1

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)

== equal

~= not equal

< less than

<= less than or equal

> greater than

>= greater than or equal

& AND

| OR

~ NOT

1

pi 3.14159265…

j imaginary unit,

i same as j

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

( ) subscription

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

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

• stem discrete plot

• grid add grid lines

• xlabel add X-axis label

• ylabel add Y-axis label

• title add graph title

• subplotdivide 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

'greater'

elseif A < B

'less'

else

'equal'

end

for x = 1:10

r(x) = x;

end

• if statement• switch statement

• for loops• while loops

• continue statement• break statement

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 tossesx=rand(100,1);p=sum(x<0.5)/100

p = 0.5400

• Simulate the outcomes of 1000 fair coin tossesx=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

.

.

.

.

.

. . . . .

.

. . . .. .

... .

.

...

.

...

.. .. .. .

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

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

(3,3) (4,3) (5,3) (6,3)

(2,2)(1,2)

(2,3)(1,3)

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

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

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

1 2 3 4 5 6

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.0278sum(y==3)/10000 ans = 0.0554 p[3]=0.0556sum(y==4)/10000 ans = 0.0841 p[4]=0.0833sum(y==5)/10000 ans = 0.1082 p[5]=0.1111sum(y==6)/10000 ans = 0.1397 p[6]=0.1389sum(y==7)/10000 ans = 0.1705 p[7]=0.1667sum(y==8)/10000 ans = 0.1407 p[8]=0.1389sum(y==9)/10000 ans = 0.1095 p[9]=0.1111sum(y==10)/10000 ans = 0.0794 p[10]=0.0833sum(y==11)/10000 ans = 0.0585 p[11]=0.0556sum(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

k=0:20;

y=binopdf(k,20,0.5);

stem(k,y)

( ) (1 ) , 0,1,...,k n knp k p p k n

k-

æö÷ç ÷= - =ç ÷ç ÷çè øBernoulli 1720

k=0:20;

y=binopdf(k,20,0.2);

stem(k,y)

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

Combinatorics

• Permutations: n objects

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

• Combinations:choose k objects from n without

regard to the order(hint: make a committee of 2 people chosen from a group of 5 people)

!n

!

( )!nk

nP

n k=

-

!

!( )!

n n

k k n k

æö÷ç ÷=ç ÷ç ÷ç -è ø

n n

k n k

æö æ ö÷ ÷ç ç÷ ÷=ç ç÷ ÷ç ç÷ ÷ç ç -è ø è ø

!1

0 0! !

n n n

n n

æö æö÷ ÷ç ç÷ ÷= = =ç ç÷ ÷ç ç÷ ÷ç çè ø è ø

!

1 1 1!( 1)!

n n nn

n n

æö æ ö÷ ÷ç ç÷ ÷= = =ç ç÷ ÷ç ç÷ ÷ç ç - -è ø è ø