Professional Documents
Culture Documents
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
30
m -fajlovi
32
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
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.
SIM BO L
+
*
/ili\
^
PRIM JER
5+3
23-11
3.14*0.85
56/8 = 8\56
5^2
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.
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
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
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
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
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
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
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
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
wavelet\wavelet
wavelet\wavedemo
- Wavelet Toolbox.
- Wavelet Toolbox Demos.
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
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(3)
ans =
0.6283
y(5)
ans =
0.9511
x ( 1:5 )
ans =
0 0.3142 0.6283 0.9425 1.2566
y ( 3: -1 : 1)
12
ans =
0.5878 0.3090
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
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
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
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
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
a .^ 2
ans =
1 4
16 25
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
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
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
A(3,3)=0
A=
1
4
7
2
5
8
3
6
0
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
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
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
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
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
A( 2 , : ) = B
A=
1
1
7
2
4
8
3
7
9
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
x=-3:3
x=
-3 -2 -1
abs(x)>1
ans =
1 1 0
1
20
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
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
[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
23
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
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
x =-2 : 0.01 : 2 ;
y=x.^2 ;
plot ( x , y )
x = linspace ( 0, 2*pi, 30 );
y=sin ( x );
z=cos ( x );
plot ( x, y, x, z )
27
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
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 , '+' )
plot3 ( y , z , x ) , grid
29
subplot(221)
subplot(222)
subplot(121)
subplot(223)
subplot(122)
subplot(224)
subplot(211)
subplot(212)
u=t(16:24)
u=
character
30
u=t(24:-1:16)
u=
retcarahc
K ao ikod m atrica tekstse m o`e sastojatiiiz nekoliko vrsta.
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
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.
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
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
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
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
A=1:9,B=9-A
A=
1 2 3 4
B=
8 7 6 5
0
35
tf=A>4
tf =
0 0
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
2.0000
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
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
rezultatje korektan.
36
0.8415
Logi~kioperatori
Logi~kioperatorise koriste za kom binovanje sa relacionim iliza njihovo negiranje.
&
|
.~
-logi~ko "i"
- logi~ko "ili"
- negacija
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
-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.8090
for n=1:10
x(n)=sin(n*pi/10);
n=10;
end
38
x
x=
Columns 1 through 7
0.3090 0.5878 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
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
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
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')
42
43
44
frekvencije
45
47
48
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
50
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')
54
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
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
56