You are on page 1of 20

1

MATLAB Kratko uputstvo za korienje




Matlab je programski paket koji je poeo da se razvija jo 80tih godina pa su se do danas
na tritu pojavile brojne verzije ovog programa. One se uglavnom razlikuju po broju raspoloivih
funkcija, sistemskim ogranienjima, grafikom interfejsu kao i po operativnom sistemu pod kojim
su implementirane. S obzirom na veliki broj raspoloivih funkcija, one su grupisane u posebne
pakete (takozvane Toolboxove), koji se posebno nabavljaju uz osnovnu verziju programa. Tako
postoje Signal Processing Toolbox, Control System Toolbox i mnogi drugi.
Osnovni elementi svih verzija Matlaba su isti, tako da kada se jednom naui nain na koji se
u Matlabu predstavljaju podaci, sprovode osnovne raunske operacije i programiraju sopstvene
funkcije, prelazak sa jedne verzije programa na drugu ne predstavlja nikakav problem. Zbog toga e
se u ovom tekstu izloiti osnovi korienja Matlaba i predstavie se najvanije osnovne komande i
funkcije, nakon ega je lako realizovati neke nove i sloenije operacije.

1. Osnovni elementi Matlaba
Po startovanju programa otvara se komandni prozor i pojavljuje se simbol >>, koji se naziva
prompt, a koji oznaava da je Matlab spreman da prihvati podatke ili naredbe. Tekst u
komandnom prozoru se brie naredbom cl c.
Osnovni objekt u Matlabu je matrica dimenzija mn, a sve elementarne operacije su tako
definisane da podravaju rad sa matricama. Time je omogueno da se sve matematike i logike
operacije i iskazi u Matlabu definiu i izvode na isti nain kao to bi ih pisali na papiru. Vektori su
posebni sluajevi matrica 1n ili n1, dok su skalarne veliine poseban sluaj matrice 11.

1.1 Unoenje podataka pomou tastature
Postoji vie naina za unoenje podataka koje treba obraditi: pomou tastature,
generisanjem pomou posebnih funkcija, uitavanjem iz fajla, ili kao rezultat neke prethodne
operacije.
Pretpostavimo da u Matlab treba uneti vrednost skalarne promenljive 5 x = . To se moe
uraditi na sledei nain. Kada se pojavi prompt >>, ukucavanjem:
>> x=5;
vrednost promenljive x se smeta u radnu memoriju Matlaba i moe se pozivati i koristiti sve dok
se: a) ne izae iz programa, b) ne predefinie unoenjem neke druge vrednosti ili izvravanjem
odreene operacije, c) ne izbrie iz radne memorije komandom cl ear x, d) komandom cl ear ne
izbrie cela radna memorija. Ukoliko se prilikom bilo kakvog dodeljivanja vrednosti promenljivoj
izostavi znak ; ta promenljiva e se jo i tampati na ekranu, tako da naredba:
>> x=5
daje kao rezultat na ekranu:
x =
5
Pretpostavimo sada da u Matlab treba uneti vrednost vektora b, koji ima sledee elemente
[1 4 5 6 7 12.3]. To se moe uraditi na sledei nain:
>> b=[ 1 4 5 6 7 12. 3] ;
2
Matrica A dimenzija 43, zadata kao:
1 7 8
9 2 11
0 3 2.1
2.4 8 100



=



A
moe se uneti u memoriju na vie naina. Jedan od njih je:
>> A=[ 1 7 8; 9 2 11; 0 3 2. 1; 2. 4 8 100] ;
Matrica se moe zadati i unoenjem svakog elementa posebno:
>> A( 1, 1) =1; A( 1, 2) =7; A( 1, 3) =8; A( 2, 1) =9; A( 2, 2) =2; A( 2, 3) =11;
>> A( 3, 1) =0; A( 3, 2) =3; A( 3, 3) =2. 1; A( 4, 1) =2. 4; A( 4, 2) =8; A( 4, 3) =100;
Takoe, matrica se moe uneti zadavanjem vrsta ili kolona
>> A( 1, : ) =[ 1 7 8] ; A( 2, : ) =[ 9 2 11] ; A( 3, : ) =[ 0 3 2. 1] ; A( 4, : ) =[ 2. 4 8 100] ;
>> A( : , 1) =[ 1 9 0 2. 4] ; A( : , 2) =[ 7 2 3 8] ; A( : , 3) =[ 8 11 2. 1 100] ;

1.2 Osnovne operacije u Matlabu
Matrice se mogu generisati i kao rezultat osnovnih aritmetikih ili logikih operacija. Na
primer, ako se poe od ve zadate matrice A, kucanjem:
>> C=A' ;
dobija se transponovana matrica C, poto je ' operator za transpoziciju.
U sledeoj tabeli su prikazane elementarne matematike operacije nad matricama u
Matlabu:
Operacija Simbol Primer
sabiranje + >> B = A+C;
oduzimanje - >> B = A- C;
sabiranje + >> B = A+C;
deljenje / >> y = 1/ x;
stepenovanje y
x
^ >> z = y^x;
mnoenje matrica * >> D = D*E; po pravilima matrinog mnoenja
Ukoliko su matrice neodgovarajuih dimenzija, program prijavljuje greku. Na primer:
??? Er r or usi ng ==> *
I nner mat r i x di mensi ons must agr ee.
U optem sluaju, ako se operator . stavi ispred simbola neke matematike operacije, time se
oznaava da e se ta operacija sprovoditi izmeu odgovarajuih elemenata matrica. Tako je:
>> D = D. *E mnoenje matrica element po element
>> F = D. ^E stepenovanje svakog elemenata matrice D odgovarajuim elementom matrice E
>> F = D. / E deljenje svakog elemenata matrice D odgovarajuim elementom matrice E
dok je:
>> F=D\ E deljenje matrica D i E sleva, odn.
1
= F D E
>> F=D/ E deljenje matrica D i E sdesna, odn.
1
= F D E

1.3 Osnovne matematike funkcije u Matlabu
U Matlabu je implementiran izvestan broj elementarnih matematikih funkcija, meu
kojima su najvanije prikazane u Tabeli 1. Ove funkcije daju skalarne vrednosti ako im je argument
3
skalarna veliina, ako je argument vektor ili matrica, operacija se primenjuje na svaki lement
vektora ili matrice. Detaljno objanjenje na koji nain se svaka funkcija koristi moe se dobiti
naredbom hel p i me_f unkci j e, na primer, hel p abs.

