You are on page 1of 56

MATLAB uputstvo za upotrebu

Sadr`aj

U vod

O snovniprincipirada u M ATLAB-u
U vodne napom ene
Form atiza prikazivanje num eri~kih podataka
M atem ati~ke funkcije M ATLAB-a
Kori{tenje H ELP-a
Kom anda H ELP
Lookfor kom anda

3
3
5
6
9
9
11

O peracije sa poljim a
Prosta polja
Pristup elem entim a polja
D efinisanje polja
O peracije sa poljim a

11
12
12
13
14

Rad sa m atricam a
Specijalne m atrice

17
23

G rafi~kiprikaz podataka

26

N aredbe za rad sa tekstom

30

m -fajlovi

32

Pisanje funkcija u M ATLAB-u


33
Relacioniilogi~kioperatori
Relacionioperatori
Logi~kioperatori

35
35
37

Kontrolne petlje
38
38
40
40

For petlje
W hile petlje
If-else-end strukture
Rje{eniprim jeri

41
Prilog naredbe M ATLAB-a
55

MATLAB uputstvo za upotrebu

U vod:
Prva, izvorna verzija M A TLA B-a, napisana je kasnih sedam desetih, na univerzitetu
N ew M exico iStanford U niverzitetu,sa osnovnom nam jenom da slu`ikao pom o}no sredstvo
na kursevim a iz linerarne algebre, i num eri~ke analize. Zam i{ljeno je da ovaj paket bude
nadgradnja FO RTRA N -a koja bi koristila gotove potprogram e FO RTRA N -a. D ana{nje
m ogu}nosti M A TLA B-a daleko prevazilaze tada{nji originalni "M atrix Laboratory".
O grom an brojnau~nih itehni~kih disciplina neizostavno zahtijevaju kori{tenje M A TLA B-a.
M A TLA B pored svojih prvenstveno razvojnih i program abilnih m ogu}nosti posjeduje jo{
jednu zaista m o}nu alatku koja je jedna od osnovnih odlika ovog paketa.To su toolboxovi.
N aim e,vrlo jednostavno se u M A TLA B-u m ogu kreiratisopstvene funkcije koje daju rje{enja
na postavljene zahtjeve. Skup ovako kreiranih funkcija (m -fajlova) objedinjenih u jednu
cjelinu predstavlja osnovnu strukturu toolboxa.Toolboxovidakako predstavljaju m nogo vi{e
od kolekcije upotrebljivih fajlova,jerje u njim a objedinjen trud velikih svjetskih istra`itelja u
raznim podru~jim a nauke.

MATLAB uputstvo za upotrebu

O SN O VN I PRIN CIPI RAD A U M ATLAB-u


U vodne napom ene:
N akon {to ste startovaliM A TLA B na va{em m onitoru se pojavljuje okvir prikazan na
sljede}ojslici:

O vajokvir predstavlja osnovniprostor za rad sa M A TLA B-om .Prom pt ozna~ava da je


M A TLA B sprem an da odgovorina va{e pitanje.
O snovne m atem ati~ke operacije:
O PERA CIJA
sabiranje
oduzim anje
m no`enje
dijeljenje
stepenovanje

SIM BO L
+
*
/ili\
^

PRIM JER
5+3
23-11
3.14*0.85
56/8 = 8\56
5^2

Evo jednog jednostavnog prim jera:


N eka je potrebno izra~unati: 2+4+6. D a bi dobili rezultat dovoljno je otkucati i pritisnuti
Enter:
2+4+6
ans =
12
nakon ~ega M A TLA B daje rezultat(ans je skra}enica od engl.rije~iansw er).A ko je potrebno
izra~unatislede}iizraz:(4*25)+(6*22)+(2*99)kucam o niz naredbi:
3

MATLAB uputstvo za upotrebu

4*25+6*22+2*99
ans = 430
Zgodno je ova dva prim jera rje{itiuvo|enjem pom o}nih varijabliA ,B iC.Tada bise
rje{enje ova dva prim jera dobilo kucanjem sljede}eg niza naredbiu M A TLA B-u:
A=2
A=
2
B=4;
C=6
C=
6
D=A+B+C
D=
12
E=B*25+C*22+A*99
E=
430
O vdje su kreirane konstante A , B, C sa vrijednostim a 2, 4, 6. Treba prim jetiti da
sim bol";" u linijiprihvata rezultatbez njegovog ispisa na ekranu.
O svrnim o se sada ne neke osnovne osobine M A TLA B-a.Prilikom rada u kom andnom
prostoru,M A TLA B pam tisve naredbe koje su une{ene kao ivrijednostisvih varijablikoje se
u program u koriste.O ve naredbe ilivrijednostivarijablim ogu se vrlo jednostavno provjeriti.
N a prim jer,da biprovjerilivrijednostvarijable C potrebno je da to zatra`ite od M A TLA B-a
kucaju}iim e varijable nakon prom pta.
C
C=
6
U koliko postojipotreba da se provjere im ena neke od varijabliiliu krajnjem slu~aju
sve varijable potrebno je od M A TLA B-a zatra`itilistu varijablikoriste}inaredbu who.
who
Your variables are:
A
B
C
O davde je vidljivo da program ski paket M A TLA B ne daje vrijednosti ovih varijabli
ve} sam o njihova im ena.D a bidobilivrijednostneke od varijablipotrebno je nakon prom pta
otkucatinjeno im e.K od nekih verzija M A TLA B-a posljednja linija who naredbe daje podatak
o slobodnom prostoru kojizavisiod raspolo`ive m em orije ra~unara kojikoristite.

MATLAB uputstvo za upotrebu

Form atiza prikazivanje num eri~kih podataka


Priradu sa num eri~kim podacim a u M A TLA B-u va`e sljede}a pravila.A ko je rezultat
integerM A TLA B ga prikazuje kao integer.Isto tako,ako je podatak realan brojM A TLA B ga
prikazuje kao realan brojsa ~etiridecim alna m jesta.U sljede}ojtabelisu datiform atikojise
m ogu koristitiu M A TLA B-u.
form atlong
form atshorte
form atlong e
form athex
form atbank
form at+
form atrat
form atshort

35.833333333333334
3.5833e+01
3.583333333333334e+01
4041eaaaaaaaaaab
35.83
+
215/6
35.8333

16 cifara
5 cifara plus eksponent
16 cifara plus eksponent
hexadecim alni
dva decim alna m jesta
pozitivan,negativan ilinula
rac.aproksim acija
uobi~ajen form at

