Professional Documents
Culture Documents
Sadraj
Uvod
3
3
5
6
9
9
11
Operacije sa poljima
11
12
12
13
Prosta polja
Pristup elementima polja
Definisanje polja
Operacije sa poljima
14
Rad sa matricama
Specijalne matrice
17
23
26
32
Relacioni operatori
Logiki operatori
Kontrolne petlje
38
38
40
40
For petlje
While petlje
If-else-end strukture
41
Prilog naredbe MATLAB-a
43
1
Uvod:
Prva, izvorna verzija MATLAB-a, napisana je kasnih sedamdesetih, na
univerzitetu New Mexico i Stanford Univerzitetu, sa osnovnom namjenom da slui
kao pomono s re ds tvo na kurs e vima iz line ra rne a lge bre , i nume rik e a na lize .
Za mi lje no je da ova j pa k et bude na dgra dnja FORTRAN-a ko ja bi ko ris tila gotove
potprogra me FORTRAN-a . Da na nje mogunos ti MATLAB-a da le k o pre va zila ze
ta da nji origina lni "Ma trix La bora tory". Ogroma n broj na unih i te hnikih dis ciplina
ne izos ta vno za htije va ju kori te nje MATLAB-a . MATLAB pore d s vojih prve ns tve no
ra zvojnih i progra ma bilnih mogunos ti pos je duje jo je dnu za is ta monu a la tku koja
je je dna od os novnih odlika ovog pa keta . To s u toolboxovi. Naime, vrlo jednostavno
se u MATLAB-u mogu kreirati sopstvene funkcije koje daju rjeenja na postavljene
zahtjeve. Skup ovako kreiranih funkcija (m-fajlova) objedinjenih u jednu cjelinu
predstavlja osnovnu strukturu toolboxa. Toolboxovi dakako predstavljaju mnogo vie
od kolekcije upotrebljivih fajlova, jer je u njima objedinjen trud velikih svjetskih
istraitelja u raznim podrujima nauke.
Ova j okvir pre ds ta vlja os novni pros tor za ra d s a MATLAB-om. P rompt ozna a va
da je MATLAB s pre ma n da odgovori na va e pita nje .
S IMBOL
+
*
/ ili \
^
P RIMJ ER
5+3
23-11
3.14*0.85
56/8 = 8\56
5^2
ans = 430
Zgodno je ova dva primje ra rje iti uvo|e nje m pomonih va rija bli A, B i C. Ta da
bi s e rje e nje ova dva primje ra dobilo kuca nje m s lje de e g niza na re dbi u MATLAB-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
Ovdje s u kre ira ne kons ta nte A, B, C s a vrije dnos tima 2, 4, 6. Tre ba primje titi
da s imbol ";" u liniji prihva ta re zulta t be z nje govog is pis a na e kra nu.
Os vrnimo s e s a da ne ne ke os novne os obine MATLAB-a . P riliko m ra da u
koma ndnom pros toru, MATLAB pa mti s ve na re dbe koje s u une e ne kao i vrije dnos ti
s vih va rija bli ko je s e u progra mu ko ris te . Ove na re dbe ili vrije dnos ti va rija bli mogu s e
vrlo je dnos ta vno provje riti. Na primje r, da bi provje rili vrije dnos t va rija ble C potre bno
je da to za tra ite od MATLAB-a kuca jui ime va rija ble na kon prompta .
C
C=
6
Uko liko pos toji potre ba da s e provje re ime na ne ke od va rija bli ili u kra jnje m
s lua ju s ve va rija ble potre bno je od MATLAB-a za tra iti lis tu va rija bli ko ris te i
na re dbu who.
who
Your variables are:
A
B
C
Odavde je vidljivo da programski paket MATLAB ne daje vrijednosti ovih
varijabli ve s a mo njihova ime na . Da bi dobili vrije dnos t ne ke od va rija bli potre bno je
na kon prompta otkuca ti nje no ime . Kod ne kih ve rzija MATLAB-a pos lje dnja linija who
na re dbe da je poda ta k o s lobodnom pros toru koji za vis i od ra s poloive me morije
ra una ra ko ji ko ris tite .
4
35.833333333333334
3.5833e+01
16 cifara
5 cifara plus eksponent
16 cifara plus eksponent
format hex
format bank
format +
3.583333333333334e+
01
4041eaaaaaaaaaab
35.83
+
format rat
format short
215/6
35.8333
hexadecimalni
dva decimalna mjesta
pozitivan, negativan ili
nula
rac.aproksimacija
uobiajen format
D=
12
- apsolutna
fix (x)
floor (x)
ima g (x)
log (x)
log10 (x)
10
re a l (x)
re m (x,y)
round (x)
s ign (x)
s in (x)
s inh (x)
s qrt (x)
ta n (x)
ta nh (x)
hipe rboliki
- arkus kosinus
- arkus kosinus
- ugao
- arkus sinus
- arkus sinus hiperboliki
- arkus tangens
- arkus tangens
- arkus tangens
- zaokruivanje prema
- konjugova ni broj
- kos inus
- kos inus hipe rboliki
- ex
x1,2 =
b b 2 4ac
2a
Za a =1, b=5 i c=6, rje e nje pos ta vlje ne je dna ine dobija s e na s lje de i na 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
7
ans =
0
a*x2^2+b*x2+c
ans =
0
%provjera rezultata
P os lje dnje dvije linije u ovom a lgoritmu oigle dno s lue za provje ru re zulta ta .
Kod kva dra tne je dna ine s a ova ko iza bra nim koe ficije ntima dis krimina nta je bila ve a
od nule , te s u rje e nja bila re a lna i ra zliita . Iza be rimo s a da za k oe ficije nte je dna ine
s lje de e vrije dnos ti: a =1, b=4 i c=13. Ta da e rje e nje je dna ine biti:
je ilustrovan rad sa kompleksnim brojevima pri izvr a va nju ne kih je dnos ta vnih
ma te ma tikih ope ra cija :
check_it_out=i^2
% va rija bla che ck_it_out
check_it_out =
-1.0000 + 0.0000i
check_it_out=real (check_it_out )
check_it_out =
-1
U ovom je primje ru pokaza no kori te nje na re dbe real koja kao rezultat vraa
re a lni dio komple ksnog broja . Ka o pos lje dnji primje r, ra zmotrimo ovdje Ojle rov
obra za c.
a + ib = Me j
gdje s u M-moduo, a -a rgume nt da ti s a :
M = a2 + b2
b
= arctg( )
a
a = M cos
b = M sin
Koritenje HELP-a
Programiranje u MATLAB-u kao i u drugim programskim jezicima zahtijeva
poznavanje itavog niza naredbi ovog programskog paketa. Da biste doli do
odre|ene naredbe, MATLAB vam moe pomoi na tri naina:
ko ris te i na re dbu he lp,
9
Komanda help
Koritenje ove komande je najjednostavniji nain da dobijete informaciju o
naredbi koja vam je potrebna. Npr.:
help sqrt
SQRT Square root.
SQRT(X) is the square root of the elements of X. Complex
results are produced if X is not positive.
See also SQRTM.
Ali, na upit
help cows
cows not found.
MATLAB jednostavno odgovara da o "cows" ne zna nita. Naredba help odlino
funkcionie ukoliko ste MATLAB-u eksplicitno zadali temu ili naredbu koja vas
interesuje. HELP tako|er nudi i neke smjernice koje mogu korisno da poslue 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
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.
Wavelet Toolbox.
Wavelet Toolbox Demos.
Lookfor komanda
Ova komanda pretrauje sve linije help-a i vraa s a mo one koje s a dre kljunu
rije k oju na ve de te . Npr.
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.
Na re dba complex nije MATLAB-ova na re dba , a li je na |e na u de s k ripciji
ne koliko MATLAB-ovih na re dbi. Ili na primje r:
help conj
CONJ Complex conjugate.
CONJ(X) is the complex conjugate of X.
11
Operacije sa poljima
Sva dosadanja razmatranja ukljuivala su rad sa brojevima, odnosno
skalarima i operacije nad njima. Operacije nad skalarima su osnovne matematike
operacije. Sa druge strane, ako je potrebno jednu te istu operaciju izvriti nad vie od
jednog skalara ponovljene operacije bile bi povezane sa izvjesnim tekoama.
Upravo iz tih razloga se dolo do pojma polja (matrica). MATLAB sve varijable
posmatra kao matrice i sve operacije izvrava kao matrine operacije. Skalari su
samo specijalan sluaj matrica dimenzija 1x1.
Prosta polja
Razmatrajmo ovdje primjer sraunavanja vrijednosti funkcije sinusa na
polovini perioda. Jasno je da je nemogue izraunati vrijednosti ove funkcije u svim
takama datog intervala (kojih ima beskonano mnogo), ve se ograniavamo na
konaan broj taaka iz datog intervala. Uzmimo na primjer da je korak diskretizacije
0.1 . Mi bis mo do re zulta ta mogli doi kuca nje m pos e bno s va ke vrije dnos ti
a rgume nta i tra iti re zulta t. Ovo s e me |utim mnogo bre rje a va k ori te nje m polja .
De finis a nje polja je je dnos ta vno:
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
Dovoljno je otvoriti s re dnju za gra du, unije ti vrije dnos ti e lje nih ta a ka ,
odvoje nih me |us obno ra zma cima ili za re zima , te za tvoriti s re dnju za gra du. MATLAB
s a da "ra zumije " da e lite da va m izra una s inus s va k og e le me nta iz x i da re zulta t
tre ba da bude s mje te n u polje y. Ovo je funda me nta lna ra zlika izme |u MATLAB-a i
os ta lih progra ms kih je zika. Ako s e kao e le me nt polja unos i komple ksa n broj onda s e
on mora unije ti ka o je dins tve n, be z ra zma ka ili obje dinje n u ma loj za gra di. Npr. polje [
1 -2i 3 4 5+6i ] s a dri pe t e le me na ta dok polja [ ( 1 -2i ) 3 4 5+6i ] ili [ 1-2i 3 4
5+6i ] s a dre po e tiri e le me nta .
Pris tup s va kom e le me ntu polja je je dnos ta va n. Dovoljno je otkuca ti ime polja i inde ks
e le me nta .
x(3)
ans =
0.6283
y(5)
ans =
0.9511
0.9425
1.2566
U pre thodna dva primje ra , drugi broj u ma loj za gra di oigle dno ozna a va
kora k, s tim to ne ga tivan pre dzna k zna i da s e e le me nti uzima ju una za d.
x(2 : 2 : 7)
ans =
0.3142 0.9425
1.5708
0.5878
Definisanje polja
U jednom od ranijih primjera polje smo definisali prosto unoenjem pojedinih
vrijednosti elemenata polja. Taj primjer je sadravao svega 11 vrijednosti. Me|utim,
ta da je bilo potrebno unijeti 111 vrijednosti? Evo dva naina ka ko ovo je dnos ta vno
ura diti;
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
ili
13
1.5708
1.8850
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
d=[ a( 1:2:5 ) 1 0 1]
d=
1 3 5 1 0
Na re dbom:
14
Operacije sa poljima
Matematik e ope ra cije s a poljima s u ne to komplikova nije od pre thodno
obja nje nih ope ra cija izme |u s kala ra i polja , pogotovo a ko s u polja ra zliite duine .
Ako s u polja is te duine , ope ra cije s a bira nja , oduzima nja , mnoe nja i dije lje nja
oba vlja ju s e izme |u e le me na ta na is tim pozicija ma u polju. Ta ko, na primje r:
a, b
a=
1 2 3 4 5
b=
1 3 5 7 9
da je pre gle d polja a i b, a potom
a+b
ans =
2 5 8 11 14
s a bira odgova ra jue e le me nte i s mje ta u ans.
ans-b
ans =
1 2 3 4 5
u ovom primje ru je oigle dno ans=a.
2*a-b
ans =
1 1 1 1 1
U ovom s lua ju je s va k i e le me nt pomnoe n s a dva i od s va k og e le me nta je
oduze ta vrije dnos t odgova ra jue g e le me nta polja b. Mnoe nje odgova ra juih
e le me na ta ova dva polja vr i s e ko ri te nje m s lje de e na re dbe :
a .* b
ans =
1 6
15
28
45
15
16
25
16
32
125
2401
59049
1.0000
7.0000 81.0000
U pre thodnim primje rima , polja koja s u de finis a na s a dra va la s u je dnu vrs tu i
ne ko liko ko lona , tj. u ve ktor-vrs tu. Re zulta t za da ne ope ra cije ta k o|e r je bio s mje te n
u ve ktor-vrs tu. MATLAB dopu ta da s e polje de fini e i kao ve ktor kolona tj. polje koje
bi s a dra va lo je dnu kolonu i ne koliko vrs ta . Kod de finis a nja i za da vanja polja na ova j
16
nain s va pra vila os ta ju na s na zi, s a mo to s u polje i re zulta t prika za ni ka o ve ktorkolone . Evo ne kih primje ra u kojima s u de finis a ni ve ktor-kolone .
c=[1;2;3;4;5]
c=
1
2
3
4
5
Ovdje tre ba primje titi da e le me nti ra zdvoje ni ra zma cima ili za re zima de fini u
e le me nte je dne vrs te , a vi e kolona , dok e le me nti ra zdvoje ni s imbolom ";" de fini u
polje koje ini je dna ko lona i ne ko liko vrs ta .
a=1:5
a=
1 2 3 4 5
b =a'
b=
1
2
3
4
5
U pos lje dnja dva primje ra je kori te n s imbol " ' " za tra ns ponova nje ve ktor-kolone u
ve ktor-vrs tu i obra tno.
Rad sa matricama
Poto je matrica osnovni element MATLAB-a postoji mnogo naina za
ma nipulis a nje i ra d s a ma trica ma . Ka da s e ma trica de fini e , odnos no une s e u
progra m, MATLAB omoguuje ita v niz pos tupa ka k ojima s e une s e na ma trica po
volji moe mije nja ti. Ovo je u s tva ri klju za e fika s no kori te nje MATLAB-a . Ove te me
s mo s e ma lo dota kli u primje rima gdje je poka za n ra d s a je dnos ta vnim poljima . Da bi
ovo ilus trova li pre la zimo odma h na primje re :
A=[1 2 3;4 5 6; 7 8 9]
A=
1
4
7
2
5
8
3
6
9
1
4
7
2
5
8
3
6
0
gdje je oigle dno e le me nt tre e vrs te i tre e kolone pre tvore n 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
8
5
2
9
6
3
8
5
2
9
6
3
Efe kt ove na re dbe je is ti kao i pre thodne . S imbol ":" ozna a va da s e na re dba
odnos i na s ve kolone . To je , u s tva ri s kra e na nota cija za 1:3.
C=[A B(: , [1 3] ) ]
C=
1
4
7
2
5
8
3
6
9
7
4
1
9
6
3
B=
2
5
3
6
B=A(C , C)
B=
1
7
3
9
B=A( : )
B=
1
4
7
2
5
8
3
6
9
Ovom na re dbom ma trica A pre tvore na u ve ktor kolonu.
B=B'
B=
1
B=
1
4
7
2
5
8
3
6
9
B( : , 2 )=[ ]
B=
1
4
7
3
6
9
7
9
B( 2 , : ) = [ ]
B=
1 4 7
Ovdje je oigle dno izba e na druga vrs ta ma trice B.
A( 2 , : ) = B
A=
1
1
7
2
4
8
3
7
9
2
4
8
2
4
8
2
4
8
S a da je ma trica B k re ira na e tve ros trukim duplira nje m s vih vrs ta drugom kolonom
ma trice 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.
20
Ova na re dba nije dozvolje na . Dime nzije ma trica s a obe s tra ne je dna kos ti s e
mora ju poduda ra ti. U na e m s lua ju s a lije ve s tra ne je dna k os ti je s k ala r (ma trica
dime nzija 1x1), a s a de s ne s tra ne pra za n niz (ma trica dime nzija 0x0) te MATLAB
ja vlja gre ku.
B=A( 4 , : )
??? Index exceeds matrix dimensions.
Ni ova na re dba nije dozvolje na , je r ma trica A ne ma e tiri vrs te .
C( 1: 6 )=A( : , 2 : 3 )
C=
2
Ovdje je kre ira n ve ktor C e kstra kcijom i tra ns ponova nje m druge i tre e kolone
ma trice A.
U s le de ih ne koliko primje ra bie pokaza no kori te nje re la cionih ope ra tora pri
ra du s a poljima i ma trica ma .
x=-3:3
x=
-3 -2
-1
abs(x)>1
ans =
1 1 0
-1
k=find(abs(x)>1)
k=
1 2 6 7
U ovom slua ju je od na re dbe find za tra e no da prona |e inde k se e le me na ta
ija je a ps olutna vrije dnos t ve a od je da n.
Na re dba find ta ko|e r funkcioni e i kod ma trica .
A=[1 2 3;4 5 6; 7 8 9]
A=
1 2 3
4 5 6
22
[i , j]=find(A>5)
i=
3
3
2
3
j=
1
2
3
3
Inde ksi i i j su pomone va rija ble ijim s e kombinova nje m dola zi do pozicije u
ma trici tj. inde ks a e le me nta ko ji je za dovoljio ne je dna kos t pos ta vlje nu u gornjoj
na re dbi. Ta ko npr. prve vrije dnos ti inde ksa i i j da ju poziciju prvog e le me nta koji je
ve i od pe t, a to je e le me nt ne pre s je k u tre e vrs te i prve kolone .
Ako na m dime nzije ma trice , odnos no ve ktora nis u pozna te , MATLAB nudi
na re dbe size i length koje na m da ju informa ciju o dime nzija ma ma trice .
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
Ovdje je vrije dnos t fukc ije size de finis a na je dnom va rija blom, pa je k ao
rje e nje vra e n ve ktor vrs ta , gdje prvi la n da je poda ta k o broju vrs ta a drugi o broju
kolona . Os im ovog na ina mogue je vrije dnos t funkc ije size de finis a ti ka o u
s lje de e m primje ru.
[r,c]=size(A)
r=
2
c=
4
Dvije izla zne va rija ble s u s mje te ne u ve ktor kolonu. Ele me nti ima ju is to zna e nje
ka o i ma loprije .
Na re dba length ka o re zulta t vra a broj kolona ili broj vrs ta u za vis nos ti od toga
da li ma trica ima ve i broj vrs ta ili ko lona .
length(A)
ans =
4
23
size(B)
ans =
1 315
length(B)
ans =
315
Po to ve ktor ima s a mo je dnu dime nziju u ovom s lua ju funkc ija length kao
rezultat vraa broj elemenata polja B.
Specijalne matrice
U MATLAB-u je mogue definisati i neke specijalne matrice, koje su od
interesa u raznim oblastima nauke i tehnike.
zeros(3)
ans =
0 0 0
0 0 0
0 0 0
Ova naredba definie nula matricu.
ones(2,4)
ans =
1 1 1
1 1 1
1
1
ones(3)*pi
ans =
3.1416 3.1416
3.1416 3.1416
3.1416 3.1416
rand(3,1)
ans =
0.2190
0.0470
0.6789
3.1416
3.1416
3.1416
0.6268
0.3516
Elementi ove matrice su slua jni broje vi s a norma lnom ra s podje lom.
eye(3)
ans =
1 0 0
0 1 0
0 0 1
eye(3,2)
ans =
1 0
0 1
0 0
Ovom na re dbom je de finis a na je dinina ma trica .
Dje lje nje i mnoe nje ma trica je pok aza no u s le de im primje rima
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.
Dje lje nje ma trica a i b nije bilo mogue izvr iti je r s e dime nzije ma trica ne s la u.
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.
Mnoe nje ma trica nije bilo mogue izvr iti je r s e dime nzije ma trica ne s la u.
P rvobitna s vrha MATLAB-a je bila da poje dnos ta vi ra d u mnogim obla s tima u
kojima s e primje njuju os nove line a rne a lge bre . Ovo s e pos e bno odnos i na s is te me
line a rnih je dna ina . Da bi ilus trova li ova j pos e ba n proble m pos ma tra jmo primje r:
25
1x1+2x2+3x3=366
4x1+5x2+6x3=804
7x1+8x2+0x3=351
Ova j s is te m s e moe pre ds ta viti i u ma trinom obliku (ma trinoj je dna ini) na s le de i
na in:
Ax=b
Ova matrina je dna ina de fini e proizvod ma trice A i ve k tora x k oji je je dna k
ve ktoru b. Egzis te ncija rje e nja ovog s is te ma i uop te s is te ma je dna ina je
funda me nta lno pita nje line a rne a lge bre . Ukoliko je s is te m rje iv pos toji mno tvo
pris tupa kojima s e to rje e nje na la zi. Ana litiki, rje e nje ovog s is te ma bi bilo:
x=A -1b
Rje e nje ovog s is te ma dobija s e kuca nje m s lje de e g niza na re dbi:
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
Ka o to je ra nije obja nje no, ma trica A s e moe unije ti na ne koliko na ina . Za
pre la za k u novu vrs tu moe s e ko ris titi s imbol ";" ili pre la z u novi re d. Ve ktor b je
ve ktor kolona je r s va ki s imbol ";" ozna a va poe ta k nove vrs te . Moe s e pok aza ti da
ova j proble m ima je dins tve no rje e nje a k o je de te rmina nta ma trice A ra zliita od nule .
U ovom je primje ru de t (A)=27 te e rje e nje s is te ma Ax=b biti mogue na i. J e da n
od na ina je s te da s e izra una inve rzna ma trica A-1 :
x=inv (A)*b
x=
25.0000
22.0000
99.0000
Ovo rje e nje s e moglo dobiti i na s lje de i na in:
x=A\b
x=
25.0000
22.0000
99.0000
Drugo rje e nje tj. ko ri te nje ope ra tora "\" pre poruljivije je od pre thodnog. Ova j
na in rje a va nja za htje va ma nji broj unutra njih ope ra cija mnoe nja i dije lje nja , te je
s a mim tim ova j pos tupa k bri. P ogotovo s e pre poruuje za s is te me s a ve im broje m
ne pozna tih. U s lua ju da MATLAB ne moe na i rje e nje kore ktno, on ja vlja gre ku.
27
Ozna a va nje gra fik a i os a u MATLAB-u s e pos tie na re dba ma title, xlabel i
Ta ke na koje je podje lje n inte rva l u kome s e funkcija prikazuje , mogu s e pos e bno
ozna iti.
x = linspace ( 0, 2*pi, 30 );
y=sin ( x );
plot ( x , y , x , y , '+' )
U ovom primje ru je funkcija y=s in(x) crta na dva puta . P rvi put je da t
s ta nda rda n prikaz da te funkcije , na kon e ga s u vrije dnos ti funkcije na inte rva lu u
kome s e pos ma tra funkcija pos e bno ozna e ne . Da je u na re dbi funk cije plot bio
samo jedan argument, to bi znailo da e s e vrije dnos ti na nos iti s a mo na ordina tu. U
tom s lua ju, na a ps is u s e na nos e inde k si e le me na ta (ta a ka ) na ko je je podje lje n
inte rva l u kome s e pos ma tra za da na funkcija . Doda tni a rgume nt "+" de fini e ka ko e
s e vr iti crta nje . Ako je ova j a rgume nt izos ta vlje n, gra fik s e crta ta k o to s e vr i
line a rna inte rpola cija izme |u za da nih ta a k a.
29
x = linspace ( 0, 2*pi, 30 );
y=sin ( x );
plot ( x , y , '+' )
U dos a da njim primje rima gra fici s u prika ziva ni pre ko cije log e kra na . U
MATLAB-u pos toji mogunos t i da s e na crta vi e ra zliitih gra fik a na je dnom e k ra nu
(ma ksima lno 4), za ta s e k oris ti na re dba subplot koja se navodi prije naredbe za
crtanje. Opti oblik ove naredbe je:
subplot(mnp)
30
subplot(221)
subplot(222)
subplot(121)
subplot(223)
subplot(122)
subplot(224)
subplot(211)
subplot(212)
retcarahc
Ka o i kod ma trica te k st s e moe s a s toja ti i iz ne ko liko vrs ta .
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 e mu broj kolona mora biti je dna k.
Na d s tringovima je ta ko|e r mogue vr iti i ma te ma tik e ope ra cije k ao i
pre ds ta viti ih u AS CII kodu. Da bi do li do AS CII koda s tringa koris timo a ps olutnu
vrije dnos t:
s='ABCDEFG'
s=
ABCDEFG
m=abs( s )
m=
65 66 67
68
69
70
71
m=s+0
m=
65 66
68
69
70
71
67
72
73
74
75
76
setstr (n)
ans =
FGHIJKL
m- fajlovi
Iz dosadanjeg izlaganja se vidi da MATLAB odgovara na va postavljeni
zadatak onim redoslijedom kako je to od njega zatraeno. Na neke jednostavne
probleme MATLAB efikasno odgovara nakon to otkucamo odre|enu sekvencu
naredbi. U slua ju ve e g broja ova kvih na re dbi, pogotovo a ko je ne ko izra una va nje
32
ovoga mi moe mo s a mi da kre ira mo funkciju, pohra nimo je kao m-fa jl i na k on toga je
poziva mo i izvr a va mo.
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
Ova j fa jl s e za tim s a uva k ao fa k t.m i poziva s e k uca nje m ime na (fa k t).
Ne ophodno je da ime m-fa jla bude ide ntino ime nu funkcije . Ako je potre bno ne ke
vrije dnos ti unije ti s a ta s ta ture onda s e koris ti na re dba input. Korie nje ove na re dbe
na jla k e je obja s niti na s le de e m primje ru: pre tpos ta vimo da je potre bno na crta ti
funkciju y = x 2 na proizvoljnom inte rva lu [a ,b] s a proizvoljnim kora kom. Vre dnos ti a ,
b kao i vre dnos t kora ka unos e s e s a ta s ta ture u toku izvr a va nja progra ma . Rje e nje
u MATLAB-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
MATLAB s e moe koris titi i pri obra di poda ta ka kao i s e tova poda ta ka . P o
s vojoj unuta rnjoj konve nciji ovi s e tovi s u s mje te ni u ma trice -kolone . S va ka kolona
pre ds ta vlja ra zliite vrije dnos ti mje re ne va rija ble . Npr. pre tpos ta vimo da s u dne vne
34
temperature za tri razliita gra da da te u m-fa jlu temps. Startovanjem ovog fajla
dobijamo temperature u MATLAB-ovom okruenju.
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')
35
plot naredba u ovm primjeru je kao argument imala matricu temps. Rezultat
ovoga je grafiki prikaz vrije dnos ti te mpe ra tura s va ke kolone pos e bno.
Relacioni operatori
Relacioni operatori koji se koriste u MATLAB-u dati su u slijedeoj tabeli
<
>=
>
>=
==
=
- manji od
-manji ili jednak
- vei od
- vei ili jednak
- jednak
- ra zliit od
Re la cioni ope ra tori mogu s e koris titi za upore |iva nje dva ju polja is te duine ,
kao i za upore |iva nje polja s kala rom. U ovom s lua ju s e s va ki e le me nt polja
upore |uje s a s kala rom i kao re zulta t s e dobija polje is te duine .
A=1:9,B=9-A
A=
1 2 3 4
B=
8 7 6 5
0
36
tf=A>4
tf =
0 0
-1
Vidimo da s e ope ra tori mogu koris titi i pri ma te ma tikim ope ra cija ma .
Ele me nte polja je mogue za mije njiti s pe cija lnim MATLAB-ovim broje m e ps , koji
iznos i a proksima tivno 2.2e xp(-16). Ova konkre tna vrije dnos t je pone kad koris na da bi
s e izbje glo dje lje nje s a 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
S le de i primje r izra una va vrije dnos ti funkcije s inc(x) uz upozore nje da je pe ti broj
nula .
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.3333
NaN 0.9816
0.6667
0.9276
1.0000
0.8415
P o to izra z 0/0 nije de finis a n dobija mo upozore nje NaN, sa znae nje m Not a
numbe r. Ako s e s a da nula za mje ni s a eps
x=x+(x==0)*eps;
sin(x)./x
ans =
0.8415 0.9276 0.9816
1.0000
0.9816
37
0.9276
0.8415
re zulta t je k ore k ta n.
Logiki operatori
Logiki ope ra tori s e koris te za kombinova nje s a re la cionim ili za njihovo ne gira nje .
&
|
.
- logiko "i"
- logiko "ili"
- negacija
tf=(A>4)
tf =
1 1 1
tf=(A>2)&(A<6)
tf =
0 0 1 1 1
38
Kontrolne petlje
Razni programski jezici nude mnotvo struktura koje omoguuju kontrolu toka
programa. MATLAB nudi tri vrste ovakvih petlji:
for pe tlje
while pe tlje
if e ls e e nd s trukture
Zbog njihovog e s tog kori te nja one s e s mje ta ju u mfajlove, je r je na ta j na in
izbje gnuta potre ba za s ta lnim ponovnim uno e nje m ovih s truktura .
For petlje
Ova j tip pe tlji omoguuje da s e ne ka grupa na re dbi izvr i una pre d de finis a n
broj puta . S inta ksa ove pe tlje je s lje de a :
for x=(a:inkrement:b)
blok naredbi
end
for n=1:10
x(n)=sin(n*pi/10);
end
39
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
For pe tlja s e ne moe ogra niiti, odnos no pre kinuti re de finis a nje m promje njive unuta r
s a me pe tlje .
for n=1:10
x(n)=sin(n*pi/10);
n=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
1
2
3
4
5
A
A=
2
5
10
17
26
5 10 17 26
8 13 20 29
13 18 25 34
20 25 32 41
29 34 41 50
For pe tlje tre ba izbje ga va ti kad god je do rje e nja mogue doi kori te nje m ma trinog
pris tupa . Oba pris tupa vode is tom rje e nju, a li je drugi bri i za htje va e s to ma nje
kuca nja .
While petlje
Sintaksa ove petlje je
while izraz
blok naredbi
end
Blok naredbi izme|u while i end se izvrava 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 primjeru je prikazan jedan od naina izra una va nja vrije dnos ti e ps .
Eps kre e od je dinice i s ve dok je us lov (1+EP S )>1 za dovolje n na re dbe unuta r while
pe tlje s e izvr a va ju. Eps s e s ta lno dje li s a dva i k ada pos ta ne ta ko ma li da (e ps +1)
vi e nije ve e od je dinice pe tlja s e za vr a va . Ovo s e de a va zbog ogra nie nog broja
de cima lnih mje s ta pre dvi|e nih za pre ds ta vlja nje re a lnog broja .
If-else-end strukture
S inta ks a :
if izra z
blok na re dbi
e nd
Npr.
a=10;
41
c=a*25
c=
250
if a>5
c=(1-20/100)*c;
end
c
c=
200
U s lua ju da pos toji i druga a lte rna tiva ova s truktura ima s lje de i oblik
if izra z
blok na re dbi koje s e izvr a va ju a ko je izra z is tinit
e ls e
blok na re dbi koje s e izvr a va ju a ko je izra z nije is tinit
e nd
42
ZNAENJE
Bartletov prozor
Blekmenov prozor
Pravougaoni prozor
^ebievljev prozor
Hamingov prozor
Hanov prozor
Kajzerov prozor
Trougaoni prozor
firls
lp2bp
lp2bs
lp2hp
lp2lp
prony
remez
remezord
remlpord
yulewalk
ZNAENJE
Projektovanje Beselovog analognog NF prototipa
Projektovanje analognog Beselovog filtra
Batervortov analogni NF prototip
Projektovanje Batervortovog digitalnog ili analognog filtra
Odre|ivanje potrebnog reda Batervortovog filtra
Projektovanje ^ebievljevog analognog NF prototipa prve vrste
Odre|ivanje potrebnog reda za ^ebievljev filter prve vrste
Projektovanje ^ebievljevog analognog NF prototipa druge vrste
Odre|ivanje potrebnog reda za ^ebievljevog filtar druge vrste
Projektovanje direktnog ^ebievljevog digitalnog ili analognog filtra
Projektovanje inverznog ^ebievljevog digitalnog ili analognog filtra
Projektovanje eliptikog digitalnog ili analognog filtra
Projektovanje eliptikog analognog NF prototipa
Odre|ivanje potrebnog reda za eliptiki filter
Projektovanje fir filtra primjenom prozorskih funkcija
Projektovanje fir filtra primjenom prozorskih funkcija sa proizvoljnom
frekvencijskom karakteristikom
Projektovanje fir filtra linearne faze minimizacijom srednje kvadrane greke
Transformacija niskopropusnog filtra u propusnik opsega
Transformacija niskopropusnog filtra u nepropusnik opsega
Transformacija niskopropusnog filtra u visokopropusni
Transformacija niskopropusnog filtra u niskopropusni
Pronijev metod za projektovanje IIR filtera u vremenskom domenu
Projektovanje fir filtara primjenom Parks-MekKlelanovog algoritma
Procjena reda fir filtra
Procjena reda fir filtra propusnika niskih uestanosti
Projektovanje IIR filtra primjenom metoda minimalne kvadratne greke
NAREDBA
decimate
interp
intfilt
resample
ZNAENJE
Decimacija nakon niskopropusnog filtriranja
Interpolacija signala
Projektovanje interpolacionog (decimalnog) filtra
Promjena frekvencije odabiranja
NAREDBA
filter
fftfilt
filtfilt
filtic
medfilt1
ZNAENJE
Implementacija digitalnog filtra
Fir filtriranje primjenom FFT-a
Filtriranje sa nultom fazom
Formira poetne uslove za naredbu filter
Jednodimenzioni median filter
NAREDBA
besselap
besself
buttap
butter
buttord
cheb1ap
cheb1ord
cheb2ap
cheb2ord
cheby1
cheby2
ellip
ellipap
ellipord
fir1
fir2
43
ZNAENJE
Beselove funkcije
Dirihleova ili periodina sinc funkcija
Povorka trougaonih impulsa
Funkcija sin(pi*x)/(pi*x)
Povorka pravougaonih impulsa
ZNAENJE
Demodulacija signala
Modulacija signala
Naponom kontrolisan oscilator
ZNAENJE
Bilinearna transformacija
Chirp z-transformacija
Diskretna kosinusna transformacija
DFT matrica
Diskretna Furijeova transformacija
Hilbertova transformacija
Inverzna diskretna kosinusna transformacija
Inverzna Furijeova transformacija
Impulsno invarijantna transformacija
tfe
zp2sos
zp2tf
realizaciju
Estimacija prenosne funkcije
Pronalazi kanoniku realizaciju za funkciju zadatu preko nula i polova
Pronalazi direktnu realizaciju za funkciju zadatu preko nula i polova
44