Tabela 1: Elementarne matematike funkcije.
Si n ( cos) sinus (kosinus) sqr t kvadratni koren
t an tangens abs apsolutna vrednost
Asi n ( acos) inverzni sinus (kosinus) Real ( i mag) realni (imaginarni) deo
at an inverzni tangens conj konjugovani broj
Si nh ( cosh) inverzni hiperboliki sinus (kosinus) f i x zaokruivanje ka nuli
t anh hiperboliki tangens f l oor zaokruivanje prema -
exp e
x
cei l zaokruivanje prema +
l og prirodni logaritam si gn signum funkcija
l og10 logaritam sa osnovom 10 r em ostatak pri deljenju

1.4 Kompleksni brojevi u Matlabu
Jedna od znaajnih osobina Matlaba je to ovaj programski paket radi i sa kompleksnim
brojevima. Imaginarna jedinica 1 j = je u Matlabu definisana kao permanentna veliina, a zbog
fleksibilnosti u radu dodeljena su joj dva simbola, i i j , tako da je
>> i = sqr t ( - 1) ;
odnosno
>> j = sqr t ( - 1) ;
Isto tako, korisnik moe vrednost sqr t ( - 1) da dodeli proizvoljnoj promenljivoj i da nju u
daljem radu koristi kao imaginarnu jedinicu, npr:
>> nova_i m_j ed = sqr t ( - 1) ;
Kompleksni brojevi se u Matlabu zadaju isto kao to bi se napisali na papiru:
>> z = 2+3*j ;
>> q = 72. 1*j ;
i nad njima se po pravilima kompleksnog rauna mogu izvoditi sve do sada pomenute operacije:
>> x = z+q;
>> x1 = zq;
>> x2 = x*x1;
>> x_r eal no = r eal ( x) ; realni deo kompleksnog broja
>> x_i mag = i mag( x) ; imaginarni deo kompleksnog broja
Kompleksna promenljiva moe da se zada i preko modula i argumenta u sledeem obliku:
>> z = r *exp( j *t et a) ;
tako da se unoenjem:
>> r = 2;
>> t et a = 0. 5;
>> z = r *exp( j *t et a)
dobija rezultat:
z =
1. 7552 + 0. 9589i
Kompleksne matrice se unose na isti nain kao i matrice sa realnim elementima, ili
unoenjem realnog i imaginarnog dela posebno (zadavanjem dve matrice).
4
1.5 Automatsko generisanje nekih specijalnih matrica u Matlabu
Za formiranje matrica specijalne strukture, u Matlabu postoje posebne naredbe: ones,
zer os, eye. Tako se npr. naredbom:
>> A = zer os( 2, 3) ;
generie matrica A, koja ima dve vrste i tri kolone, a iji su svi elementi jednaki nuli. Isto tako:
>> B = ones( 4, 2) ;
generie matricu B, dimenzija 42, kod koje su svi elementi jednaki jedinici, dok se naredbom:
>> I = eye( 7) ;
dobija jedinina matrica I, dimenzija 77. Navedene naredbe se esto primenjuju u radu, jer
omoguavaju lako generisanje osnovnih signala koji se koriste u analizi diskretnih sistema. Tako
se, na primer, pravougaoni impuls trajanja 10 odbiraka moe generisati naredbom:
>> pr av_i mpul s = [ zer os( 1, 10) ones( 1, 10) zer os( 1, 10) ] ;
a povorka od 5 takvih pravougaonih impulsa, amplitude 2, generie se naredbama:
>> i mpul s = 2*[ ones( 1, 5) zer os( 1, 10) ] ;
>> povor ka = [ i mpul s i mpul s i mpul s i mpul s i mpul s] ;
Za automatsko generisanje vektora veoma esto se koristi operator : . Tako se kucanjem:
>> x = 3: 8
dobija:
x =
3 4 5 6 7 8
odnosno, generie se vektor-vrsta koji sadri elemente od 3 do 8. Optiji oblik ove naredbe je
x = xmi n: xkor ak: xmax. Na taj nain se generie vektor x koji kao elemente ima brojeve od xmin
do xmax sa korakom xkorak. Ako je xkorak negativan broj, a xmin vee od xmax dobija se vektor sa
elementima u opadajuem redosledu.

1.6 Ugraene vrednosti u Matlabu
Osim imaginarne jedinice, u Matlabu postoje jo neke ugraene vrednosti. Na primer, broj
je definisan kao promenljiva pi koja se u radu koristi kao i ostale promenljive. Tako se kucanjem:
>> pi
dobija na ekranu:
ans =
3. 14159265358979
ili:
>> y = cos( pi / 3)
daje kao rezultat:
y =
0. 50000000000000
Posebna pogodnost Matlaba su i veliine I nf i NaN. Veliina I nf je skraenica od engleske
rei infinity (beskonano) i moe se generisati nekom od naredbi tipa:
>> x = 1/ 0
nakon ega se na ekranu dobija sledea poruka:
War ni ng: Di vi de by zer o
x =
I nf
5
Ova i sline naredbe ne izazivaju prekid u radu (osim to se na ekranu dobija poruka
upozorenja), a veliina I nf se u daljem raunanju tretira kao i sve druge vrednosti. Veliina NaN
potie od engleskog izraza not a number i moe se generisati operacijama I nf / I nf ili 0/ 0. Ona
se korisno moe upotrebiti za odreivanje vrednosti funkcija iji je argument izvan opsega
dozvoljenih vrednosti, kao to je, na primer, vrednost diskretnog signala za necelobrojnu vrednost
indeksa.

1.7 Funkcije za pomo u Matlabu
Verovatno najee koriena funkcija u Matlabu je hel p. Kako je broj funkcija u Matlabu
izuzetno veliki, a mnoge imaju i vie varijanti, nemogue je znati sintaksu i namenu svake od njih,
pa naredbu hel p esto upotrebljavaju i iskusni programeri. Na primer, ako je potrebno upoznati se
sa naredbom max (koja odreuje maksimalnu vrednost elementa nekog vektora), kucanje:
>> hel p max
daje sledeu poruku na ekranu:
MAX Lar gest component .
For vect or s, MAX( X) i s t he l ar gest el ement i n X. For mat r i ces,
MAX( X) i s a r ow vect or cont ai ni ng t he maxi mumel ement f r omeach
col umn. For N- D ar r ays, MAX( X) oper at es al ong t he f i r st
non- si ngl et on di mensi on.