Treba prim jetitida M A TLA B ne m jenja unutra{nju konvenciju o zapisu broja kada se
koriste razli~itiform ati,ve} sam o prikazuje broju form atu kojije izabran.K ao iu bilo kojem
drugom program skom jeziku i u M A TLA B-u postoje izvjesna pravila pri kreiranju im ena
varijabli. K ao prvo, im e varijable m ora biti jedinstvena rije~ bez praznih m ijesta. U
M A TLA B-u nije svejedno da lise u im enu varijable pojavljuju m ala ilivelika slova.Tako na
prim jer,fruit,Fruit,FrU itiFRU IT su razli~ite varijable.N adalje,dopu{tena du`ina varijabli
je najvi{e 19 karaktera.Svikarakterinakon 19-og bi}e ignorisani.O bavezno je da varijabla
po~inje slovom , tj. da prvi karakter bude slovo iza kojeg m ogu da slijede slova, brojevi ili
sim bol"_".U M A TLA B-u postojinekoliko specijalnih varijabli:
ans
pi
eps
inf
N aN
i
realm in
realm ax

varijabla u koju se sm je{ta rezultatnakon izvr{ene operacije


brojpi
najm anjibrojkojidodan jedinicidaje brojsa pokretnim zarezom kojije ve}iod
jedan
beskona~na vrijednost (1 0 )
0/0 nedefinisana vrijednost(N ot-a-N um ber)
im aginarna jedinica
najm anjipozitivan realan broj
najve}ipozitivan realan broj

N akon definisanja varijable u M A TLA B-u m o`e se javiti potreba da se posm atrana
varijabla redefini{e, odnosno da joj se dodijeli neka druga vrijednost. Razm otrim o ovdje
sljede}ijednostavan prim jer:
A=2;
B=4;
C=6;
D=A+B+C
D=
12
5

MATLAB uputstvo za upotrebu

A ko sada redefini{em o npr.varijablu A izadam o jojvrijednost6:


A =6;
D
D=
12
vidim o da se rezultatnije prom jenio tj.da M A TLA B nije prihvatio une{enu prom jenu.D a bi
une{enu prom jenu M A TLA B prihvatio potrebno je koristiti neku od odgovaraju}ih naredbi
M A TLA B-a i zahtjevati ponovo izra~unavanje zadanog algoritm a. K asnije, kada budu
obja{njenim -fajlovi,bi}e obja{njen jednostavan na~in da se ponovo izvr{iredefinisanje grupe
M A TLA B-ovih varijabli.Sve ovo odnosise ina ranije navedene specijalne varijable.N akon
startovanja M A TLA B-a ovim varijablam a su dodjeljene vrijednosti navedene u prethodnoj
tabeli. U koliko redefini{ete ove varijable, novoune{ene vrijednosti ostaju sve dok se ove
varijable ne izbri{u ili M A TLA B ponovo ne startuje. Zbog svega ovoga se ne preporu~uje
redefinisanje specijalnih varijabliukoliko to nije neophodno.
V arijable u M A TLA B-ovom okru`enju se m ogu nepovratno izbrisati kori{tenjem
naredbe clear.Tako,na prim jernaredba:clear A bri{e varijablu A .N aredba:clear B C bri{e u
isto vrijem e varijable B iC,dok naredba:clear bri{e sve varijable iz okru`enja.O vdje treba
biti posebno pa`ljiv, jer M A TLA B ne zahtjeva da potvrdite ovu naredbu, nego je odm ah
izvr{ava, tj. bri{e sve varijable bez m ogu}nosti da se obrisane naredbe na bilo koji na~in
ponovo "o`ive".
A ko je u nizu M A TLA B-ovih naredbi potrebno ubaciti kom entar u svrhu lak{eg
pra}enja toka program a onda se iza naredbe M A TLA B-a ili odm ah iza prom pta navodi
sim bolpostotka (% )iza koga se pi{e kom entar.
n=10
n=
10

% n odre|uje du`inu niza

M A TLA B dopu{ta da u jednoj liniji bude napisano vi{e kom andi uz uslov da budu
odvojene sim bolom "," ili";".
A=2 ,B=4 ;C=6
A=
2
C=
6
U ovom slu~aju su varijable A i C prikazane u obliku rezultata, jer iza njh nije
naveden sim bol";".
M A TLA B m o`ete u svakom trenutku prekinutipritiskom Ctrl+C na tastaturi.A ko ste
zavr{ilisa radom otkucate quitiizlazite iz M A TLA B-a.
M atem ati~ke funkcije M ATLAB-a
M A TLA B nudi m no{tvo m atem ati~kih funkcija koje se koriste pri rje{avanju
problem a iz raznih oblastinauke.Lista m atem ati~kih funkcija koje podr`ava M A TLA B data
6

MATLAB uputstvo za upotrebu

je u sljede}oj tabeli. V elika olak{ica pri radu sa ovim program skim paketom je sli~nost sa
standardnom m atem ati~kom notacijom .
Lista m atem ati~kih funkcija:
abs (x)
acos (x)
acosh (x)
angle (x)
asin (x)
asinh (x)
atan (x)
atan2 (x,y)
atanh (x)
ceil(x)
conj(x)
cos (x)
cosh (x)
exp (x)
fix (x)

-apsolutna vrijednost
-arkus kosinus
-arkus kosinus hiperboli~ki
-ugao
-arkus sinus
-arkus sinus hiperboli~ki
-arkus tangens
-arkus tangens
-arkus tangens hiperboli~ki
-zaokru`ivanje prem a
-konjugovanibroj
-kosinus
-kosinus hiperboli~ki
- ex
-zaokru`ivanje ka nuli

floor(x)
im ag (x)
log (x)
log10 (x)
real(x)
rem (x,y)
round (x)
sign (x)
sin (x)
sinh (x)
sqrt(x)
tan (x)
tanh (x)
hiperboli~ki

-zaokru`ivanje prem a
-im aginarnidio
-prirodnilogaritam
-logaritam sa osnovom 10
-realnidio
-ostatak pridjeljenju
-najve}e cijelo
-signum funkcija
-sinus
-sinus hiperboli~ki
-kvadratnikorjen
-tangens
-tangens

Jo{ jedna velika prednost M A TLA B-a jeste m ogu}nost rada sa kom pleksnim
brojevim a.D a bism o to ilustrovalirazm otri}em o ovdje kvadratnu jedna~inu poznatog oblika:

ax 2 + bx + c = 0
Rje{enja ove jedna~ine su tako|erpoznata:
x1,2 =

b b 2 4ac
2a

Za a=1,b=5 ic=6,rje{enje postavljene jedna~ine dobija se na sljede}ina~in:

a=1; b=5; c=6;


x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x1 =
-2
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
x2 =
-3
a*x1^2+b*x1+c
%provjera rezultata
ans =
0
a*x2^2+b*x2+c
%provjera rezultata
ans =
0
Posljednje dvije linije u ovom algoritm u o~igledno slu`e za provjeru rezultata. K od
kvadratne jedna~ine sa ovako izabranim koeficijentim a diskrim inanta je bila ve}a od nule,te
7

MATLAB uputstvo za upotrebu

su rje{enja bila realna irazli~ita.Izaberim o sada za koeficijente jedna~ine sljede}e vrijednosti:


a=1,b=4 ic=13.Tada }e rje{enje jedna~ine biti:

a=1; b=4; c=13;


x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x1 =
-2.0000+3.0000i
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
x2 =
-2.0000-3.0000i
O vdje su x1 ix2 datiu kom pleksnom obliku,odnosno u obliku z=a+bi,gdje su a ib
realniiim aginarnidijelovikom pleksnog broja z,respektivno.
Evo nekoliko jednostavnih prim jera kom pleksnih brojeva ioperacija nad njim a:

c1=1-2i
c1 =
1.0000 - 2.0000i
c1=1-2j
c1 =
1.0000 - 2.0000i
c2= 3*( 2-sqrt ( -1 ) *3 )
c2 =
6.0000 - 9.0000i
c3=sqrt ( -2 )
c3 =
0 + 1.4142i
c4=6+sin( .5 )*i
c4 =
6.0000 + 0.4794i
c5=6+sin( .5 )*j
c5 =
6.0000 + 0.4794i
Iz ovih prim jera se vidi da M A TLA B ne pravi razliku u ozna~avanju im aginarne
jedinice, tj. svejedno m u je da li sm o je ozna~ili sa "i" ili sa "j". U nekim program skim
jezicim a operacije nad kom pleksnim brojevim a zadaju dosta m uke program erim a i rad sa
kom pleksnim brojevim a je prili~no m ukotrpan.Sa M A TLA B-om to nije slu~aj,jer se svaki
kom pleksan brojunosina sli~an na~in kao irealan.U sljede}em prim jeru je ilustrovan rad sa
kom pleksnim brojevim a priizvr{avanju nekih jednostavnih m atem ati~kih operacija:

check_it_out=i^2
% varijabla check_it_out
check_it_out =
-1.0000 + 0.0000i
check_it_out=real (check_it_out )
check_it_out =
-1
8

MATLAB uputstvo za upotrebu

U ovom je prim jeru pokazano kori{tenje naredbe real koja kao rezultat vra}a realni
dio kom pleksnog broja.K ao posljednjiprim jer,razm otrim o ovdje O jlerov obrazac.

a + ib = Me j
gdje su M -m oduo,a -argum entdatisa:
M = a2 + b2
b
= arctg( )
a
a = M cos
b = M sin

Prelaz sa pravougaonih na polarne koordinate iobrnuto vr{ise pom o}u naredbiabs,


angle,realiim ag :

c1=1-2i;
mag_c1=abs(c1)
%moduo kompleksnog broja
mag_c1 =
2.2361
angle_c1=angle(c1) %argument kompleksnog broja
angle_c1 =
-1.1071
deg_c1=angle_c1*180/pi
deg_c1 =
-63.4349
real_c1=real(c1)
real_c1 =
1
imag_c1=imag(c1)
imag_c1 =
-2
Kori{tenje H ELP-a
Program iranje u M A TLA B-u kao i u drugim program skim jezicim a zahtijeva
poznavanje ~itavog niza naredbi ovog program skog paketa. D a biste do{li do odre|ene
naredbe,M A TLA B vam m o`e pom o}ina trina~ina:
koriste}inaredbu help,
koriste}inaredbu lookfor,
koriste}ihelp interaktivno iz barm enija.
Kom anda help
K ori{tenje ove kom ande je najjednostavniji na~in da dobijete inform aciju o naredbi
koja vam je potrebna.N pr.:

help sqrt
SQRT Square root.
SQRT(X) is the square root of the elements of X. Complex
9

MATLAB uputstvo za upotrebu

results are produced if X is not positive.


See also SQRTM.

A li,na upit

help cows
cows not found.
M A TLA B jednostavno odgovara da o "cow s" ne zna ni{ta.N aredba help odli~no funkcioni{e
ukoliko ste M A TLA B-u eksplicitno zadalitem u ilinaredbu koja vas interesuje.H ELP tako|er
nudi i neke sm jernice koje m ogu korisno da poslu`e u potrazi za potrebnom naredbom .Za
ovo je dovoljno otkucati:
help
HELP topics:
toolbox\local
matlab\datafun
matlab\elfun
matlab\elmat
matlab\funfun
matlab\general
matlab\color
matlab\graphics
matlab\iofun
matlab\lang
matlab\matfun
matlab\ops
matlab\plotxy
matlab\plotxyz
matlab\polyfun
matlab\sounds
matlab\sparfun
matlab\specfun
matlab\specmat
matlab\strfun
matlab\dde
matlab\demos
toolbox\codegen
toolbox\control
toolbox\dspblks
toolbox\uitools
fuzzy\fuzzy
fuzzy\fuzdemos
toolbox\images
nnet\nnet
nnet\nndemos
toolbox\signal
simulink\simulink
simulink\simdemos
simulink\blocks
simulink:2sl

Local function library.


Data analysis and Fourier transform functions.
Elementary math functions.
Elementary matrices and matrix manipulation.
Function functions - nonlinear numerical methods.
General purpose commands.
Color control and lighting model functions.
General purpose graphics functions.
Low-level file I/O functions.
Language constructs and debugging.
Matrix functions - numerical linear algebra.
Operators and special characters.
Two dimensional graphics.
Three dimensional graphics.
Polynomial and interpolation functions.
Sound processing functions.
Sparse matrix functions.
Specialized math functions.
Specialized matrices.
Character string functions.
DDE Toolbox.
The MATLAB Expo and other demonstrations.
Real-Time Workshop
Control System Toolbox.
DSP Blockset.
User Interface Utilities.
Fuzzy Logic Toolbox.
Fuzzy Logic Toolbox Demos.
Image Processing Toolbox.
Neural Network Toolbox.
Neural Network Demonstrations and Applications.
Signal Processing Toolbox.
SIMULINK model analysis and construction functions.
SIMULINK demonstrations and samples.
SIMULINK block library.
SystemBuild 3.0 model import into SIMULINK.
10

MATLAB uputstvo za upotrebu

wavelet\wavelet
wavelet\wavedemo

- Wavelet Toolbox.
- Wavelet Toolbox Demos.

For more help on directory/topic, type "help topic".

Lista na va{em ra~unaru m o`e se unekoliko razlikovati od ove. U svakom slu~aju,


gornja lista vam daje m ogu}nost da vrlo brzo do|ete do kom ande koja vas interesuje.
K ori{tenjem direktno help kom ande postojim ogu}nostdobijanja povratne inform acije sam o
ako ste potpuno sigurnikoja naredba vam je potrebna.U koliko to niste preostala dva na~ina
m ogu bitiod velike pom o}i.
Lookfor kom anda
O va kom anda pretra`uje sve linije help-a ivra}a sam o one koje sadr`e klju~nu rije~
koju navedete.N pr.

lookfor complex
CPLXPAIR Sort numbers into complex conjugate pairs.
CONJ Complex conjugate.
IMAG Complex imaginary part.
REAL Complex real part.
CDF2RDF Complex diagonal form to real block diagonal form.
RSF2CSF Real block diagonal form to complex diagonal form.
CPLXDEMO Maps of functions of a complex variable.
CPLXGRID Polar coordinate complex grid.
CPLXMAP Plot a function of a complex variable.
GRAFCPLX Demonstrates complex function plots in MATLAB.
DSORT
Sort complex discrete eigenvalues in descending order.
ESORT
Sort complex continuous eigenvalues in descending order
LOGM2
LOGM2(X) is the matrix natural logarithm of X . Complex
CPLXICON Complex Icon function for SIMULINK Complex blocks.
SCPLXWKS DSP Blockset S-Function to store complex SIMULINK data in
workspace.
CCEPS
Complex cepstrum.
N aredba com plex nije M A TLA B-ova naredba, ali je na|ena u deskripciji nekoliko
M A TLA B-ovih naredbi.Ilina prim jer:

help conj
CONJ Complex conjugate.
CONJ(X) is the complex conjugate of X.
N a PC-u,help je dostupan u linijim enija sa opcijam a Table ofContents iliIndex.N a
ovajna~in otvarate M ATLAB H elp gdje dvostrukim klikom m i{a birate opciju ilinaredbu koja
vas interesuje.
O peracije sa poljim a
Sva dosada{nja razm atranja uklju~ivala su rad sa brojevim a, odnosno skalarim a i
operacije nad njim a. O peracije nad skalarim a su osnovne m atem ati~ke operacije. Sa druge
strane,ako je potrebno jednu te istu operaciju izvr{itinad vi{e od jednog skalara ponovljene
operacije bile bipovezane sa izvjesnim te{ko}am a.U pravo iz tih razloga se do{lo do pojm a
11

MATLAB uputstvo za upotrebu

polja (m atrica). M A TLA B sve varijable posm atra kao m atrice i sve operacije izvr{ava kao
m atri~ne operacije.Skalarisu sam o specijalan slu~ajm atrica dim enzija 1x1.
Prosta polja
Razm atrajm o ovdje prim jer sra~unavanja vrijednosti funkcije sinusa na polovini
perioda.Jasno je da je nem ogu}e izra~unati vrijednosti ove funkcije u svim ta~kam a datog
intervala (kojih im a beskona~no m nogo), ve} se ograni~avam o na kona~an broj ta~aka iz
datog intervala.U zm im o na prim jer da je korak diskretizacije 0.1 .M i bism o do rezultata
m oglido}ikucanjem posebno svake vrijednostiargum enta itra`itirezultat.O vo se m e|utim
m nogo br`e rje{ava kori{tenjem polja.D efinisanje polja je jednostavno:

x= [ 0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi ]


x=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
y=sin (x)
y=
Columns 1 through 7
0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
Columns 8 through 11
0.8090 0.5878 0.3090 0.0000
D ovoljno je otvoriti srednju zagradu, unijeti vrijednosti `eljenih ta~aka, odvojenih
m e|usobno razm acim a ilizarezim a,te zatvoritisrednju zagradu.M A TLA B sada "razum ije"
da `elite da vam izra~una sinus svakog elem enta iz x ida rezultattreba da bude sm je{ten u
polje y.O vo je fundam entalna razlika izm e|u M A TLA B-a iostalih program skih jezika.A ko
se kao elem ent polja unosi kom pleksan broj onda se on m ora unijeti kao jedinstven, bez
razm aka iliobjedinjen u m alojzagradi.N pr.polje [ 1 -2i 3 4 5+6i] sadr`ipetelem enata
dok polja [ (1 -2i) 3 4 5+6i] ili[ 1-2i 3 4 5+6i] sadr`e po ~etirielem enta.
Pristup elem entim a polja
U gornjem prim jeru je polje x sadr`avalo ukupno 11 elem enata.To je u stvarim atrica
vrsta, tj. m atrica sa jednom vrstom i 11 kolona ili jednostavno, prosto polje du`ine 11.
Pristup svakom elem entu polja je jednostavan. D ovoljno je otkucati im e polja i indeks
elem enta.

x(3)
ans =
0.6283
y(5)
ans =
0.9511

% treci element polja x


% peti element polja y

Pristup nizu elem enata polja m o`e se uraditina slede}ina~in:

x ( 1:5 )
ans =
0 0.3142 0.6283 0.9425 1.2566
y ( 3: -1 : 1)
12

MATLAB uputstvo za upotrebu

ans =
0.5878 0.3090

U prethodna dva prim jera,drugibroju m alojzagradio~igledno ozna~ava korak,s tim


{to negativan predznak zna~ida se elem entiuzim aju unazad.

x(2 : 2 : 7)
ans =
0.3142 0.9425 1.5708
N a ovajna~in sm o dobilidrugi,~etvrtii{estielem entpolja.

y ( [ 8 2 9 1] )
ans =
0.8090 0.3090 0.5878

U ovom prim jeru sm o koristilipolje [ 8 2 9 1 ] da bism o dobilielem ente polja y u


redosljedu koji m i `elim o. Preporuka je da ovdje uradite sam i nekoliko prim jera, te da
poku{ate pozvatipetnaestielem ent(kojine postoji),pa da vidite {ta }e M A TLA B uraditi.
D efinisanje polja
U jednom od ranijih prim jera polje sm o definisali prosto uno{enjem pojedinih
vrijednostielem enata polja.Tajprim jer je sadr`avao svega 11 vrijednosti.M e|utim , {ta da
je bilo potrebno unijeti111 vrijednosti? Evo dva na~ina kako ovo jednostavno uraditi;

x = ( 0 : 0.1 : 1 )*pi
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416

1.5708 1.8850

ili

x = linspace ( 0, pi, 11 )
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416

1.5708 1.8850

U prvom prim jeru definisano je polje koje po~inje od nule uve}ava se za 0.1 i
zaustavlja se kada poprim i vrijednost 1. Svaki elem ent polja je pom no`en sa pi da bi se
dobola `eljena vrijednostargum enta.U drugom slu~aju,kori{tena je M A TLA B-ova naredba
linspace sa sljede}om sintaksom :
linspace (po~etna_vrijednost,korak,krajnja_vrijednost)
U oba prethodna prim jera, definisana su polja kod kojih su elem enti linearno
uve}avani za pi. A ko je potrebno da skala elem enata bude logaritam ska onda se koristi
M A TLA B-ova naredba logspace:

logspace ( 0, 2, 11 )
ans =
Columns 1 through 7
13

MATLAB uputstvo za upotrebu

1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489


Columns 8 through 11
25.1189 39.8107 63.0957 100.0000
U ovom prim jeru je definisano polje ~iji je po~etni elem ent 100 , a krajnji 10 2 .
Sintaksa ove naredbe je:
logspace (po~etni_eksponent,posljednji_eksponent,broj_elem enata)
U slu~aju da je redosljed elem enata polja proizvoljan, defini{u se dva ili koliko je
potrebno polja koja se potom spajaju u jedinstveno polje. O vo se m o`e uraditi na sljede}i
na~in:

a=1 : 5, b=1 : 2 : 9
a=
1 2 3 4 5
b=
1 3 5 7 9
N a ovajna~in su definisana dva polja a ib.Treba prim jetitida su dvije linije sa`ete u
jednu tako {to su naredbe m e|usobno odvojene zarezom .Spajanje ova dva polja u jedno vr{i
se na sljede}ina~in:

c=[ba]
c=
1 3 5

d=[ a( 1:2:5 ) 1 0 1]
d=
1 3 5 1 0

N aredbom :

definisano je polje d koje sadr`i prvi, tre}i i peti elem ent polja a i elem ente 1,0 i 1.
M atem ati~ke operacije sabiranja, oduzim anja, m no`enja i dijeljenja polja sa skalarom
prim jenjuju se posebno na svakielem entpolja.Tako na prim jer:

a-2
ans =
-1 0

O vom naredbom je svaki~lan polja um anjen za dva.

2*a-1
ans =
1 3 5 7 9
ovom naredbom je svakielem entpom no`en sa dva iod svakog elem enta oduzeta jedinica.
O peracije sa poljim a
M atem ati~ke operacije sa poljim a su ne{to kom plikovanije od prethodno obja{njenih
operacija izm e|u skalara i polja, pogotovo ako su polja razli~ite du`ine. A ko su polja iste
14

MATLAB uputstvo za upotrebu

du`ine,operacije sabiranja,oduzim anja,m no`enja idijeljenja obavljaju se izm e|u elem enata
na istim pozicijam a u polju.Tako,na prim jer:

a, b
a=
1 2 3 4 5
b=
1 3 5 7 9
daje pregled polja a ib,a potom
a+b
ans =
2 5 8 11 14
sabira odgovaraju}e elem ente ism je{ta u ans.
ans-b
ans =
1 2 3 4 5
u ovom prim jeru je o~igledno ans=a.
2*a-b
ans =
1 1 1 1 1
U ovom slu~aju je svakielem entpom no`en sa dva iod svakog elem enta je oduzeta
vrijednostodgovaraju}eg elem enta polja b.M no`enje odgovaraju}ih elem enata ova dva polja
vr{ise kori{tenjem sljede}e naredbe:
a .* b
ans =
1 6 15 28 45
Elem entipolja a su pom no`enisa elem entim a polja b kojiim aju iste indekse.Za ovo
m no`enje je kori{ten operator ".*" M no`enje bez ta~ke odnosi se na m atri~no m no`enje.U
ovom konkretnim prim jeru m atri~no m no`enje (bez ta~ke uz operator"*")nem a sm isla.
a*b
??? Error using ==> *
Inner matrix dimensions must agree.
O pratordijeljenja elem enata jednog polja sa odgovaraju}im elem entim a drugog polja tako|er
zahtjeva kori{tenje ta~ke.

a ./b
ans =
1.0000 0.6667 0.6000
b .\a
ans =
1.0000 0.6667 0.6000

0.5714 0.5556
0.5714 0.5556

^esto je pri radu sa poljim a ovakvog tipa potrebno elem ente polja kvadrirati ili ih
stepenovati proizvoljnim eksponentom . I u ovom slu~aju se pored operatora stepenovanja
15

MATLAB uputstvo za upotrebu

m ora koristitiisim bol"." da bizadanioperatorstepenovanja bio prim jenjen na svakielem ent


polja posebno.Prim jer:

a .^ 2
ans =
1 4

16 25

O vdje je o~igledno svaki~lan polja a kvadriran.

2 .^ a
ans =
2 4

16 32

O vom naredbom je brojdva stepenovan redom sa svakim elem entom polja a.Evo jo{
nekih prim jera:

b .^ a
ans =
1
9
125
b .^ ( a - 3 )
ans =
1.0000 0.3333 1.0000

2401

59049

7.0000 81.0000

U prethodnim prim jerim a, polja koja su definisana sadr`avala su jednu vrstu i


nekoliko kolona, tj. u vektor-vrstu. Rezultat zadane operacije tako|er je bio sm je{ten u
vektor-vrstu. M A TLA B dopu{ta da se polje defini{e i kao vektor kolona tj. polje koje bi
sadr`avalo jednu kolonu inekoliko vrsta.K od definisanja izadavanja polja na ovajna~in sva
pravila ostaju na snazi,sam o {to su polje i rezultat prikazani kao vektor-kolone.Evo nekih
prim jera u kojim a su definisanivektor-kolone.

c=[1;2;3;4;5]
c=
1
2
3
4
5
O vdje treba prim jetiti da elem enti razdvojeni razm acim a ili zarezim a defini{u
elem ente jedne vrste,a vi{e kolona,dok elem entirazdvojenisim bolom ";" defini{u polje koje
~inijedna kolona inekoliko vrsta.

a=1:5
a=
1 2 3
b =a'
b=
1
2
3
4

16

MATLAB uputstvo za upotrebu

5
U posljednja dva prim jera je kori{ten sim bol" '" za transponovanje vektor-kolone u vektorvrstu iobratno.
Rad sa m atricam a
Po{to je m atrica osnovnielem entM A TLA B-a postojim nogo na~ina za m anipulisanje
i rad sa m atricam a. K ada se m atrica defini{e, odnosno unese u program , M A TLA B
om ogu}uje ~itav niz postupaka kojim a se unesena m atrica po voljim o`e m ijenjati.O vo je u
stvariklju~ za efikasno kori{tenje M A TLA B-a.O ve tem e sm o se m alo dotakliu prim jerim a
gdje je pokazan rad sa jednostavnim poljim a. D a bi ovo ilustrovali prelazim o odm ah na
prim jere:

A=[1 2 3;4 5 6; 7 8 9]
A=
1
4
7

2
5
8

3
6
9

D efinisana je m atrica A . U slu~aju da je potrebno prom jeniti neki od elem enata


definisane m atrice postupam o na sljede}ina~in:

A(3,3)=0
A=
1
4
7

2
5
8

3
6
0

gdje je o~igledno elem enttre}e vrste itre}e kolone pretvoren u nulu.

A(2,6)=1
A=
1
4
7

2
5
8

3
6
0

0
0
0

0
0
0

0
1
0

U ovom je prim jeru je na presjeku druge vrste i {este kolone generisana jedinica.
Po{to zadana m atrica nem a ovu dim enziju preostala m jesta su popunjena nulam a,tako da je
m atrica idalje ostala pravougaona.

A=[1 2 3;4 5 6; 7 8 9] ;
B=A(3: -1: 1 , 1 : 3)
B=
7
4
1

8
5
2

9
6
3
17

MATLAB uputstvo za upotrebu

N a ovaj na~in je kreirana m atrica B tako {to su vrste m atrice A uzete u obrnutom
redoslijedu.

B=A(3: -1: 1 , : )
B=
7
4
1

8
5
2

9
6
3

Efektove naredbe je istikao iprethodne.Sim bol":" ozna~ava da se naredba odnosina


sve kolone.To je,u stvariskra}ena notacija za 1:3.

C=[A B(: , [1 3] ) ]
C=
1
4
7

2
5
8

3
6
9

7
4
1

9
6
3

O vom naredbom je zadana m atrica C tako {to je desna strana m atrice A dopunjena
prvom itre}om kolonom m atrice B.

B=A( 1 : 2 , 2 : 3 )
B=
2
5

3
6

O vdje je definisana m atrica B,alitako {to je iz m atrice A izba~ena tre}a vrsta iprva
kolona.

C=[1 3]
C=
1

B=A(C , C)
B=
1
7

3
9

U ovom prim jeru je iskori{teno polje C za adresiranje m atrice A .O vdje je form irana
m atrica B tako {to je iz m atrica A izba~ena druga vrsta i druga kolona, odnosno m atrica
form irana od prve itre}e vrsta te prve itre}e kolone m atrice A .

18

MATLAB uputstvo za upotrebu

B=A( : )
B=
1
4
7
2
5
8
3
6
9
O vom naredbom m atrica A pretvorena u vektorkolonu.

B=B'
B=
1

O vdje je izvr{eno transponovanje m atrice B.

B=A
B=
1
4
7

2
5
8

3
6
9

B( : , 2 )=[ ]
B=
1
4
7

3
6
9

U ovom prim jeru je redefinisana m atrica B tako {to je iz zadane m atrice B izba~ena
druga kolona. K ada se ozna~i da je ne{to jednako praznoj m atrici ono biva obrisano,
naru{avaju}iujedno idim enzije m atrice.

B=B'
B=
1 4
3 6

7
9

B( 2 , : ) = [ ]
B=
1 4 7

19

MATLAB uputstvo za upotrebu

O vdje je o~igledno izba~ena druga vrsta m atrice B.

A( 2 , : ) = B
A=
1
1
7

2
4
8

3
7
9

O vdje je u drugu vrstu m atrice A uba~ena m atrica B.

B=A( : , [2 2 2 2] )
B=
2
4
8

2
4
8

2
4
8

2
4
8

Sada je m atrica B kreirana ~etverostrukim dupliranjem svih vrsta drugom kolonom m atrice A .

A( 2 , 2 )=[ ]
??? In an assignment A(matrix,matrix) = B, the number of rows in B
and the number of elements in the A row index matrix must be the same.
O va naredba nije dozvoljena. D im enzije m atrica sa obe strane jednakosti se m oraju
podudarati.U na{em slu~aju sa lijeve strane jednakostije skalar(m atrica dim enzija 1x1),a sa
desne strane prazan niz (m atrica dim enzija 0x0)te M A TLA B javlja gre{ku.

B=A( 4 , : )
??? Index exceeds matrix dimensions.
N iova naredba nije dozvoljena,jerm atrica A nem a ~etirivrste.

C( 1: 6 )=A( : , 2 : 3 )
C=
2

O vdje je kreiran vektorC ekstrakcijom itransponovanjem druge itre}e kolone m atrice A .


U slede}ih nekoliko prim jera bi}e pokazano kori{tenje relacionih operatora priradu sa
poljim a im atricam a.

x=-3:3
x=
-3 -2 -1

abs(x)>1
ans =
1 1 0

1
20

MATLAB uputstvo za upotrebu

U ovom prim jeru je definisan vektor x a kao rezultat su vra}ene jedinice na svim
m jestim a gdje je apsolutna vrijednostpojedinog ~lana ve}a od jedinice.

y=x(abs(x)>1)
y=
-3 -2 2 3
U prethodnom prim jeru je definisano polje y u koje su sm je{tenisvielem entiiz x ~ija
je apsolutna vrijednostve}a od jedinice.

y=x( [ 1 1 1 1 0 0 0 ] )
y=
-3 -2 -1 0
O vom naredbom su selektovana prva ~etirielem enta,dok su ostalizanem areni.A ko
ovu naredbu usporedim o sa slede}om :

y=x( [ 1 1 1 1 ] )
y=
-3 -3 -3 -3
onda se vidida je ovdje kreiran y tako {to je ~etiriputa ponovljen prvi~lan iz x.

y=x( [ 1 0 1 0 ] )
??? Index into matrix is negative or zero.
O va naredba nije dopu{tena jer elem enti polja u uglatoj zagradi predstavljaju indekse za
vektorx,a indeksine m ogu bitinegativniilinule.

x(abs(x)>1)=[ ]
x=
-1 0 1
Rezultatove naredbe je da su iz polja x izba~enisvielem enti~ija je apsolutna vrijednostve}a
od jedinice.O vajprim jer pokazuje da se relacionioperator m o`e koristiti i na lijevojstrani
gornje jednakosti.Sve {to je dosad navedeno va`iipriradu sa m atricam a.

b=[5 -3 ; 2 -4 ]
b=
5 -3
2 -4
x=abs(b)>2
x=
1 1
0 1
y=b(abs(b)>2)
y=
5
-3
-4
21

MATLAB uputstvo za upotrebu

Rezultat posljednje naredbe je sm je{ten u vektor kolonu, jer ne postoji na~in da se


form ira m atrica sa trielem enta.O vdje im a jo{ jedan pristup a to je kori{tenje naredbe find.

x=-3:3
x=
-3 -2 -1

k=find(abs(x)>1)
k=
1 2 6 7
U ovom slu~aju je od naredbe find zatra`eno da prona|e indekse elem enata ~ija je
apsolutna vrijednostve}a od jedan.
N aredba find tako|erfunkcioni{e ikod m atrica.

A=[1 2 3;4 5 6; 7 8 9]
A=
1 2 3
4 5 6
7 8 9
[i , j]=find(A>5)
i=
3
3
2
3
j=
1
2
3
3
Indeksiiijsu pom o}ne varijable ~ijim se kom binovanjem dolazido pozicije u m atrici
tj.indeksa elem enta kojije zadovoljio nejednakostpostavljenu u gornjojnaredbi.Tako npr.
prve vrijednostiindeksa iijdaju poziciju prvog elem enta kojije ve}iod pet,a to je elem ent
ne presjeku tre}e vrste iprve kolone.
A ko nam dim enzije m atrice,odnosno vektora nisu poznate,M A TLA B nudi naredbe
size ilength koje nam daju inform aciju o dim enzijam a m atrice.

A=[1 2 3 4;5 6 7 8]
A=
1 2 3 4
5 6 7 8
B=pi:0.01:2*pi;
s=size(A)
s=
2

4
22

MATLAB uputstvo za upotrebu

O vdje je vrijednost fukcije size definisana jednom varijablom , pa je kao rje{enje


vra}en vektor vrsta,gdje prvi ~lan daje podatak o broju vrsta a drugi o broju kolona.O sim
ovog na~ina m ogu}e je vrijednostfunkcije size definisatikao u sljede}em prim jeru.

[r,c]=size(A)
r=
2
c=
4
D vije izlazne varijable su sm je{tene u vektor kolonu. Elem enti im aju isto zna~enje kao i
m aloprije.
N aredba length kao rezultatvra}a brojkolona ilibrojvrsta u zavisnostiod toga da li
m atrica im a ve}ibrojvrsta ilikolona.

length(A)
ans =
4
size(B)
ans =
1 315
length(B)
ans =
315
Po{to vektor im a sam o jednu dim enziju u ovom slu~aju funkcija length kao rezultat
vra}a brojelem enata polja B.
Specijalne m atrice
U M A TLA B-u je m ogu}e definisati i neke specijalne m atrice,koje su od interesa u
raznim oblastim a nauke itehnike.

zeros(3)
ans =
0 0 0
0 0 0
0 0 0
O va naredba defini{e nula m atricu.

ones(2,4)
ans =
1 1 1
1 1 1

1
1

O vom naredbom je definisana m atrica jedinica.

23

MATLAB uputstvo za upotrebu

ones(3)*pi
ans =
3.1416 3.1416 3.1416
3.1416 3.1416 3.1416
3.1416 3.1416 3.1416
rand(3,1)
ans =
0.2190
0.0470
0.6789
O vim prim jerom je definisana m atrica ~iji su elem enti slu~ajni brojevi sa uniform nom
raspodjelom .

randn(2)
ans =
1.1650 0.0751
0.6268 0.3516
Elem entiove m atrice su slu~ajnibrojevisa norm alnom raspodjelom .

eye(3)
ans =
1 0 0
0 1 0
0 0 1
eye(3,2)
ans =
1 0
0 1
0 0
O vom naredbom je definisana jedini~na m atrica.
D jeljenje im no`enje m atrica je pokazano u slede}im prim jerim a

a=[1 3 -3;2 5 -1];


b=[2 1;-6 2;1 4];
a*b
ans =
-19 -5
-27 8
b*a
ans =
4 11 -7
-2 -8 16
9 23 -7
a/b
??? Error using ==> /
Matrix dimensions must agree.
D jeljenje m atrica a ib nije bilo m ogu}e izvr{itijerse dim enzije m atrica ne sla`u.
24

MATLAB uputstvo za upotrebu

c=[2 1;3 2];


d=[3 2;4 3];
c/d
ans =
2.0000 -1.0000
1.0000 0.0000
e=[3 5 2;1 3 2];
f=[2 1 4;-4 -3 1];
e*f
??? Error using ==> *
Inner matrix dimensions must agree.
M no`enje m atrica nije bilo m ogu}e izvr{itijerse dim enzije m atrica ne sla`u.
Prvobitna svrha M A TLA B-a je bila da pojednostavirad u m nogim oblastim a u kojim a
se prim jenjuju osnove linearne algebre. O vo se posebno odnosi na sistem e linearnih
jedna~ina.D a biilustrovaliovajposeban problem posm atrajm o prim jer:
1x1+2x2+3x3=366
4x1+5x2+6x3=804
7x1+8x2+0x3=351
O vajsistem se m o`e predstavitiiu m atri~nom obliku (m atri~nojjedna~ini)na slede}ina~in:
A x=b
O va m atri~na jedna~ina defini{e proizvod m atrice A ivektora x kojije jednak vektoru
b. Egzistencija rje{enja ovog sistem a i uop{te sistem a jedna~ina je fundam entalno pitanje
linearne algebre. U koliko je sistem rje{iv postoji m no{tvo pristupa kojim a se to rje{enje
nalazi.A naliti~ki,rje{enje ovog sistem a bibilo:
x=A -1b
Rje{enje ovog sistem a dobija se kucanjem sljede}eg niza naredbi:

A=[1 2 3;4 5 6;7 8 0]


A=
1 2 3
4 5 6
7 8 0
b=[366 ; 804 ; 351]
b=
366
804
351
K ao {to je ranije obja{njeno, m atrica A se m o`e unijeti na nekoliko na~ina. Za
prelazak u novu vrstu m o`e se koristiti sim bol ";" ili prelaz u novi red.V ektor b je vektor
kolona jer svakisim bol";" ozna~ava po~etak nove vrste.M o`e se pokazatida ovajproblem
im a jedinstveno rje{enje ako je determ inanta m atrice A razli~ita od nule.U ovom je prim jeru
det(A )=27 te }e rje{enje sistem a A x=b bitim ogu}e na}i.Jedan od na~ina jeste da se izra~una
inverzna m atrica A -1 :
x=inv (A)*b
x=
25.0000
22.0000
25

MATLAB uputstvo za upotrebu

99.0000
O vo rje{enje se m oglo dobitiina sljede}ina~in:
x=A\b
x=
25.0000
22.0000
99.0000
D rugo rje{enje tj.kori{tenje operatora "\" preporu~ljivije je od prethodnog.O vajna~in
rje{avanja zahtjeva m anji broj unutra{njih operacija m no`enja i dijeljenja, te je sam im tim
ovaj postupak br`i. Pogotovo se preporu~uje za sistem e sa ve}im brojem nepoznatih. U
slu~aju da M A TLA B ne m o`e na}irje{enje korektno,on javlja gre{ku.
G rafi~kiprikaz podataka
Jedna od m o`da najboljih osobina M A TLA B-a je ta {to im a veom a velike grafi~ke
m ogu}nosti.U M A TLA B-u postojivelik brojnaredbipom o}u kojih se grafi~ko prikazivanje
podataka m o`e prikazatiu dvije ilitridim enzije.U ra|enigraficim ogu bitisa~uvaniu nekom
od standardnih form ata i kao takvi biti kori{teni u nekim drugim program skim paketim a.
N ajjednostavnija naredba za prikazivanje podataka je naredba plot.Prika`im o ovdje funkciju:
y=sin(x) za x od 0 do 2 .Prvo je potrebno definisati interval sa kona~nim brojem ta~aka
izm e|u 0 i2 .

x = linspace ( 0, 2*pi, 30 );
y=sin ( x );
plot ( x, y )
nakon ~ega slijedigrafik:

26

MATLAB uputstvo za upotrebu

Ilina prim jerfunkcija:y=x 2 u intervalu od -2 do 2.

x =-2 : 0.01 : 2 ;
y=x.^2 ;
plot ( x , y )

K oriste}inaredbu plotm ogu}e je ivi{e grafika prikazatiodjednom .

x = linspace ( 0, 2*pi, 30 );
y=sin ( x );
z=cos ( x );
plot ( x, y, x, z )

27

MATLAB uputstvo za upotrebu

O zna~avanje grafika i osa u M A TLA B-u se posti`e naredbam a title,xlabel i ylabel.


Evo jednog prim jera gdje su ilustrovane ove naredbe:

x=-4*pi : pi/100 : 4*pi ;


y=sin ( x );
plot ( x , y )
title ( ' Grafik funkcije y=sin ( x ) ' )
xlabel ( ' vrijednosti promjenjive x ' )

Ta~ke na koje je podjeljen intervalu kom e se funkcija prikazuje,m ogu se posebno ozna~iti.

x = linspace ( 0, 2*pi, 30 );
y=sin ( x );
plot ( x , y , x , y , '+' )

28

MATLAB uputstvo za upotrebu

U ovom prim jeru je funkcija y=sin(x) crtana dva puta. Prvi put je dat standardan
prikaz date funkcije, nakon ~ega su vrijednosti funkcije na intervalu u kom e se posm atra
funkcija posebno ozna~ene. D a je u naredbi funkcije plot bio sam o jedan argum ent, to bi
zna~ilo da }e se vrijednosti nanositi sam o na ordinatu. U tom slu~aju, na apsisu se nanose
indeksielem enata (ta~aka )na koje je podjeljen intervalu kom e se posm atra zadana funkcija.
D odatni argum ent "+" defini{e kako }e se vr{iti crtanje. A ko je ovaj argum ent izostavljen,
grafik se crta tako {to se vr{ilinearna interpolacija izm e|u zadanih ta~aka.

x = linspace ( 0, 2*pi, 30 );
y=sin ( x );
plot ( x , y , '+' )

A ko se nakon otkucanih naredbiu M A TLA B-u grafik ne pojavina ekranu ra~unara,


treba na dnu ekrana kliknuti na ikonu "Figure N o. 1", nakon ~ega se grafik pojavljuje na
ekranu.
K ao {to je re~eno,M A TLA B m o`e grafik da prika`e iu trodim enzionalnom obliku.
Evo jednog prim jera:

plot3 ( y , z , x ) , grid

29

MATLAB uputstvo za upotrebu

U dosada{njim prim jerim a graficisu prikazivanipreko cijelog ekrana.U M A TLA B-u


postojim ogu}nostida se nacrta vi{e razli~itih grafika na jednom ekranu (m aksim alno 4),za
{ta se koristinaredba subplot koja se navodiprije naredbe za crtanje.O p{tioblik ove naredbe
je:
subplot(m np)
{to zna~ida }e se ekran podjelitina m dijelova po horizontali,n dijelova po vertikaliiteku}i
grafik }e se nacrtati u p-tom dijelu.N a slede}oj slici je ilustrovano na koji se na~in koristi
subplotda bise ostvarile razli~ite podjele ekrana.

subplot(221)

subplot(222)
subplot(121)

subplot(223)

subplot(122)

subplot(224)

subplot(211)

subplot(212)

N aredbe za rad sa tekstom


Pored M A TLA B-ove prvenstveno m atem ati~ke orjentacije, on posjeduje i neke
naredbe za m anipulisanje tekstom . U M A TLA B-u se tekst jednostavno naziva stringovim a.
Rad sa ovakvim stringovim a je sli~an radu sa prostim poljim a.

t='How about this character string?'


t=
How about this character string?
Tekstse unosiizm e|u navodnih znakova.A ko je potrebno izdvojitidio teksta unutar stringa
onda se to radisljede}om naredbom :

u=t(16:24)
u=
character
30

MATLAB uputstvo za upotrebu

N a ovaj na~in je iz teksta izdvojena rije~ character. O vu rije~ je m ogu}e dobiti i u


obrnutom redoslijedu:

u=t(24:-1:16)
u=
retcarahc
K ao ikod m atrica tekstse m o`e sastojatiiiz nekoliko vrsta.

v=[ 'Character strings having more than '


'one row must have the same number '
'of coloumns just like matrices!
']
v=
Character strings having more than
one row must have the same number
of coloumns just like matrices!
pri~em u brojkolona m ora bitijednak.
N ad stringovim a je tako|er m ogu}e vr{itiim atem ati~ke operacije kao ipredstavitiih
u A SCIIkodu.D a bido{lido A SCIIkoda stringa koristim o apsolutnu vrijednost:

s='ABCDEFG'
s=
ABCDEFG
m=abs( s )
m=
65 66 67 68 69 70 71
m=s+0
m=
65 66 67 68 69 70 71
Povratak iz A SCIIkoda vr{ise na sljede}ina~in:

setstr (m)
ans =
ABCDEFG
n=s+5
n=
70 71 72 73 74 75 76
setstr (n)
ans =
FGHIJKL

31

MATLAB uputstvo za upotrebu

m -fajlovi
Iz dosada{njeg izlaganja se vidi da M A TLA B odgovara na va{ postavljeni zadatak
onim redoslijedom kako je to od njega zatra`eno.N a neke jednostavne problem e M A TLA B
efikasno odgovara nakon {to otkucam o odre|enu sekvencu naredbi.U slu~aju ve}eg broja
ovakvih naredbi, pogotovo ako je neko izra~unavanje potrebno nekoliko puta vr{iti za
razli~ite vrijednostiparam etara program a,onda ovakav posao postaje m ukotrpan.Zbog ovoga
se u M A TLA B-u koriste m -fajlovi.Postupak je jednostavan.Program ska sekvenca koja bise
ina~e unosila nakon M A TLA B-ovog prom pta,sada se unese u m -fajlikao takav sa~uva.D a
bise kreirao m -fajlbira se opcija New iz File m enija iselektuje M -file.

M -fajlovi su u stvari fajlovi sa ekstenzijom m. N akon {to je une{en i sa~uvan fajl se


jednostavno izvr{ava kucanjem njegovog im ena iza m atlabovog prom pta.

ime.m
N akon ovoga M A TLA B prate}i linije program a vr{i izra~unavanje, u zavisnosti od
param etara kojisu une{eniu program .Prilikom dodjeljivanja im ena fajlu treba pazitida im e
ne bude identi~no nekoj M A TLA B-ovoj naredbi,jer ona im a prioritet nad im enom m fajla.
A ko je potrebno im ati pregled izvr{avanja toka program a onda se naredbom echo on to i
om ogu}uje. O vaj tip fajlova je tako|er pogodan za uno{enje polja ve}ih dim enzija, npr.
rezultata laboratorijskih m jerenja.N a ovajna~in su podacisa~uvani,a jednostavno m ogu ida
se prom jene.M A TLA B posjeduje nekoliko naredbikoje nam daju inform aciju o broju ovih
fajlova,te naredbe za brisanje,prelazak u nekidrugidirektorij,itd...

32

MATLAB uputstvo za upotrebu

Pisanje funkcija u M ATLAB-u


Prilikom kori{tenja M A TLA B-ovih funkcija kao {to su abs,angle,sqrt,M A TLA B je
koristio varijable koje sm o sam i zadavali nakon ~ega je slijedio rezultat. O sim ovoga m i
m o`em o sam i da kreiram o funkciju, pohranim o je kao m -fajl i nakon toga je pozivam o i
izvr{avam o.

function y=fakt(n)
if n<0
disp('Gre{ka. Faktorijel negativnog broja nije definisan')
y=[ ]
return
end
y=1;
ind=n;
while (ind>0),
y=y*ind;
ind=ind-1
end
O vajfajlse zatim sa~uva kao fakt.m ipoziva se kucanjem im ena (fakt).N eophodno je
da im e m -fajla bude identi~no im enu funkcije. A ko je potrebno neke vrijednosti unijeti sa
tastature onda se koristi naredba input. K ori{}enje ove naredbe najlak{e je objasniti na
slede}em prim jeru: pretpostavim o da je potrebno nacrtati funkciju y = x 2 na proizvoljnom
intervalu [a ,b] sa proizvoljnim korakom . V rednosti a, b kao i vrednost koraka unose se sa
tastature u toku izvr{avanja program a.Rje{enje u M A TLA B-u je:
%program za crtanje funkcije y=x*x na proizvoljnom intervalu
a=input('Pocetak intervala (a): ');
%unosi se a sa tastature
b=input('Kraj intervala (b): ');
%unosi se b sa tastature
korak=input('korak iznosi: ');
%unosi se korak sa tastature
x=a:korak:b;
y=x.^2;
plot(x,y)
title('Grafik funkcije y=x*x, na intervalu a<x<b'),
xlabel('Nezavisno promjenjiva x'),ylabel('Zavisno promjenjiva y')

a=-5
b=5
korak=0.01

33

MATLAB uputstvo za upotrebu

M A TLA B se m o`e koristiti i pri obradi podataka kao i setova podataka. Po svojoj
unutarnjoj konvenciji ovi setovi su sm je{teni u m atrice-kolone. Svaka kolona predstavlja
razli~ite vrijednosti m jerene varijable. N pr. pretpostavim o da su dnevne tem perature za tri
razli~ita grada date u m -fajlu tem ps. Startovanjem ovog fajla dobijam o tem perature u
M A TLA B-ovom okru`enju.

temps =
12 8
15 9
12 5
14 8
12 6
11 9
15 9
8 10
19 7
12 7
14 10
11 8
9 7
8 8
15 8
8 9
10 7
12 7
9 8
12 8
12 8
10 9
13 12
9 10
10 6
14 7
12 5
13 7
15 10
13 11
12 12

18
22
19
23
22
19
15
20
18
18
19
17
23
19
18
20
17
22
19
21
20
17
18
20
22
21
22
18
23
24
22

d=1:31;
plot(d,temps)
xlabel('Dan u mjesecu'),ylabel('Stepeni celzijusa')
title('Najvise dnevne temperature za tri grada')

34

MATLAB uputstvo za upotrebu

plot naredba u ovm prim jeru je kao argum entim ala m atricu tem ps.Rezultatovoga je
grafi~kiprikaz vrijednostitem peratura svake kolone posebno.
Relacioniilogi~kioperatori
O vioperatorisu ~esto kori{teniu oblastim a program iranja.O nikojisu se vi{e bavili
program iranjem upoznatisu sa ovim .Svrha ovih operatora je u stvarida odgovore na pitanje
da lije ne{to ta~no ilineta~no.^esta upotreba ovih operatora jeste u petljam a,o kojim a }e biti
rje~ine{to kasnije.Izlazna vrijednostovih operatora jeste "1",ako je izraz ta~an,odnosno "0",
ako izraz nije ta~an.
Relacionioperatori
Relacionioperatorikojise koriste u M A TLA B-u datisu u slijede}ojtabeli
<
>=
>
>=
==
~=

-m anjiod
-m anjiilijednak
-ve}iod
-ve}iilijednak
-jednak
- razli~itod

Relacionioperatorim ogu se koristitiza upore|ivanje dvaju polja iste du`ine,kao iza


upore|ivanje polja skalarom .U ovom slu~aju se svakielem entpolja upore|uje sa skalarom i
kao rezultatse dobija polje iste du`ine.

A=1:9,B=9-A
A=
1 2 3 4
B=
8 7 6 5

0
35

MATLAB uputstvo za upotrebu

tf=A>4
tf =
0 0

U posljednjem prim jeru su m jesta na kojim a je zadovoljena nejednakost prikazana


jedinicam a.

tf=A==B
tf =
0 0 0

Tra`eni elem enti polja A su ekvivalentni elem entim a polja B. Treba uo~iti razliku
izm e|u znaka jednakostiidvostrukog znaka jednakosti.D vostrukiznak jednakostiupore|uje
dvije varijable ikao rezultatvra}a jedinicu ako su one jednake ilinulu ako su razli~ite.

tf=B-(A>2)
tf =
8 7 5

0 -1

V idim o da se operatorim ogu koristitiiprim atem ati~kim operacijam a.Elem ente polja
je m ogu}e zam ijenjiti specijalnim M A TLA B-ovim brojem eps, koji iznosi aproksim ativno
2.2exp(-16).O va konkretna vrijednostje ponekad korisna da bise izbjeglo djeljenje sa nulom .

B=B+(B==0)*eps
B=
Columns 1 through 7
8.0000 7.0000 6.0000
Columns 8 through 9
1.0000 0.0000

5.0000 4.0000 3.0000

2.0000

Slede}iprim jerizra~unava vrijednostifunkcije sinc(x)uz upozorenje da je petibrojnula.

x=(-3:3)/3
x=
-1.0000 -0.6667 -0.3333
sin(x)./x
Warning: Divide by zero
ans =
0.8415 0.9276 0.9816

0 0.3333

NaN

0.6667 1.0000

0.9816 0.9276 0.8415

Po{to izraz 0/0 nije definisan dobijam o upozorenje NaN,sa zna~enjem N ota num ber.
A ko se sada nula zam jenisa eps

x=x+(x==0)*eps;
sin(x)./x
ans =
0.8415 0.9276 0.9816

1.0000 0.9816 0.9276

rezultatje korektan.

36

0.8415

MATLAB uputstvo za upotrebu

Logi~kioperatori
Logi~kioperatorise koriste za kom binovanje sa relacionim iliza njihovo negiranje.
&
|
.~

-logi~ko "i"
- logi~ko "ili"
- negacija

Evo nekoliko prim jera

A=1:9;B=9-A;
tf=A>4
tf =
0 0 0 0

tf=~(A>4)
tf =
1 1 1

tf=(A>2)&(A<6)
tf =
0 0 1 1 1

U posljednjem prim jeru su kao rezultatvra}ene jedinice za elem ente kojisu ve}iod
dva i m anji od {est. N a ovaj na~in je m ogu}e generisati dio neke funkcije tako {to se
vrijednosti koje `elim o da zadr`im o m no`e sa jedinicom , a one koje ne `elim o sa nulom
(preporu~ujem o da ovo uradite u obliku m -fajla).

x=linspace(0,10,100);
y=sin(x);
z=(y>=0).*y;
z=z+0.5*(y>0);
z=(x<=8).*z;
plot(x,z)
xlabel('x'),ylabel('z=f(x)'),
title( 'Diskontinualna funkcija')

37

MATLAB uputstvo za upotrebu

K ao dodatak gore navedenim relacionim ilogi~kim operatorim a M A TLA B posjeduje


tako|e niz relacionih ilogi~kih funkcija:
xor(x,y)
any(x)
vrijednosti
all(x)
isnan(x)
isinf(x)
finite(x)

-ex-ilioperacija
-vra}a jedinicu ako je bilo kojielem entvektora x nenulte vrijednostiili
vra}a jedinicu za svakielem entneke m atrice x kojije nenulte
-vra}a jedinicu ako su svielem entivektora x razli~itiod nule.O vo se
odnosiina elem ente kolona m atrica
-vra}a jedinicu na m jestu elem enta NaNs
-vra}a jedinicu na m jestu elem enta Infs
-vra}a jedinicu na m jestu elem enta kona~ne vrijednosti.

Kontrolne petlje
Razni program ski jezici nude m no{tvo struktura koje om ogu}uju kontrolu toka
program a.M A TLA B nuditrivrste ovakvih petlji:
forpetlje
w hile petlje
if else end strukture
Zbog njihovog ~estog kori{tenja one se sm je{taju u mfajlove,jer je na tajna~in izbjegnuta
potreba za stalnim ponovnim uno{enjem ovih struktura.
For petlje
O vajtip petljiom ogu}uje da se neka grupa naredbiizvr{iunapred definisan brojputa.
Sintaksa ove petlje je sljede}a:

for x=(a:inkrement:b)
blok naredbi
end
for n=1:10
x(n)=sin(n*pi/10);
end
x
x=
Columns 1 through 7
0.3090 0.5878 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000

0.9511 1.0000 0.9511

0.8090

Forpetlja se ne m o`e ograni~iti,odnosno prekinutiredefinisanjem prom jenjive unutarsam e


petlje.

for n=1:10
x(n)=sin(n*pi/10);
n=10;
end
38

MATLAB uputstvo za upotrebu

x
x=
Columns 1 through 7
0.3090 0.5878 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000

0.9511 1.0000 0.9511

U okviru forpetlje se m o`e definisatibilo kakvo polje

data=[3 9 45 6; 7 16 -1 5]
data =
3 9 45 6
7 16 -1 5
for n=data
x=n(1)-n(2)
end
x=
-4
x=
-7
x=
46
x=
1
Tako|erm ogu da se koriste iugnije`dene forpetlje

for n=1:5
for m=5:-1:1
A(n,m)=n^2+m^2;
end
disp(n)
end
1
2
3
4
5
A
A=
2
5
10
17
26

5
8
13
20
29

10
13
18
25
34

17
20
25
32
41

26
29
34
41
50

39

0.8090

MATLAB uputstvo za upotrebu

For petlje treba izbjegavati kad god je do rje{enja m ogu}e do}i kori{tenjem m atri~nog
pristupa.O ba pristupa vode istom rje{enju,alije drugibr`iizahtjeva ~esto m anje kucanja.
W hile petlje
Sintaksa ove petlje je
w hile izraz
blok naredbi
end
Blok naredbiizm e|u w hile iend se izvr{ava dok god je izraz istinit.
num=0;EPS=1;
while (1+EPS)>1
EPS=EPS/2;
num=num+1;
end
num
num =
53
EPS=2*EPS
EPS =
2.2204e-016

U ovom prim jeru je prikazan jedan od na~ina izra~unavanja vrijednostieps.Eps kre}e


od jedinice i sve dok je uslov (1+EPS)>1 zadovoljen naredbe unutar w hile petlje se
izvr{avaju.Eps se stalno djelisa dva ikada postane tako m alida (eps+1) vi{e nije ve}e od
jedinice petlja se zavr{ava. O vo se de{ava zbog ograni~enog broja decim alnih m jesta
predvi|enih za predstavljanje realnog broja.
If-else-end strukture
Sintaksa:
ifizraz
blok naredbi
end
N pr.
a=10;
c=a*25
c=
250
if a>5
c=(1-20/100)*c;
end
c
c=
200
U slu~aju da postojiidruga alternativa ova struktura im a sljede}ioblik
ifizraz
blok naredbikoje se izvr{avaju ako je izraz istinit
else
blok naredbikoje se izvr{avaju ako je izraz nije istinit
40

MATLAB uputstvo za upotrebu

end
Rje{eniprim jeri
Prim jer 1: G enerisanje signala
G enerisati i nacrtati 128 odm jeraka diskretne kosinusoide sa am plitudom 50,
frekvencije 50 H z ifaznim uglom = 4 .Frekvencija odm jeravanja je 8 kH z .U zetida je
po~etnivrem enskitrenutak t=0.
Rje{enje:
Rje{enje u M atlab-u je:
A=50;f=50;ugao=pi/4;
fod=8000;Tod=1/fod;
tpoc=0;
t=tpoc:Tod:127*Tod;
y=A*cos(2*pi*f*t+ugao);
subplot(211),plot(t,y),title('Kontinualni signal'),pause
subplot(212),stem(t,y),title('Diskretni signal')

Prim jer 2: O dabiranje signala (1)


D at je kontinualan signal x(t ) = sin (2f 0t + 6 ) . Ako je frekvencija sinusoide
f 0 = 300 Hz a frekvencija odabiranja f s = 8 kHz , izvr{iti odabiranje ovog signala na
intervalu 0 1 ms .Koriste}inaredbe plotistem ,nacrtatijedan ispod drugog kontinualan
idiskretan signal.
Rje{enje:
Rjesenje u M atlab-u je:
fs=8000;Ts=1/fs;
% frekvencija i perioda obrtanja
fo=300;fi=pi/6;
% frekvencija sinusoide i fazni ugao
Tpoc=0;Tkraj=0.01;
% pocetni i krajnji vremenski trenutak
t=Tpoc:Ts:Tkraj;
% definisanje trenutaka odabiranja
x=sin(2*pi*fo*t+fi);
% diskretna sinusoida
%%%% simulacija kontinualnog signala crtanjem pomocu naredbe plot
subplot(211),plot(t,x,'w'),xlabel('vremenska osa (sec)')
title('Kontinualna funkcija x(t)=sin(2pi*fo*t+pi/6), fo=300Hz')
n=0:length(x)-1;
% osa indeksa za crtanje diskretnog signala
subplot(212),stem(n,x),xlabel('osa indeksa (n)')
title('Diskretna funkcija x[nT]=sin(2pi*fo*n*T), fo=300Hz, fs=8000Hz')
41

MATLAB uputstvo za upotrebu

Prim jer 3: O dabiranje signala (2)


D ata je kontinualna kosinusoida x(t ) = cos(2f 0 t )
a) Ako je frekvencija odabiranja f s = 8 kHz izvr{iti odabiranje u intervalu 0-1 m s
m ijenjaju}ifrekvenciju signala:
f 01 = 100 Hz , f 02 = 225Hz
.
f 03 = 350 Hz i f 04 = 475Hz
Nacrtatisva 4 slu~aja na istom ekranu.
b)Ponovitipostupak za
f 05 = 1000 Hz , f 06 = 2000 Hz
.
f 07 = 4000 Hz , f 08 = 8000 Hz
Koristitiplotnaredbu za crtanje.
Rje{enje:
fs=8000;Ts=1/fs;
f1=100;f2=225;f3=350;f4=475;
f5=1000;f6=2000;f7=4000;f8=8000;
Tstart=0;Tend=0.01;
t=Tstart:Ts:Tend;
subplot(221),plot(t,cos(2*pi*f1*t)),title('100 Hz ,odmjeravanje sa 8 kHz');
subplot(222),plot(t,cos(2*pi*f2*t)),title('225 Hz ,odmjeravanje sa 8 kHz');
subplot(223),plot(t,cos(2*pi*f3*t)),title('350 Hz ,odmjeravanje sa 8 kHz');
subplot(224),plot(t,cos(2*pi*f4*t)),title('475 Hz ,odmjeravanje sa 8 kHz');
figure
subplot(221),plot(t,cos(2*pi*f5*t)),title('1000 Hz ,odmjeravanje sa 8 kHz');
axis([0 0.002 -1.1 1.1]);
subplot(222),plot(t,cos(2*pi*f6*t)),title('2000 Hz ,odmjeravanje sa 8 kHz');
axis([0 0.001 -1.1 1.1]);
subplot(223),plot(t,cos(2*pi*f7*t)),title('4000 Hz ,odmjeravanje sa 8 kHz');
axis([0 0.001 -1.1 1.1]);
subplot(224),plot(t,cos(2*pi*f8*t)),title('8000 Hz ,odmjeravanje sa 8 kHz');
axis([0 0.001 -1.1 1.1]);

42

MATLAB uputstvo za upotrebu

43

MATLAB uputstvo za upotrebu

Prim jer 4: Frekvencijskim odulisan signal


Neka je dat frekvencijski m odulisan signal x(t ) = sin(2f (t )t ) ~ija se frekvencija
m ijenja linearno po zakonu f (t ) = at + b ,gdje je a = 50 Hz s i b = 10 Hz .
a) Ako se signal x(t) posm atra u vrem enskom intervalu od 0 do 0,5s odrediti
frekvencijski opseg koji obuhvata ovaj signal. O drediti m inim alnu frekvenciju odabiranja
f s min tako da se izvr{ipravilna diskretizacija ovog signala.
b) Ako je frekvencija odabiranja 1200H z nacrtatitako diskretizovan signal.Koristiti
plotnaredbu.
c)Ponovitiprethodnipostupak sa frekvencijom odabiranja od 40H z.
Rje{enje:
clear
fs=1200;Ts=1/fs;
t=0:Ts:0.5;
f=50*t+10;
x=sin(2*pi*f.*t);
subplot(211),plot(t,x)
title('Signal diskretizovan sa 1200 Hz');
fs=40;Ts=1/fs;
t=0:Ts:0.5;
f=50*t+10;
y=sin(2*pi*f.*t);
subplot(212),plot(t,y)
title('Signal diskretizovan sa 40 Hz');

44

MATLAB uputstvo za upotrebu

Prim jer 5: Kom pleksnisignali


G enerisati kom pleksnu eksponencijalnu sekvencu e [n] = A e j (n + )

frekvencije

f = 0.05 ,am plitude A=3 ipo~etne faze 3 .


Rje{enje:
n=0:150;
f=0.05;
omega=2*pi*f;
A=3;
faza=pi/3;
e=A*exp(j*(omega*n+faza));
subplot(211),stem(n,real(e));
title('Realni dio'),xlabel('indeks (n)')
subplot(212),stem(n,imag(e));
title('Imaginarni dio'),xlabel('indeks (n)')

Prim jer 6: Ra~unanje konvolucije


Izra~unatikonvoluciju signala:
x1 = [4 3 - 6 8 - 4 2 - 2 5 6 - 1 - 7 6 2 9 - 1 2 - 7 8 1 2 1 - 3 - 1 - 5 3 - 2 1 5 - 6 - 3 2 5]
x 2 = [1 1 - 1 2 - 4 6 1 - 3 2 - 4 - 8 2 7 - 5 - 1 2 1 3 7 - 3 - 5 - 2 2 - 5 1 - 7 4 - 8 5 6 7 - 4]
Rje{enje:
x1=[4 3 -6 8 -4 2 -2 5 6 -1 -7 6 2 9 -1 2 -7 8 1 2 1 -3 -1 -5 3 -2 1 5 -6 -3 2 5];
x2=[1 1 -1 2 -4 6 1 -3 2 -4 -8 2 7 -5 -1 2 1 3 7 -3 -5 -2 2 -5 1 -7 4 -8 5 6 7 -4];
y=conv(x1,x2);
Nx1=length(x1);
Nx2=length(x2);
Ny=Nx1+Nx2-1;
nx1=0:Nx1-1;
nx2=0:Nx2-1;
ny=0:Ny-1;
subplot(221),stem(nx1,x1),title('Signal x1'),xlabel('n')
axis([0 33 -10 10])
subplot(222),stem(nx2,x2),title('Signal x2'),xlabel('n')
axis([0 33 -10 10])
subplot(212),stem(ny,y),title('Konvolucija signala x1 i x2'),xlabel('n')
axis([0 65 -400 400])

45

MATLAB uputstvo za upotrebu

Prim jer 7: Teorem a o konvoluciji


Provjerititeorem u o konvolucijina prim jeru nizova:
x = [2 5 - 1 3 - 2] i y = [1 - 1 2 3 - 3 - 2 - 3 4 2 - 1]
idobijene rezultate predstavitigrafi~ki.
Rje{enje:
Jedno od rje{enja je
x=[2 5 -1 3 -2];
y=[1 -1 2 3 -3 -2 -3 4 2 -1];
x1=length(x);
x0=0:x1-1;
subplot(221),stem(x0,x),title('Signal x');
y1=length(y);
y0=0:y1-1;
subplot(222),stem(y0,y),title('Signal y');
zconv=conv(x,y);
t=length(zconv);
t0=0:t-1;
subplot(223),stem(t0,zconv),title('Konvolucija signala x i y')
axis([0 14 -30 30])
x2=[x zeros(1,t-x1)];
y2=[y zeros(1,t-y1)];
X=fft(x2);
Y=fft(y2);
Z=X.*Y;
z=ifft(Z);
z1=real(z);
subplot(224),stem(t0,z1)
title('Konvol. signala dobijena primjenom teoreme o konvoluciji')
axis([0 14 -30 30])
46

MATLAB uputstvo za upotrebu

Prim jer 8: Im pulsniodziv sistem a


Izra~unatiinacrtati64 odm jerka im pulsnog odziva sistem a kojije opisan sa
y (n ) + 0 ,9 y (n 2 ) = 0 ,3 x(n ) + 0 ,6 x(n 1) + 0 ,3 x(n 2 )
Rje{enje:
a=[1 0 0.9];
b=[0.3 0.6 0.3];
impuls=[1 zeros(1,64)];
h=filter(b,a,impuls);
n=0:length(h)-1;
stem(n,h),title('Impulsni odziv'),xlabel('indeks n');

47

MATLAB uputstvo za upotrebu

Prim jer 9: D igitalnifilter


Na ulaz sistem a opisanog jedna~inom diferencija
y (n ) + 1,9 y (n 1) + 1,5 y (n 2 ) + 0 ,4 y (n 3) = 0 ,1x(n ) + 2 x(n 1) + 0 ,5 x(n 2 ) + 0 ,1x(n 3)
dovesti 256 odm jeraka sinusoide ~ija je kru`na frekvencija 0 = 16 a faza = 2 3 .
Nacrtati, jedan ispod drugog, u istoj razm jeri, signale na ulazu i izlazu, od 128 do 255
odm jerka.
Rje{enje:
n=0:255;
omega=pi/16;
a=[1 1.9 1.5 0.4];
b=[0.1 2 0.5 0.1];
x=sin(omega*n+2*pi/3);
y=filter(b,a,x);
subplot(211),stem(n(128:255),x(128:255));
title('Signal na ulazu u fiter');
xlabel('osa indeksa n'),axis([128 255 -1.1 1.1]);
subplot(212),stem(n(128:255),y(128:255));
title('Signal na izlazu filtra');
axis([128 255 -1.1 1.1]);

Prim jer 10: Izra~unavanje im pulsnog odziva digitalnog filtra


Jedan digitalnifilter opisan je slede}om funkcijom prenosa:
1 + 2 z 1 + 2 z 2
H ( z ) = 0.067569
.
1 1.1421z 1 + 0.41421z 2
a)Izra~unatiinacrtatiu M atlab-u im pulsniodziv ovog filtra u 50 ta~aka.
b)Na ulaz filtra se dovodi128 odbiraka signala
x(t ) = cos(2F1t ) + cos(2F2t ) + cos(2F3t ) ,
F1=500 H z,F2=750 H z,F3=3000 H z
Signal je diskretizovan sa frekvencijom odabiranja FS=10 kH z.Izra~unati i nacrtati
signalna izlazu.
c)Nacrtatispektre signala na ulazu iizlazu filtra.

48

MATLAB uputstvo za upotrebu

Rje{enje:
%%%% a)
b=0.067569*[1 2 1];a=[1 -1.1421 0.4142];
impuls=[1 zeros(1,49)];h=filter(b,a,impuls);
stem(h),title('Impulsni odziv filtra')
pause
%%%% b)
clg
N=128;
b=0.067569*[1 2 1];a=[1 -1.1421 0.4142];
F1=500;F2=750;F3=3000;Fs=5000;
n=0:N-1;
f1=F1/Fs;f2=F2/Fs;f3=F3/Fs;
x=sin(2*pi*f1*n)+sin(2*pi*f2*n)+sin(2*pi*f3*n);
subplot(211),plot(n,x,'w'),title('Signal na ulazu u filter'),axis([0 N -2.1 2.1]);
y=filter(b,a,x);
subplot(212),plot(n,y,'w'),title('Signal na izlazu filtra'),axis([0 N -2.1 2.1]);
pause
%%%% c)
clg
X=abs(fft(x,256));Y=abs(fft(y,256));
subplot(211),stem(X(1:length(X)/2)),title('Spektar signala x')
subplot(212),stem(Y(1:length(Y)/2)),title('Spektar signala y')

49

MATLAB uputstvo za upotrebu

Prim jer 11: N F filter


Napisati M atlab program koji za zadate param etre r i , crta am plitudsku i faznu
karakteristiku NF filtra,kao iraspored nula ipolova.
Rje{enje:
%%% Funkcija prenosa filtra propusnika niskih frekvencija
clc,clg
G=1;
r=input('r=');
teta=input('teta=');
b=[1 2 1];a=[1 -2*r*cos(teta) r*r]';
nule=roots(b);polovi=roots(a);
[h,w]=freqz(b,a,512);ampl=abs(h);phase=180*angle(h)/pi;
%% crtanje rasporeda nula i polova NF filtra
subplot(222),zgrid(1,0,'new'),pzmap(polovi,nule),xlabel('Realnaosa')
ylabel('Imaginarna osa')
opseg=1.05*max(max(abs(nule)),max(abs(polovi)));
if opseg==0, opseg1;end
axis([-opseg opseg -opseg opseg]),axis('square')
title('Raspored nula i polova')
%% crtanje amplitudske karakteristike
subplot(221),plot(w,ampl)
title('Amplitudska karakteristika')
%% crtanje amplitudske karakteristike u dB
subplot(223),plot(w,20*log10(ampl))
title('Amplitudna karakteristika (dB)')
%% crta faznu karakteristiku
subplot(224),plot(w,phase),title('Fazna karakteristika')

N a slicisu prikazane frekvencijske karakteristike iraspored nula ipolova N F filtra za


vrednosti r = 0.8 i = 3

50

MATLAB uputstvo za upotrebu

Prim jer 12: Am plitudna ifazna karakteristika digitalnog filtra


Nacrtatiam plitudnu ifaznu karakteristiku digitalnog filtra datog sa

y (n ) 1,8 cos y (n 1) + 0 ,81y (n 2 ) = x(n ) + 0 ,5 x(n 1)


16
Rje{enje:
b=[1 0.5];
a=[1 -1.8*cos(pi/16) 0.81];
[H,omega]=freqz(b,a,256);
Hampl=abs(H);
Hfazna=angle(H);
subplot(211),plot(omega,Hampl),title('Amplitudna karakteristika');
subplot(212),plot(omega,Hfazna),title('Fazna karakteristika');

Prim jer 13: Projektovanje analognog Butterworth-ovog filtra


ProjektovatianalogniBatervortov filtar,~ija je grani~na frekvencija p = 1 rad sec .
U zetida je red filtra:
a)N = 2 ;b)N = 4 ;c)N = 8
Na istom grafiku nacrtatiam plitudske karakteristike sva trifiltra.Nacrtati raspored polova
za sva trislu~aja.
Rje{enje:
Prilikom projektovanja IIR filtara kori{}enjem Batervortove aproksim acije uobi~ajeno
je da se vr{idiskretizacija funkcije prenosa ~ija je grani~na frekvencija p = 1 rad sec .Takav
filtar se jo{ naziva analogni N F prototip ili norm alizovani filtar. U M atlab-u se funkcija
prenosa analognog Batervortovog prototipa dobija naredbom [z, p, k ] = buttap[N ] ,gdje je N
`eljenired funkcije prenosa a z,p ik su nule,poloviipoja~anje dobijenog filtra,respektivno.
N aredbom buttap se m o`e projektovati sam o filtar sa slabljenjem od 3dB na granici
propusnog opsega.U koliko treba sintetizovatinekidrugifiltar,potrebno je izvr{itiskaliranje
51

MATLAB uputstvo za upotrebu

korijena funkcije prenosa pom o}u:


p j 2 k + N 1
sk = N e 2 N
, k = 1,2 ,K ,2 N

Rje{enje zadatka u M atlab-u m o`e se izvestina slede}ina~in:


clc,clg
N=2;
[z,p,k]=buttap(N);b=k*poly(z);a=poly(p);
w=logspace(-1,1);h=freqs(b,a,w);H2=abs(h);
%ampl. karakteristika za N=2
N=4;
[z,p,k]=buttap(N);b=k*poly(z);a=poly(p);
w=logspace(-1,1);h=freqs(b,a,w);H4=abs(h);
%ampl. karakteristika za N=4
N=8;
[z,p,k]=buttap(N);b=k*poly(z);a=poly(p);
w=logspace(-1,1);h=freqs(b,a,w);H8=abs(h);
%ampl. karakteristika za N=8
subplot(211),semilogx(w,H2,w,H4,w,H8),xlabel('rad/sec')
title('Amplitudske karakteristike Batervortovog prototipa za N=2,4,8')
%%%%%%%%% Raspored nula i polova za N=8 %%%%%%%%%%%
subplot(212),zgrid(1,0,'new'),pzmap(b,a)
title('Raspored polova Batervortovog NF filtra za N=8')
axis([-1.05 1.05 -1.05 1.05]),axis('square')

Prim jer 14: N ule ipolovifunkcije prenosa


Za svaku od slede}ih funkcija prenosa,odreditiu M atlab-u nule,polove ipoja~anje k i
nacrtatinjihov polo`aju z ravni.
z 2 6z + 4
5z 4
a)H ( z ) = 4
, b)H ( z ) = 4
3
2
3
z z + 0 ,33 z 0 ,044 z + 0 ,002
z 3,2 z + 4 ,01z 2 2 ,542 z + 0 ,732
Rje{enje:
N ule i polovi funkcije prenosa se u M atlab-u m ogu nacrtati naredbom
pzm ap(num ,den). U vektor num (num erator) se sm je{taju koeficijenti polinom a u brojniku
funkcije prenosa,a u vektor den (denom inator)se sm je{taju koeficijentiu nazivniku funkcije
prenosa. N aredbom zgrid, zadaje se podjela za z dom en. U suprotnom , crtanje se vr{i sa
podjelom za s dom en,odnosno nule ipolovise crtaju kao nule ipolovikontinualne funkcije
52

MATLAB uputstvo za upotrebu

prenosa H (s).
%%%%%%
resenje
%%% a)
brojnik=[2 -6 4];
nazivnik=[1 -1 0.33 -0.044 0.002];
k=brojnik(1)/nazivnik(1);
zo=roots(brojnik);zp=roots(nazivnik);
clc
disp('Nule funkcije prenosa su: ');
disp(zo);
disp('Polovi funkcije prenosa su: ');
disp(zp);
disp('Pojacanje k je: ');
disp(k);
pause,clg,zgrid(1,0,'new'),pzmap(brojnik,nazivnik)
xlabel('Realna osa'),ylabel('Imaginarna osa')

Prim jer 15: Stabilnostkauzalnog sistem a


Ispitatistabilnostkauzalnog diskretnog sistem a opisanog slede}om funkcijom prenosa
1
H (z ) = 6
5
4
3
z 2 ,3 z + 2,3756 z 1,33z + 0,3989 z 2 0 ,0589 z + 0 ,0033
Rje{enje:
Slede}i M atlab program ispituje stabilnost sistem a proverom da li svi polovi le`e
unutar jedini~nog kruga,odnosno da lije njihova apsolutna vrednostm anja od jedan.N akon
toga program crta raspored polova u odnosu na jedini~nikrug.
clc,clg
brojnik=[1];nazivnik=[1 -2.3 2.3756 -1.33 0.3989 -0.0589 0.0033];
nule=roots(brojnik);polovi=roots(nazivnik);
disp('Polovi funkcije prenosa su: ');
disp(polovi);
%%%%% ispitivanje da li su svi polovi unutar jedinicnog kruga
if abs(polovi)<1,disp('Sistem je stabilan')
else disp('Sistem nije stabilan');end
pause
%%%%% crtanje rasporeda polova u odnosu na jedinicni krug
zgrid(1,0,'new'),pzmap(1,nazivnik),xlabel('Realna osa'),ylabel('Imaginarna osa');
opseg=1.05*max(abs(polovi));if opseg<1,opseg=1.1;end
53

MATLAB uputstvo za upotrebu

axis([-opseg opseg -opseg opseg]),axis('square')


title('Raspored polova funkcije H(z)')

Raspored polova sistem a opisanog zadatom funkcijom prenosa prikazan je na slici. U


prethodnom program u, treba obratiti pa`nju na dio kojim se ispituje da li je apsolutna
vrijednost svakog pola m anja od jedan. Standardno rje{enje u nekom program skom jeziku,
bila bi upotreba for petlje kojom se ispituje da li je apsolutna vrijednost svakog elem enta
vektora polovim anja od jedan.U M atlab-u se ovajproblem m o`e rje{itim nogo elegantnije,
uz u{tedu ra~unarskog vrem ena, po{to logi~ki operatori im aju m ogu}nost da rade i sa
vektorim a isa m atricam a.Tako slede}a linija koda
[0.1 0.5 0.9 2 3 4]<1
vra}a kao odgovor prom jenljivu [ 1 1 1 0 0 0] u kojoj 0 ozna~ava FA LSE (neta~no) a 1
ozna~ava TRU E (ta~no). U potrebom ovakvog na~ina program iranja u M atlabu i ~estim
kori{tenjem vektorskih operacija, m ogu se izbje}i vi{estruke for petlje ~im e se program
zna~ajno ubrzava.

54

MATLAB uputstvo za upotrebu

Prilog naredbe M ATLAB-a


U ovom prilogu su ukratko obja{njene naredbe iz SignalProcessing Toolbox-a,kao ineke
osnovne narebe M A TLA B-a koje se odnose na digitalnu obradu signala.

N ARED BA
bartlett
blackm an
boxcar
chebwin
ham m ing
hanning
kaiser
triang
N ARED BA
besselap
besself
buttap
butter
buttord
cheb1ap
cheb1ord
cheb2ap
cheb2ord
cheby1
cheby2
ellip
ellipap
ellipord
fir1
fir2
firls
lp2bp
lp2bs
lp2hp
lp2lp
prony
rem ez
rem ezord
rem lpord
yulewalk
N ARED BA
decim ate
interp
intfilt
resam ple
N ARED BA
filter
fftfilt
filtfilt
filtic

PRO ZO RSKE FU N KCIJE


ZN A ^ EN JE
Bartletov prozor
Blekm enov prozor
Pravougaoniprozor
^ebi{evljev prozor
H am ingov prozor
H anov prozor
K ajzerov prozor
Trougaoniprozor
N ARED BE KO JE SE KO RISTE PRI PRO JEKTO VAN JU FILTERA
ZN A ^ EN JE
Projektovanje Beselovog analognog N F prototipa
Projektovanje analognog Beselovog filtra
Batervortov analogniN F prototip
Projektovanje Batervortovog digitalnog ilianalognog filtra
O dre|ivanje potrebnog reda Batervortovog filtra
Projektovanje ^ebi{evljevog analognog N F prototipa prve vrste
O dre|ivanje potrebnog reda za ^ebi{evljev filterprve vrste
Projektovanje ^ebi{evljevog analognog N F prototipa druge vrste
O dre|ivanje potrebnog reda za ^ebi{evljevog filtardruge vrste
Projektovanje direktnog ^ebi{evljevog digitalnog ilianalognog filtra
Projektovanje inverznog ^ebi{evljevog digitalnog ilianalognog filtra
Projektovanje elipti~kog digitalnog ilianalognog filtra
Projektovanje elipti~kog analognog N F prototipa
O dre|ivanje potrebnog reda za elipti~kifilter
Projektovanje firfiltra prim jenom prozorskih funkcija
Projektovanje firfiltra prim jenom prozorskih funkcija sa proizvoljnom
frekvencijskom karakteristikom
Projektovanje firfiltra linearne faze m inim izacijom srednje kvadrane gre{ke
Transform acija niskopropusnog filtra u propusnik opsega
Transform acija niskopropusnog filtra u nepropusnik opsega
Transform acija niskopropusnog filtra u visokopropusni
Transform acija niskopropusnog filtra u niskopropusni
Pronijev m etod za projektovanje IIR filtera u vrem enskom dom enu
Projektovanje firfiltara prim jenom Parks-M ekK lelanovog algoritm a
Procjena reda firfiltra
Procjena reda firfiltra propusnika niskih u~estanosti
Projektovanje IIR filtra prim jenom m etoda m inim alne kvadratne gre{ke
N ARED BE ZA D ECIM ACIJU I IN TERPO LACIJU
ZN A ^ EN JE
D ecim acija nakon niskopropusnog filtriranja
Interpolacija signala
Projektovanje interpolacionog (decim alnog)filtra
Prom jena frekvencije odabiranja
N ARED BE KO JE SE KO RISTE ZA FILTRIRAN JE
ZN A ^ EN JE
Im plem entacija digitalnog filtra
Firfiltriranje prim jenom FFT-a
Filtriranje sa nultom fazom
Form ira po~etne uslove za naredbu filter
55

MATLAB uputstvo za upotrebu

m edfilt1
N ARED BA
bessel
diric
sawtooth
sinc
square
N ARED BA
dem od
m odulate
vco
N ARED BA
bilinear
czt
dct
dftm tx
fft
hilbert
idct
ifft
im pinvar
N ARED BA
cceps
cohere
csd
psd
rceps
specgram
specplot
spectrum
xcorr
xcorr2
N ARED BE
N ARED BA
freqs
freqz
grpdelay
im pz
invfreqs
invfreqz
lpc
poly2rc
polystab
rc2poly
sos2tf
sos2zp
tf2zp
tfe
zp2sos
zp2tf

Jednodim enzionim edian filter


N ARED BE ZA G EN ERISAN JE PO SEBN IH FU N KCIJA I M ATRICA
ZN A ^ EN JE
Beselove funkcije
D irihleova iliperiodi~na sinc funkcija
Povorka trougaonih im pulsa
Funkcija sin(pi*x)/(pi*x)
Povorka pravougaonih im pulsa
N ARED BE KO JE SE KO RISTE ZA M O D U LACIJU /D EM O D U LACIJU
ZN A ^ EN JE
D em odulacija signala
M odulacija signala
N aponom kontrolisan oscilator
RAZLI^ITE TRAN SFO RM ACIJE SIG N ALA I PO M O ]N E N ARED BE
ZN A ^ EN JE
Bilinearna transform acija
Chirp z-transform acija
D iskretna kosinusna transform acija
D FT m atrica
D iskretna Furijeova transform acija
H ilbertova transform acija
Inverzna diskretna kosinusna transform acija
Inverzna Furijeova transform acija
Im pulsno invarijantna transform acija
N ARED BE KO JE SE KO RISTE U SPEKTRALN O J AN ALIZI
ZN A ^ EN JE
K om pleksnikepstrum
Estim acija koherencije dva signala
Estim acija zdru`ene gustine snage
Estim acija spektralne gustine snage
Realnikepstrum
Izra~unava spektrogram signala
Crta izlaz naredbe spectrum
Estim acija spektralne gustine snage za jedan ilidva ulazna signala
Procjena kroskorelacione funkcije
D vodim enzionalna kroskorelacija
ZA PRED STAVLJAN JE I AN ALIZU D ISKRETN IH I KO N TIN U ALN IH FU N KCIJA
PREN O SA
ZN A ^ EN JE
Frekvencijskiodziv analognog filtra
Frekvencijskiodziv digitalnog filtra
G rupno ka{njenje digitalnog filtra
Im pulsniodziv digitalnog filtra
A nalognifilterkojiodgovara zadatom frekvencijskom odzivu
D igitalnifilterkojiodgovara zadatom frekvencijskom odzivu
K oeficijentilineane predikcije
Izra~unava refleksione koeficijente firfiltra
Stabilizacija polinom a
Izra~unava koeficijente firfiltra iz refleksionih koeficijenata
Prebacivanje kanoni~ke realizacije u direktnu
Prebacivanje kanoni~ke realizacije u direktnu
Prebacivanje funkcije prenosa zadate preko nula ipolova u direktnu realizaciju
Estim acija prenosne funkcije
Pronalazikanoni~ku realizaciju za funkciju zadatu preko nula ipolova
Pronalazidirektnu realizaciju za funkciju zadatu preko nula ipolova

56

You might also like