[ Y, I ] = MAX( X) r et ur ns t he i ndi ces of t he maxi mumval ues i n vect or I .
I f t he val ues al ong t he f i r st non- si ngl et on di mensi on cont ai n mor e
t han one maxi mal el ement , t he i ndex of t he f i r st one i s r et ur ned.

MAX( X, Y) r et ur ns an ar r ay t he same si ze as X and Y wi t h t he
l ar gest el ement s t aken f r omX or Y. Ei t her one can be a scal ar .

[ Y, I ] = MAX( X, [ ] , DI M) oper at es al ong t he di mensi on DI M.

When compl ex, t he magni t ude MAX( ABS( X) ) i s used, and t he angl e
ANGLE( X) i s i gnor ed. NaN' s ar e i gnor ed when comput i ng t he maxi mum.

Exampl e: I f X = [ 2 8 4 t hen max( X, [ ] , 1) i s [ 7 8 9] ,
7 3 9]

max( X, [ ] , 2) i s [ 8 and max( X, 5) i s [ 5 8 5
9] , 7 5 9] .

See al so mi n, medi an, mean, sor t .
Jo jedna dobra strana naredbe hel p je to daje i spisak srodnih funkcija, to olakava rad.
Za informaciju o zauzeu radne memorije Matlaba i promenljivima koje postoje, koriste se
naredbe who i whos. Naredba who daje spisak promenljivih koje su u radnoj memoriji, dok whos
daje jo i podatak o koliini memorije koju zauzima svaka promenljiva i veliini preostale slobodne
radne memorije. Ove naredbe se koriste u sluaju rada sa velikim blokovima podataka (dugakim
vektorima ili matricama velikih dimenzija), kada zauzee memorije postaje kritian faktor.
Za ilustraciju razliitih mogunosti paketa Matlab, postoji naredba demo. Kucanjem ove
naredbe na ekranu e se pojaviti meni sa izborom razliitih demonstracionih programa.
Za odreivanje dimenzija pojedinih promenljivih postoje naredbe l engt h i si ze. Naredba
l engt h daje broj elemenata odreenog vektora. Tako na primer, kucanjem:
>> x = 0: 0. 1: 1; nx=l engt h( x)
dobijamo na ekranu vrednost promenljive nx koja predstavlja broj elemenata vektora x, kao:
nx =
11
Naredba si ze slui za odreivanje dimenzija matrice. Ona kao izlaz daje vektor sa dva
6
elementa. Prvi element vektora je broj vrsta u matrici a drugi je broj kolona. Tako na primer, ako u
radnoj memoriji postoji matrica A veliine 23, kucanjem:
>> di m= si ze( A) ;
dobijamo vektor dim koji je jednak [2 3]. Ili kucanjem:
>> [ x, y] = si ze( A)
promenljivima x i y dodeljujemo vrednosti 2 i 3.

2. Grafiki prikaz podataka u Matlabu
Odline grafike mogunosti su jedna od najboljih osobina Matlaba, poto postoji veliki
broj naredbi koje omoguavaju crtanje podataka u dve ili tri dimenzije. Osim toga, Matlab
omoguava uvanje dobijenih grafika u mnogobrojnim standardnim formatima. Na taj nain se
slike napravljene u Matlabu mogu koristiti u drugim programskim paketima.

2.1 Grafike komande
Prozor za crtanje grafika se otvara naredbom f i gur e, a zatvara (brie) naredbom cl ose.
Naredba cl ose al l zatvara sve otvorene prozore.
Grafik se brie bez zatvaranja prozora naredbom cl f . Zadavanjem bilo koje od naredbi za
crtanje (pl ot , st em, i sl.), prethodni grafik se brie i u tekuem prozoru se crta novi grafik. Ukoliko
elimo da se stari grafik zadri, a da se preko njega crtaju novi, koristi se naredba hol d on. Ova
naredba se ponitava sa hol d of f .

2.2 Naredba pl ot
Najee koriena naredba za prikaz podataka je pl ot . Naredba pl ot ima veliki broj opcija
te e se u daljem izlaganju njena upotreba ilustrovati primerima, a opirniji prikaz se moe dobiti
kucanjem hel p pl ot .
Primer 1.
Nacrtati funkciju y x =
2
na intervalu 2 do 2.
Crtanje odgovarajueg grafika izvodi se sa sledee tri naredbe:
>> x = - 2: 0. 01: 2;
>> y = x. ^2;
>> pl ot ( x, y)
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
3.5
4

Slika 1: Grafiki prikaz funkcije y x =
2
pomou naredbe plot.
7
Kao to se vidi, na grafiku je izvren automatski izbor opsega po obe ose.
Primer 2.
Nacrtati funkcije y x =
2
,
3/ 2
z x = i
5/ 2
w x = na intervalu 2 do 2.
Ukoliko je potrebno, na istoj slici se moe nacrtati vie dijagrama. Na primer, tri traene
krive mogu se generisati i predstaviti na istoj slici sledeim skupom naredbi:
>> x = - 2: 0. 01: 2;
>> y = x. ^2;
>> z = x. ^3;
>> w = x. ^4;
>> pl ot ( x, y, x, z, x, w)
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
-10
-5
0
5
10
15
20

Slika 2: Grafiki prikaz funkcija y x =
2
,
3/ 2
z x = i
5/ 2
w x = pomou naredbe plot.
Na prethodnoj slici su tri krive nacrtane razliitim bojama. Boja krive, simboli kojima su
oznaene izraunate take (markeri), kao i tip linije koja spaja take, mogu se izabrati tako to se u
naredbi pl ot pored nezavisne i zavisne promenljive za svaku krivu zadaju jo najvie tri simbola
' mnp' s sledeim znaenjem:
m boja linije n - marker taaka p - vrsta linije
b - plava . - taka - - puna linija
g - zelena o - krui : - takasta linija
r - crvena x - znak x - . - taka-crtica
c - cijan (plavo-zelena) +- znak + - - - crtice
m- magenta (ljubiasta) * - zvezdica ni t a - nema linije
y - uta s - kvadrati
b - crna d - dijamant
v - trougao na dole
^- trougao na gore
<- trougao na levo
>- trougao na desno
p - petougao
h - estougao
Na primer, naredba pl ot ( x, y, ' c+: ' ) nacrtae krivu y cijan bojom, take e biti oznaene
plusevima, a bie spojene takastom linijom. Prilikom crtanja se koristi linearna interpolacija
izmeu postojeih taaka.
Ako boja krive nije eksplicitno specificirana, onda se boja krive odreuje po redosledu
crtanja kao: plava, zelena, crvena, cijan, magenta, uta, crna. Ako nije specificiran marker, onda se
take ne oznaavaju. Ako nije specificirana vrsta linije, onda se crta puna linija.
8
Ako u naredbi pl ot postoji samo jedan argument, to znai da e se vrednosti tog vektora
nanositi na ordinatu. U tom sluaju se na apcisu nanose indeksi elemenata u vektoru.
Primer 3.
Nacrtati vektor podataka x = [1 7 4.3 2 9 11 8 9]. Vrednosti podataka oznaiti kruiima, a take spojiti
isprekidanom crvenom linijom.
Vektor x zadaje se i crta na sledei nain:
>> x = [ 1 7 4. 3 2 9 11 8 9] ;
>> pl ot ( x, ' r o- - ' )
1 2 3 4 5 6 7 8
1
2
3
4
5
6
7
8
9
10
11

Slika 3: Grafiki prikaz vektora x pomou naredbe plot.
Primer 4.
Nacrtati funkciju sin( ) y x = za vrednosti argumenta u opsegu 4 4 x . Krivu nacrtati punom
ljubiastom linijom, a vrednosti taaka ne oznaavati.
Traeno reenje je:
>> x = - 4*pi : pi / 100: 4*pi ;
>> y = si n( x) ;
>> pl ot ( x, y, ' m' )
-15 -10 -5 0 5 10 15
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1

Slika 4: Grafiki prikaz funkcije sin( ) y x = pomou naredbe plot.
9
2.3 Naredba st em
Naredba za grafiki prikaz diskretnih podataka je st em, koja prikazuje diskretne podatke
tako da od svake take izvlai vertikalnu liniju do x ose. Slino naredbi pl ot i naredba st emima
mnogo opcija, pa e se u daljem izlaganju njena upotreba ilustrovati kroz primere, dok se detaljniji
prikaz njenih mogunosti moe dobiti kucanjem hel p st em. Osnovna verzija naredbe st em:
>> st em( x)
crta vektor x u funkciji indeksa elemenata vektora. Kao marker diskretnih taaka koristi se krui.
U sloenijim verzijama, kao to je st em( x, y, ' mnp' ) specificiraju se koordinate taaka po
obe ose, boja i tip linija, izgled markera. Znaenje parametara ' mnp' isto je kao kod naredbe pl ot .
Primer 5.
Nacrtati vektor podataka x = [1 7 4.3 2 9 11 8 9] pomou naredbe st em.
Vektor x zadaje se i crta na sledei nain:
>> x = [ 1 7 4. 3 2 9 11 8 9] ;
>> st em( x)
1 2 3 4 5 6 7 8
0
2
4
6
8
10
12

Slika 5: Grafiki prikaz vektora x pomou naredbe stem.
Primer 6.
Nacrtati diskretnu eksponencijalnu funkciju
an
y e = za 0.5 a = i 0 10 n pomou naredbe st em.
Funkcija se crta pomou sledeih naredbi. Opcija ' f i l l ed' izaziva popunjavanje kruia.
>> n = 0: 1: 10;
>> y = exp( - 0. 5*n) ;
>> st em( n, y, ' f i l l ed' )
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1

Slika 6: Grafiki prikaz diskretne eksponencijalne funkcije
an
y e = pomou naredbe stem.
10
2.4 Oznaavanje osa i grafika
Oznaavanje grafika i osa, obavlja se u Matlabu naredbama t i t l e, xl abel i yl abel .
Upotreba ovih naredbi moe se ilustrovati sledeim primerom:
Primer 7.
Nacrtati funkciju sin( ) y x = za vrednosti argumenta u opsegu 4 4 x . Krivu nacrtati punom plavom
linijom, a vrednosti taaka ne oznaavati. Ispisati naziv grafika i oznaiti koordinatne ose.
Za reavanje ovog problema mogu se iskoristiti naredbe napisane u Primeru 4, kojima treba
dodati naredbe za ispisivanje naziva i oznaavanje koordinatnih osa:
>> x = - 4*pi : pi / 100: 4*pi ;
>> y = si n( x) ;
>> pl ot ( x, y, ' b' )
>> t i t l e( ' Gr af i k f unkci j e y = si n( x) ' )
>> xl abel ( ' Vr ednost i pr omenl j i ve x' )
>> xl abel ( ' Vr ednost i f unkci j e y=si n( x) ' )
-15 -10 -5 0 5 10 15
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Grafik funkcije y = sin(x)
Vrednosti promenljive x
V
r
e
d
n
o
s
t
i

f
u
n
k
c
i
j
e

y

=

s
i
n
(
x
)

Slika 7: Grafiki prikaz funkcije sin( ) y x = pomou naredbe plot sa oznaavanjem osa i naslovom.
2.5 Grafici sa logaritamskom podelom
Grafici sa logaritamskom podelom po x osi, po y osi ili sa logaritamskom podelom na obe
ose, mogu se dobiti naredbama semi l ogx, semi l ogy i l ogl og. Prilikom crtanja grafika
korienjem naredbi semi l ogx i l ogl og, potrebno je jo generisati nezavisno promenljivu x u
logaritamskoj razmeri, to se postie naredbom l ogspace.
Primer 8.
Nacrtati funkciju
3 2
1/( 1) y x x x = + + za vrednosti argumenta u opsegu 0.1 10 x sa logaritamskom
razmerom po x osi i po obe ose.
Funkcija y(x) se crta u logaritamskoj razmeri (samo po x osi ) pomou naredbi:
>> x=l ogspace( - 1, 1, 256) ;
>> y=1. / ( x. ^3+x. ^2- x+1) ;
>> semi l ogx( x, y)
dok se u sluaju crtanja u logaritamskoj razmeri po obe ose koristi se naredba l ogl og( x, y) .
>> l ogl og ( x, y)
Traeni grafici su prikazani na slici 8.
11
10
-1
10
0
10
1
0
0.2
0.4
0.6
0.8
1
1.2
1.4

10
-1
10
0
10
1
10
-4
10
-3
10
-2
10
-1
10
0
10
1

Slika 8: Grafiki prikaz funkcije
3 2
1/( 1) y x x x = + + u logaritamskoj razmeri po x osi i po obe ose.

2.6 Skaliranje osa
Prilikom crtanja grafika, opseg vrednosti na apcisi i ordinati odreuje se automatski, na
osnovu minimalne i maksimalne vrednosti promenljivih koje se zadaju u naredbi za crtanje (pl ot ,
semi l ogx, itd.). Ukoliko je potrebno nacrtati samo deo celokupnog opsega, koristi se naredba axi s.
Ulazni argument je vektor [ xmi n xmax ymi n ymax] kojim se zadaje opseg za crtanje po x i y osi.
Primer 9.
Izraunati funkciju sin( ) y x = za vrednosti argumenta u opsegu 4 4 x , a nacrtati grafik za samo
jedan period sinusoide.
Traeno reenje je:
>> x = - 4*pi : pi / 100: 4*pi ;
>> y = si n( x) ;
>> pl ot ( x, y)
>> axi s( [ 0 2*pi - 1 1] ) ;
0 1 2 3 4 5 6
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1

Slika 9: Grafiki prikaz jednog perioda funkcije sin( ) y x = pomou naredbe plot.
Od interesa su i sledee varijante naredbe axi s:
Naredba axi s manual zamrzava tekue granice [ xmi n xmax ymi n ymax] . Ako je pri tome
aktivirana naredba hol d on, svi naredni grafici e koristiti iste granice. Automatsko odreivanje
granica za crtanje se vraa naredbom axi s aut o.
Naredba axi s of f ukida oznaavanje i obeleavanje po osama. axi s on vraa ukinuto
oznaavanje za sledee grafike.
12
Naredba v = axi s daje kao rezultat trenutno vaei vektor [ xmi n xmax ymi n ymax] .
Naredba axi s equal izaziva da inkrementi po svim osama budu jednaki, tako da krug
izgleda kao krug a ne elisa, a lopta izgleda kao lopta a ne elipsoid.

2.7 Crtanje vie grafika na ekranu
U dosadanjim primerima grafici su prikazivani u celom prozoru. Meutim, u Matlabu
postoji mogunost i da se nacrta vie razliitih grafika u jednom prozoru, za ta se koristi naredba
subpl ot , koja se navodi pre naredbe za crtanje. Opti oblik ove naredbe je subpl ot ( m, n, p) ili
subpl ot ( mnp) , to znai da e se ekran podeliti na m delova po horizontali, n delova po vertikali i
tekui grafik e se nacrtati na p-tom delu. Redosled grafika se odreuje sa leva na desno, odozgo na
dole. Na Slici 10 je ilustrovano na koji nain se koristi subpl ot da bi se ostvarile razliite podele
ekrana.
subplot(221) subplot(222)
subplot(223) subplot(224)

subplot(122) subplot(121)

subplot(211)
subplot(211)
subplot(212)

Slika 10: Korienje naredbe subplot za podelu ekrana prilikom crtanja grafika.
Ukoliko se ne zada naredba subpl ot , grafik se crta preko celog prozora. Isto tako, podela
ekrana zadata poslednjom naredbom subpl ot , ostaje i prilikom crtanja sledeih grafika, sve dok se
ne promeni sledeom subpl ot naredbom.
Primer 10.
Izraunati diskretnu funkciju
( 0.1 5 / 9)
5
j n
y e
+
= za vrednosti argumenta u opsegu 0 20 n i nacrtati grafike
njenog realnog i imaginarnog dela u istom prozoru..
Traeno reenje se dobija naredbama:
>> n=0: 1: 20;
>> y = 5*exp( ( - 0. 1+j *5*pi / 9) *n) ;
>> r y = r eal ( y) ;
>> i y = i mag( y) ;
>> subpl ot ( 2, 1, 1) , st em( n, r y) ;
>> t i t l e( ' Real ni deo' ) ;
>> subpl ot ( 2, 1, 2) , st em( n, i y) ;
>> t i t l e( ' I magi nar ni deo' ) ;
i prikazano je na Slici 11.

2.8 Ostale naredbe za crtanje
Naredba:
>> axes( ' posi t i on' , RECT)
postavlja grafik u prozoru na poziciju odreenu vektorom RECT=[ l ef t , bot t om, wi dt h, hei ght ] .
Taka (0,0) odgovara donjem levom uglu, a taka (1,1) odgovara gornjem desnom uglu grafika.
13
0 2 4 6 8 10 12 14 16 18 20
-4
-2
0
2
4
6
Realni deo
0 2 4 6 8 10 12 14 16 18 20
-4
-2
0
2
4
6
Imaginarni deo

Slika 11: Grafiki prikaz realnog i imaginarnog dela diskretne funkcije
( 0.1 5 / 9)
5
j n
y e
+
= .
Naredba:
>> gr i d on
crta mreu isprekidanih linija paralelnu koordinatnim osama. Mrea se brie naredbom:
>> gr i d of f
Naredba:
>> zoomon
omoguava uveanje ili smanjenje razmere crtea pritiskom na levo ili deso dugme mia.
Zumiranje se ukida naredbom:
>> zoomof f
Osim dosad opisanih naredbi, koje se najee koriste u radu, u Matlabu postoje i druge
mogunosti za prikaz podataka. Neke vanije naredbe za crtanje dvodimenzionalnih i
trodimenzionalnih grafika su date u Tabeli 2. Detaljnija uputstva za njihovo korienje mogu se
dobiti korienjem komande hel p.

Tabela 2: Neke od vanijih naredbi za crtanje 2D i 3D grafika.
pol ar crtanje u polarnom koordinatnom sistemu
hi st crtanje histograma
bar , st ai r s crtanje stepeniastih grafika
mesh crtanje trodimenzionalnih grafika
cont our crtanje konturnih preseka
pl ot 3 crtanje linija i taaka u trodimenzionalnom prostoru

2.9 Zapisivanje grafika u fajl
Grafik koji se trenutno nalazi na ekranu moe da se zapie u fajl na vie naina. Jedan od
naina je da se u prozoru slike levim dugmetom mia klikne na opciju File a zatim na Save as i
izabere ime fajla i format fajla u kome e slika biti zapisana. Na raspolaganju je veliki broj
raspoloivih standardnih formata, treba izabrati neki format koji komprimuje sliku bez gubitaka,
kao to su png i tif formati grafikih podataka.
14
Drugi nain zapisa je da se slika prvo prebaci u privremenu memoriju (clipboard), a iz nje u
neki drugi grafiki program ili u program za obradu teksta. Ova operacija se vri tako to se u
prozoru slike levim dugmetom mia klikne na opciju Edit a zatim na Copy Figure.
Trei nain zapisa je korienjem naredbe pr i nt u komandnom prozoru. Jedan od oblika
ove naredbe je:
>> pr i nt <f or mat > <i me f aj l a>
Tako na primer, naredbom:
>> pr i nt - dmet a sl i ka. met
tekui grafik e se zapisati u datoteku sl i ka. met kao Windows meta fajl, ili sa opcijom - dbi t map
tekui grafik e se zapisati u datoteku sl i ka. bmp u bitmap formatu. Detaljno uputstvo za
korienje ove naredbe kao i spisak svih moguih opcija dobija se sa hel p pr i nt . Ovaj nain
zapisa je pogodan kada je u programu potrebno generisati vei broj fajlova i zapisati ih u
odgovarajue fajlove. Prethodna dva naina zahtevala bi suvie manuelnog rada za zapis slika.

3. Programiranje u Matlabu
U dosadanjem izlaganju, sve operacije su se kucale u komandnoj liniji (to je oznaavano
sa >>) i izvravale posle pritiska na tipku Enter ili Return. Meutim, prilikom ozbiljnijeg korienja
Matlaba za reavanje sloenih problema, ovakav nain izvravanja programa postaje nepraktian i
spor. U takvim sluajevima korisnik treba na napie sopstveni program, ili da kreira sopstvene
funkcije, to je takoe podrano u Matlabu.

3.1 Pisanje programa u Matlabu
Kada je potrebno vie naredbi objediniti u jednu celinu koja e se esto izvravati, poeljno
je napisati program (skriptu) i startovati ga iz komandne linije sa:
>> i me_pr ogr ama
Program se pie u editoru koji je deo Matlab programa ili u nekom od editora teksta koji su
dostupni u operativnom sistemu koji se koristi (Notepad, UltraEdit, i sl.). Ime datoteke u kojoj se
nalazi program moe biti proizvoljno, ali ekstenzija mora biti . m, dakle, kompletan naziv programa
je i me_pr ogr ama. m. Na taj nain Matlab prepoznaje da se radi o korisnikom programu ili
funkciji, zbog ega se obino te datoteke nazivaju jo i mfajlovi.
Prilikom pisanja programa poeljno je to ee koristiti komentare. Linija (ili deo linije) u
programu, koja predstavlja komentar, poinje znakom %.
Postupak pisanja programa, moe se jednostavno ilustrovati na sledeem primeru.
Primer 11.
Napisati program kojim e se nacrtati funkcija y x =
2
na intervalu 2 do 2 i sauvati ga u datoteci cr t ez. m.
%Pr ogr amza cr t anj e f unkci j e y=x*x na i nt er val u 2<x<2
x = - 2: 0. 01: 2; %gener i se se nezavi sno pr omenl j i va x
y = x. ^2; %i zr acunava se zavi sno pr omenl j i va y
pl ot ( x, y) %cr t a se f unkci j a
t i t l e( ' Gr af i k f unkci j e y=x*x, na i nt er val u 2<x<2' )
xl abel ( ' Nezavi sno pr omenl j i va x' )
yl abel ( ' y' )
Iz komandnog prozora Matlaba, program se startuje kucanjem u komandnoj liniji:
>> cr t ez
ime se dobija sledei rezultat:
15
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
3.5
4
Grafik funkcije y=x*x, na intervalu 2<x<2
Nezavisno promenljiva x
y

Slika 12: Rezultat programa crtez.
3.2 Unoenje promenljivih u program sa tastature
Unos vrednosti sa tastature u toku rada programa omoguen je naredbom i nput . Korienje
ove naredbe najlake se moe objasniti na sledeem primeru.
Primer 12.
Napisati program kojim e se nacrtati funkcija y x =
2
na intervalu a do b. Vrednosti a, b i koraka izmeu dve
susedne vrednosti nezavisne promenljive treba uitati sa tastature, a program sauvati u datoteci cr t ez1. m.
Traeni program cr t ez1. mizgleda ovako:
%Pr ogr amza cr t anj e f unkci j e y=x*x na pr oi zvol j nomi nt er val u a<x<b
a = i nput ( ' Pocet ak i nt er val a ( a) : ' ) ; %unosi se a sa t ast at ur e
b = i nput ( ' Kr aj i nt er val a ( b) : ' ) ; %unosi se b sa t ast at ur e
kor ak = i nput ( ' kor ak i znosi : ' ) ; %unosi se kor ak sa t ast at ur e
x = a: kor ak: b; %gener i se se nezavi sno pr omenl j i va x
y = x. ^2; %i zr acunava se zavi sno pr omenl j i va y
pl ot ( x, y) %cr t a se f unkci j a
t i t l e( [ ' Gr af i k f unkci j e y=x*x, na i nt er val u ' num2st r ( a) ' < x < ' num2st r ( b) ] ) ;
xl abel ( ' Nezavi sno pr omenl j i va x' ) ; yl abel ( ' y' )
Funkcija num2st r ( a) pretvara broj a u niz alfanumerikih simbola koji se jedino mogu
koristiti u naredbi t i t l e.
-3 -2 -1 0 1 2 3 4 5
0
5
10
15
20
25
Grafik funkcije y=x*x, na intervalu -3 < x < 5
Nezavisno promenljiva x
y

Slika 13: Rezultat programa crtez1 za vrednosti parametara a = -3 i b = 5.
16
3.3 Funkcije za upravljanje tokom programa
Kao i u drugim programskim jezicima, u Matlabu postoje uobiajene funkcije za upravljanje
tokom programa kao to su f or , i f , whi l e, r et ur n, i sl. Njihova sintaksa je ista, ili vrlo slina,
sintaksi koja se koristi u programskim jezicima C i C++.

3.3.1 FOR petlja
Opti oblik naredbe f or je:
f or pr omenl j i va = a: i nkr ement : b,
{ bl oknar edbi
end
Blok naredbi unutar f or petlje e se izvravati dok pr omenl j i va uzima vrednosti od a do b
sa korakom koji je zadat vrednou i nkr ement .
Primer 13.
Napisati program koji generie matricu A, dimenzija nm, iji su elementi ( , ) 2
i j
A i j
+
= . Dimenzije matrice n i
m treba uitati sa tastature.
Reenje ovog primera je:
n = i nput ( ' Br oj vr st a ( n) j e: ' ) ;
m= i nput ( ' Br oj kol ona ( m) j e: ' ) ;
f or i =1: n,
f or j =1: m,
A( i , j ) =2^( i +j ) ;
end
end

3.3.2 IF naredba
Naredba i f je takoe implementirana u Matlabu. Opti oblik ove naredbe je:
i f i zr az,

{
bl ok nar edbi
end
Blok naredbi unutar i f naredbe se izvrava ako je i zr az razliit od nule. Prilikom
definisanja promenljive i zr az, kao uslova za izvravanje, koriste se logike i relacione operacije
definisane u Tabeli 3. Dozvoljeno je i viestruko grananje, kada se koristi kontrolna struktura i f
el se end, kao u sledeem primeru.
Primer 14.
Napisati program koji ispituje parnost brojeva. Izlazna promenljiva par je jednaka 0 ako je broj negativan;
jednaka 1, ako je broj pozitivan i neparan; i jednaka 2, ako je broj pozitivan i paran.
Reenje ovog primera je:
i f n < 0
par = 0;
el sei f r em( n, 2) == 0
par = 2;
el se
par = 1;
end

3.3.3 WHILE petlja
Opti oblik naredbe whi l e je:
17
whi l e i zr az,

{
bl ok nar edbi
end
Blok naredbi unutar whi l e petlje e se izvravati dok je i zr az razliit od nule. Prilikom
definisanja i zr aza, kao dela whi l e petlje, mogu da se koriste razliite logike i relacione
operacije date u Tabeli 3.

Tabela 3: Relacioni i logiki operatori i funkcije.
< manje
<= manje ili jednako
> vee
>= vee ili jednako
== jednako
~= razliito
& logiko i
| logiko ili
~ negacija
f i nd u nizu (matrici) nalazi indekse koji zadovoljavaju odreenu relaciju
i snan nalazi NaNove u zadatom nizu ili matrici
f i ni t e u zadatom nizu (matrici) nalazi elemente koji su I nf
i sempt y nalazi prazne matrice (nizove)

Primer 15.
Napisati program koji za zadato k (uitano sa tastature) izraunava sumu:
1
1
k
n
S n
=
=

.
Reenje ovog primera je:
k = i nput ( ' k i znosi : ' ) ;
s = 0; n = 1;
whi l e n <= k,
s = s+1/ n;
n = n+1;
end

3.4 Pisanje funkcija u Matlabu
Jedna od pogodnosti Matlaba je to korisniku prua mogunost kreiranja sopstvenih
funkcija. One se u daljem radu tretiraju isto kao i funkcije koje su deo samog programa ili pripadaju
nekom od Toolboxova. Fajlovi koji sadre korisnike funkcije nazivaju se jo i funkcijski fajlovi i
piu se na isti nain kao i programi (skripte). Jedina razlika izmeu fajla koji sadri funkciju i fajla
koji sadri program (skriptu) jeste to to funkcijski fajl u prvoj liniji obavezno mora da sadri
deklaraciju funkcije koja poinje naredbom f unct i on. Pisanje korisnikih funkcija se moe
ilustrovati na sledeem primeru:
Primer 16.
Napisati funkciju f akt , koja rauna faktorijel zadatog broja.
Oblik traene funkcije je y = f akt ( n) , gde je n ulazni argument (broj iji se faktorijel
rauna), a izlaz iz funkcije je izraunata vrednost faktorijela. Program koji realizuje funkciju f akt
izgleda ovako:
18
f unct i on y = f akt ( n)
%Funkci j a y = f akt ( n) , r acuna f akt or i j el br oj a n i dodel j uj e ga
%pr omenl j i voj y. Ako j e n<0 na ekr anu se i spi suj e por uka
%o gr eci , a pr omenl j i voj y se ne dodel j uj e ni kakva vr ednost .
i f n<0,
di sp( ' Gr eska. Fakt or i j el negat i vnog br oj a ni j e def i ni san. ' )
y=[ ] ; %y j e pr azan vekt or
r et ur n %i zl azak i z pr ogr ama
end
y = 1; i nd = n;
whi l e ( i nd>0) ,
y = y*i nd;
i nd = i nd- 1;
end
Nakon to se napie funkcijski fajl (korienjem bilo kog editora), on mora da se sauva pod
imenom i me_f unkci j e. m. Dakle funkcijski fajl mora da ima isto ime kao i funkcija koja je u
njemu deklarisana. Nakon toga, funkcija moe da se upotrebljava kao i sve druge funkcije ugraene
u Matlab. Tako na primer, kucanjem u komandnoj liniji:
>> f akt ( 5)
na ekranu se dobija:
ans =
120
ili sa:
>> z = f akt ( 3) ;
promenljivoj z se dodeljuje vrednost 6, bez ispisa na ekranu. Ukoliko se kao ulazni argument zada
broj koji je manji od nule (to ispituje i f pitalica u programu) na ekranu e se pojaviti sledea
poruka:
Gr eska. Fakt or i j el negat i vnog br oj a ni j e def i ni san.
to je ostvareno naredbom di sp( ' Gr eska. Fakt or i j el negat i vnog br oj a ni j e
def i ni san. ' ) . U optem sluaju, naredba di sp na ekranu tampa tekst koji se nalazi izmeu dva
znaka ' . Ova naredba moe da se iskoristi i za tampanje vrednosti neke promenljive. U tom
sluaju se kao argument navodi samo ime promenljive, npr. di sp( z) . U sluaju da se u komandnoj
liniji Matlaba otkuca hel p f akt , na ekranu e se dobiti komentar koji sledi posle deklaracije
funkcije.

3.5 Efikasnost izvravanja programa u Matlabu
Matlab pripada grupi interpreterskih programskih jezika. Kada se naredba unosi kucanjem u
komandnom prozoru, ona se prvo interpretira a zatim izvrava. Ako se radi o programu, onda se
naredbe redom uitavaju, interpretiraju i izvravaju. Ukoliko u programu postoje petlje, svaka
instrukcija u petlji se u svakom prolazu uitava, interpretira i izvrava. U sluaju kada se radi sa
velikim koliinama podataka, kakav je sluaj u obradi govora ili slike, to moe ozbiljno poveati
vreme izvrenja programa. Stoga je od interesa razmotriti mehanizme za procenu sloenosti
programa i naine za popravljanje efikasnosti programa.

3.5.1 Merenje vremena izvravanja programa
Merenje vremena izvravanja programa, ili dela programa, u Matlabu je omogueno
korienjem naredbi t i c i t oc. One se primenjuju na sledei nain:
t i c

{
bl ok nar edbi
t oc
19
Prvom naredbom t i c se aktivira merenje vremena (toperica). Druga naredba t oc oitava
sadraj brojaa bez resetovanja. Resetovanje brojaa se vri novom naredbom t i c. Naredba t oc
moe imati i oblik t = t oc, ime se omoguava pamenje prolaznih vremena tokom izvravanja
nekog sloenog programa
Primer 17.
Generisati matricu sluajnih brojeva 100100, invertovati je i izmeriti vreme izvrenja programa.
Reenje problema je:
t i c
a = r and( 100) ;
b = i nv( a) ;
t oc
Izvravanjem ovog programa dobija se na ekranu rezultat:
El apsed t i me i s 0. 140000 seconds.

3.5.2 Poveanje efikasnosti izvravanja programa
Radi poveanja efikasnosti izvravanja programa, to je od ogromne vanosti kod realizacije
sloenih algoritama, potrebno je izbegavati upotrebu programskih petlji to je vie mogue. Da bi
ilustrovali potrebu za izbegavanjem programskih petlji posmatrajmo generisanje odbiraka diskretne
sinusoide pomou programa:
f or t =1: 5000
y( t ) = si n( 2*pi *t / 10) ;
end
Merenjem vremena izvrenja ovog programa dobija se vreme od 0.18 s. Ako sada umesto
5000 odbiraka generiemo 20000 odbiraka sinusoide, novo vreme izvrenja e biti 2.1 s, dakle ne
etiri nego 11.7 puta due. Razlog za to je dinamiko poveanje duine vektora y, za po jedan u
svakom prolazu kroz petlju.
Postoji jednostavan nain za ubrzanje izvrenja opisanog programa. Ako se pre ulaska u
petlju rezervie prostor u memoriji za ceo vektor (ili matricu), to se nalake izvodi naredbom za
popunjavanje nulama, program se znaajno ubrzava, tako da je vreme izvrenja programa:
y = zer os( 1, 20000) ;
f or t =1: 20000
y( t ) = si n( 2*pi *t / 10) ;
end
samo 0.16 s, dakle ak krae nego za poetnu verziju programa sa 5000 odbiraka.
Jo bre izvrenje se moe postii potpunim izbegavanjem izraunavanja u petlji:
y = zer os( 1, 20000) ;
t = 1: 20000;
y = si n( 2*pi *t / 10) ;
Ovaj program traje samo 0.04 s.

4. Dodatne funkcije
Osim elementarnih matematikih funkcija, koje su prikazane u dosadanjem izlaganju, u
Matlabu je implementiran izuzetno veliki broj razliitih funkcija: za analizu i obradu podataka, za
rad sa polinomima, funkcije koje se koriste u obradi signala, numerikoj analizi, linearnoj algebri,
statistici, itd. Jedan broj jednostavnijih funkcija nalazi se u osnovnom Matlab modulu, dok su ostale
grupisane u posebne specijalizovane module (tzv. Toolboxove) koji se nezavisno nabavljaju. Tako
postoje Signal Processing Toolbox (za primenu u digitalnoj obradi signala), Control System
Toolbox (za primenu u sistemima upravljanja), Identification Toolbox (za primenu u identifikaciji
20
sistema), Neural Network Toolbox (za rad sa neuralnim mreama), Image Processing Toolbox (za
primenu u digitalnoj obradi slike), Optimization Toolbox (za reavanje razliitih linearnih i
nelinearnih problema), Statistics Toolbox (za primenu u statistici), itd. Broj funkcija koje su
implementirane u Matlabu je toliko veliki da ak i iskusni korisnici ne koriste niti znaju sve
postojee funkcije. Meutim, kada se jednom prihvati nain rada sa programom i usvoje
elementarne operacije, sve sloenije komande i funkcije se otkrivaju i usvajaju izuzetno brzo i lako
(za ta se esto koristi naredba hel p). Za poetnike u radu sa Matlabom, u Tabelama 4, 5 i 6 su
navedene neke od jednostavnijih funkcija, koje nisu pominjane u ovom tekstu.

Tabela 4: Funkcije za rad sa matricama.
expm, l ogm i sqr t m stepenovanje, logaritam i koren matrice
det determinanta matrice
nor m norma matrice
r ank rang matrice
pol y, ei g karakteristini polinom i sopstvene vrednosti matrice
i nv inverzija matrice
or t h ortogonalizacija matrice
pi nv pseudonverzija matrice
qr ortogonalnotrougaona dekompozicija
r r ef kanonika forma matrice
svd dekompozicija preko singularnih vrednosti

Tabela 5: Neke od funkcija za analizu podataka.
max maksimalna vrednost
mi n minimalna vrednost
mean srednja vrednost
st d standardna devijacija
sum suma elemenata vektora
di f f aproksimacija diferencijala
cor r coef koeficijent korelacije
pr od skalarni proizvod
cov kovarijansna matrica

Tabela 6: Neke od funkcija za rad sa polinomima.
r oot s izraunavanje korena polinoma
pol y izraunavanje koeficijenata polinoma iz korenova
pol yval izraunavanje vrednosti polinoma
conv mnoenje polinoma
deconv deljenje polinoma
pol yf i t interpolacija polinomom

You might also like