Download - MATLAB tutorial, 2. deo.pdf
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
1/25
MATLAB, tutorial, 2. deo
Polinomi i interpolacione funkcije
MATLAB predstavlja polinom kao vektor vrstu iji su elementi
koeficijenti polinoma po opadajuem stepenu promenljive.
Tako je p=[1 -6 -72 -27] prikaz polinoma x3-6x2-72x-27 uMATLAB-u.
Funkcije namenjene za rad sa polinomima
convmnoenje polinomadeconv deljenje polinomapoly karakteristini polinom
polyder diferenciranje polinomapolyfit nalaenje polinoma kojim se aproksimiraju dati podacipolyvalizraunavanje vrednosti polinomapolyvalm izraunavanje vrednosti matrinog polinomaresidue razvoj u racionalne razlomke (reziduale)roots odreivanje nula polinoma
rootsnalazi nule polinoma
r=roots(p)
p je vektor vrsta iji su elementi koeficijenti polinomaAko vektor p ima n+1 elemenata, onda on predstavlja polinom:p1sn+ + pns + pn+1Rezultat je vektor kolona iji su elementi nule polinoma definisanogvektorom p.
Primer1:Nalaenje sopstvenih vrednosti matrice korienjem funkcija poly iroots.
>> A = [-5.0 -52.06; 0.092 -0.443];>> p = poly(A)p =
1.0000 5.4430 7.0045>> r = roots(p)r =
-3.3556-2.0874
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
2/25
polyfitnalazi polinom zadatog reda kojim se aproksimiraju dati podaci
c = polyfit(x, y, n)
c je vektor duine n+1, iji su elementi koeficijenti polinoma zadatogreda n kojim se aproksimiraju podaci dati u vektorima x i yKoeficijenti polinoma c se odreuju korienjem metode najmanjihkvadrata
Primer2:pretpostavimo da su eksperimentalni podaci dati u vektorima x i y.Potrebno je izvriti njihovu aproksimaciju polinomom 4. stepena
>> x = [0.1 0.3 0.4 0.44 0.5 0.7 0.8];
>> y = [1 1.5 1.6 1.4 1.1 1.1 1.5];>> c = polyfit(x, y, 4)c =
13.2447 1.3735 -20.3555 10.3114 0.1641
polyvalizraunava vrednosti polinoma u zadatim takama
y = polyval(c, X)
gde je c vektor koji sadri koeficijente polinoma ije vrednosti treba
izraunati za svaki element vektora ili matrice X
Primer3:potrebno je izraunati vrednosti polinoma dobijenog u prethodnomprimeru u opsegu koji je definisan vektorom x (od 0.1 do 0.8)
Na grafiku prikazati eksperimentalne podatke zvezdicama ivrednosti dobijene izraunavanjem polinoma kojim se aproksimirajueksperimentalni podaci punom linijom
>> x1 = 0.1: 0.1: 0.8;>> y1 = polyval(c, x1);>> plot(x1, y1, x, y, *)
Korienje funkcije plot bie objanjeno kasnije
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
3/25
Funkcije koje slue za interpolaciju podataka
griddata 2D interpolacija sa generisanjem xy mreeinterp1 1-dimenzionalna interpolacijainterp2 2-dimenzionalna interpolacija za zadatu xy mreu
interpft 1-dimenzionalna interpolacija korienjem diskretneFurijeove transformacije
interp1izvodi jednodimenzionalnu interpolaciju
yi = interp1(x, y, xi)yi = interp1(x, y, xi, metod)
yi = interp1(x, y, xi)
daje vektor yi iji elementi odgovaraju elementima vektora xi, priemu su elementi yi izraunati interpolacijom pomou vektora y i xAko je y matrica sa n kolona i brojem redova jednakim duini vektorax, funkcija interp1 daje matricu yi istih dimenzija kao matrica y.
Ukoliko se koristi prva opcija, odnosno ukoliko nije zadat metodinterpolacije, interp1 koristi linearnu interpolaciju
yi = interp1(x, y, xi, metod)vri interpolaciju jednom od sledeih metoda:
- linear
- spline- cubic
Sve navedene metode zahtevaju da su vrednosti elemenata vektorax monotono rastue (opadajue)
cubic zahteva isto rastojanje izmeu susednih taaka
Primer4:linearna interpolacija polinoma>> x = [0.1 0.3 0.4 0.44 0.5 0.7 0.8];
>> y = [1 1.5 1.6 1.4 1.1 1.1 1.5];>> xi = [0.2 0.35 0.6 0.65 0.73 0.73 0.78];>> yi = interp1(x, y, xi)
yi =1.25001.55001.10001.1000
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
4/25
1.22001.30001.4200
Funkcije funkcija
Funkcije koje manipuliu MATLAB funkcijama u cilju reavanjazadataka kao to su:
- analiza i crtanje funkcija- numerika integracija- reavanje sistema obinih diferencijalnih jednaina prvog reda- optimizacija linearnih i nelinearnih funkcija
Postoji poseban MATLAB modul koji sadri dodatne funkcije zareavanje i optimizaciju nelinearnih jednaina (Optimization Toolbox)
Funkcije u okviru ove grupe, koje se nalaze u osnovnom MATLAB-u:
fmin nalaenje minimuma funkcije jedne promenljivefmins nalaenje minimuma funkcije vie promenljivihfplotcrtanje funkcijefzero nalaenje nula funkcije jedne promenljiveode23 reavanje sistema diferencijalnih jednaina metodom Runge-Kutta drugog i treeg redaode45 reavanje sistema diferencijalnih jednaina metodom Runge-Kutta etvrtog i petog redaode23p reavanje sistema diferencijalnih jednaina metodom
Runge-Kutta drugog i treeg reda sa prikazivanjem rezultata ufaznoj ravniquad numeriko reavanje integrala metodom nieg redaquad8 numeriko reavanje integrala metodom vieg reda
fplotcrta grafik funkcije
fplot(fun, granice)fplot(fun, granice, marker)
fplot(fun, granice, marker, tol)[x, Y] = fplot(fun, granice, )
fplot(fun, granice)crta funkciju definisanu znakovnom promenljivom fun izmeuzadatih granica za nezavisno promenljivu definisanu vektoromgranice: [xmin, xmax]
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
5/25
Funkcija koja se crta treba da ima oblik fun(x) gde je x vektor iji jeprvi element xmin a poslednji element xmax, tako da funkcija fun(x)predstavlja takoe vektor istih dimenzija kao x, koji sadri vrednostifunkcije u svim takama vektora x.Ako je fun vektorska funkcija, onda je svaka komponenta fun(x)
kolona matrice.
marker i tol su opcioni argumentimarker je znakovna promenljiva kojom se definie simbol zaiscrtavanje linijeukoliko ovaj argument nije zadat, crta se puna linija, to odgovarasimbolu -.
Funkcija fplot prihvata i sledee simbole:-+, -x, -o, -*
(ili +-, x-, o-, *-)
tol je tolerancija relativne grekeUkoliko nije zadata, podrazumeva se 2e-3.
Opcija [x, Y] = fplot(fun, granice, ) umesto crtea daje vrednostinezavisno promenljive u vektor koloni x i vrednosti zavisnopromenljive u kolonama matrice Y
Primer5:korienje funkcije fplot za dobijanje grafika funkcije dfun definisane
u funkcijskoj M-datoteci dfun.m (u prvom delu tutorijala)
>> fplot(dfun, [0 30])>> ylabel(dfun)>> xlabel(t)
Korienje funkcija ylabel i xlabel bie objanjeno u nastavku teksta.
ode23, ode45reavaju sisteme obinih diferencijalnih jednaina prvog rede opcije:
[t, x]=ode23(xprim, t0, tf, x0)[t, x]=ode23(xprim, t0, tf, x0, tol, status)[t, x]=odee45(xprim, t0, tf, x0)[t, x]=ode45(xprim, t0, tf, x0, tol, status)
Prve dve opcije koriste metodu Runge-Kutta drugog i treeg reda, adruge dve metodu Runge-Kutta etvrtog i petog reda
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
6/25
xprim je znakovna promenljiva koja predstavlja ime funkcijske M-datoteke u kojoj su definisane diferencijalne jednaine koje trebareitifunkcija xprim treba da bude definisana tako da ima najmanje 2ulazna argumenta, skalar t koji oznaava nezavisno promenljivu
(najee vreme) i vektor kolonu x kao zavisno promenljivu (iji suelementi u sistemima upravljanja najee vrednosti promenljivihstanja)Izlazni argument funkcije xprim treba da definie vektor kolonu ijielementi predstavljaju izvode zavisno promenljive (promenljivihstanja)
t0 je poetna, a tf je krajnja vrednost zavisno promenljivex0 je vektor kolona koja sadri poetne vrednosti (promenljivihstanja)
tol je zahtevana tanost i, ukoliko nije drugaije zadato, za ode23iznosi 1.e-3, a za ode45 1.e-6status oznaava zahtev za tampanje meurezultata. Ukoliko se nezada, podrazumevana vrednost je 0 (meurezultati se ne tampaju)
Izlazni argumenti funkcije su vektor vremenske promenljive t uintervalu (t0, tf) i matrica X, ije kolone odgovaraju pojedinimelementima vektora x (vektora promenljivih stanja), a vrsterazliitim elementima vektora t.
Primer6:
Diferencijalna jednaina drugog reda oblika:
+ (x2-1)+x=0
poznata je kao Van der Polova jednaina.Ona se moe napisati kao sistem od dve spregnute diferencijalne
jednaine prvog reda:
1= x1(1-x22)-x2
2= x1
Da bi se reio ovaj sistem jednaina, najpre e biti formirana
funkcijska M-datoteka vdpol.m koja sadri prethodne diferencijalnejednaine prvog reda:
function xdot=vdpol(t, x)xdot = [x(1).*(1-x(2).^2)-x(2); x(1)];
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
7/25
Reavanje sistema diferencijalnih jednaina definisanog u vdpol.m, zaopseg nezavisno promenljive t od 0 do 20 i poetne vrednosti 0 i0.25, izvodi se pozivanjem funkcije ode23, a zatim se dobijenirezultati prikazuju grafiki:
>> t0 = 0;>> tf = 20;>> x0 = [0 0.25];>> [t, X] = ode23(vdpol, t0, tf, x0);>> plot(t, X(:, 1), -, t, X(:, 2), :)>> gtext(x)>> gtext(x)>> xlabel(t)>> ylabel(x)
quad, quad8slue za izraunavanje odreenog integrala funkcije
s = quad(funkcija, a, b)s = quad(funkcija, a , b, tol)s = quad(funkcija, a , b, tol, status)s = quad(funkcija, a , b, tol, status, p1, p2, )s = quad8
quad(funkcija, a , b)daje rezultat numerike integracije funkcije funkcija u granicama od a
do b
tol je opcioni argument kojim se definie veliina relativne greke.Ukoliko se ne zada, automatski dobija vrednost 1e-3
status oznaava zahtev za prikazivanjem vrednosti funkcijetakama na grafiku. Ukoliko se ne zada, ima vrednost 0 koja znai dase grafik ne dobija
s = quad(funkcija, a , b, tol, status, p1, p2, )
omoguava da se parametri p1, p2, direktno proslede u funkcijufunkcija
Argumenti funkcije quad8 imaju isto znaenje kao kod funkcije quad.
Ove 2 funkcije se razlikuju po tome to koriste 2 razliite metode zanumeriku integraciju.quad koristi Simpsonovo pravilo
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
8/25
a quad 8 Newton-Cotesovo pravilo
2D grafici
Grafiki sistem MATLAB-a ine dva nivoa funkcija.
Prvom nivou pripadaju visoko razvijene funkcije za prikazivanje 2D i3D podatakaDrugi, nii, nivo grafikog sistema MATLAB-a ine funkcije kojima sedefinie izgled grafika (boja, orijentacija koordinatnih osa, viegrafika na jednoj slici)
Pregled grafikih funkcija za prikazivanje 2D podataka i funkcija zaoznaavanje 2D grafika:
funkcije za crtanje elementarnih 2D grafika
fill 2D poligoniloglog 2D grafik sa logaritamskom podelom na osamaplot2D grafik sa linearnom podelom na osamasemilogx 2D grafik sa logaritamskom podelom samo na x-osisemilogy 2D grafik sa logaritamskom podelom samo na y-osi
specijalni xy grafici
barcompasserrorbar
featherfplotgrafik funkcijehistpolarrosestairsstemcomet animirano grafiko prikazivanje 2D podataka
plot
daje grafik sa linearnom podelom na osama
plot(Y)plot(x, Y)plot(x, Y, marker)plot(x1, Y1, marker1, x2, Y2, marker2, )
plot(Y) crta kolone matrice Y u funkciji od njenih indeksa
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
9/25
Ako je Y kompleksna matrica, plot(Y) je ekvivalentno saplot(real(Y), imag(Y)U svim drugim sluajevima, imaginarni deo se zanemaruje
plot(x, Y) crta kolone matrice Y u funkciji od x
plot(x, Y, marker) moe se definisati tip (vrsta i boja) linije ili oznakemarker je znakovna promenljiva koja se sastoji od jednog, dva ili triznaka (simbola za liniju, odnosno oznaku i boju) u zavisnosti od togada li se definie samo vrsta linije ili oznake, samo boja ili obojeMogue su sledee oznake za tip i boju linije, odnosno oznake:
simbol linije ili oznake simbol za boju. taka y utao krug m magenta
x x-znak c plavo-zelena+ plus r crvena* zvezdica g zelena- puna linija b plava-. crta-taka k crna: takasta linija w bela-- isprekidana linija
plot(x1, Y1, marker1, x2, Y2, marker2, )povezuje crtee definisane tripletima (x, Y, marker).Ukoliko nije definisan tip linije, MATLAB automatski crta pune linije i
uzima redom prvih 6 navedenih boja.
loglogdaje grafik sa logaritamskom podelom na x i y-osi.
loglog(x, Y)loglog(x, Y, marker)loglog(x1, Y1, marker1, x2, Y2, marker2, )
Znaenje argumenata je isto kao kod funkcije plot.
Primer7:
Crtanje funkcije3 2
1
1x x+ + +u logaritamskom dijagramu
>> x = 0.1: 0.1: 10;>> y = 1./ (x.^3 + x.^2 + x + 1);>> loglog(x, y)
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
10/25
>> grid
semilogx, semilogyDaje dijagram sa semilogaritamskom podelom
semilogx(x, Y)semilogy(x, Y)
semilogx(x, Y) daje dijagram sa logaritamskom podelom na x-osi ilinearnom podelom na y-osi
semilogy(x, Y) daje dijagram sa logaritamskom podelom na y-osi ilinearnom podelom na x-osi
Grafici koji se dobijaju navedenim grafikim funkcijama nemajuoznake koordinatnih osa niti bilo koji drugi ispisan tekst, kao to jenaziv grafika ili linije.
Korienjem sledeih funkcija mogue je ispisivanje teksta na grafikuu unapred odreenoj ili proizvoljno izabranoj poziciji
gridlinije mreegtexttekst na poziciji oznaenoj miemtexttekst na navedenoj pozicijititlenaziv grafikaxlabeloznaka za x-osu
ylabeloznaka za y-osu
Naime, korienjem funkcija title i xlabel (ylabel), na grafiku seispisuje naslov, odnosno naziv grafika i oznaka uz x-, y-osu.
Funkcije text i gtext omoguavaju da se naziv grafika, oznaka osa ilineki drugi tekst ispie na tano definisanoj poziciji ili pozicijiizabranoj miem.
Najvee mogunosti ima funkcija text koja raspolae velikim brojemopcionih ulaznih argumenata kojima se definiu karakteristiketeksta (pozicija, orijentacija, ) koji se ispisuje na grafiku.Njeni argumenti se definiu na isti nain kao argumenti funkcije axeskoja e biti kasnije detaljno opisana
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
11/25
gtextpostavlja tekst na poziciju izabranu miem
gtext(tekst)
tekst je tekst koji treba ispisati na grafiku.Posle izvrenja komande, na grafiku se pojavljuje krsti koji se miemdovodi na mesto gde treba ispisati tekst.Sa dva pritiska na taster mia, tekst se ispisuje.
xlabel, ylabel, zlabelomoguavaju ispisivanje oznaka za x-, y- i z-osu
xlabel(tekst)ylabel(tekst)
zlabel(tekst)
xlabel(tekst) ispisuje navedeni tekst uz x-osu tekueg dijagramaylabel(tekst) ispisuje tekst uz y-osuzlabel(tekst) ispisuje tekst uz z-osu
titleispisuje naslov odnosno naziv za tekui crte
title(tekst)
Grafiko predstavljanje 3D podataka
Neke funkcije prikazuju 3D podatke linijama u 3D graficima (plot3,contour3) ili linijama u 2D graficima (contour)
Druge prikazuju iste podatke pomou 3D mreastih ili obojenihpovrina (mesh, surf, ) kod kojih trea dimenzija odreujeintenzitet boje.
Boja je u MATLAB-u definisana vektorom od 3 elementa koji imajuvrednosti od 0 do 1 i definiu intenzitet crvene, zelene i plave boje,respektivno (tzv. RGB vrednosti).
Na primer,[0 0 0] je crna[1 1 1] bela[1 0 0] crvena
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
12/25
[27/255 1 27/255] marinsko plava
Matrica boja moe imati bilo koji broj vrsta, ali samo tri kolone.
Funkcije za crtanje linija i popunjavanje povrina u 3D prostoru
comet3 animirano grafiko prikazivanje 3D podatakafill3 3D poligoni popunjeni bojomplot3 linije i take u 3D prostoru
Konturni 2D i 3D i drugi 2D grafici 3D podataka
clabel oznake konturnih linijacontour konturne linije u 2D prostorucontour3 konturne linije u 3D prostoru
contourc matrica konturnog crteaimage prikazivanje slike definisane matricom bojapcolor karta bojaquiver prikazivanje podataka vektorima definisanog pravca, smera iintenziteta
clabelispisuje oznake konturnih linija
clabel(C)clabel(C, v)
clabel(C, manual)
clabel(C) dodaje oznake kojima se definie z-koordinata linijama napostojeem konturnom crteu, koristei konturnu matricu C koja sedobija funkcijama contour, contourc, contour3. Pozicija oznaka jesluajna.
clabel(C, v) ispisuje oznake za konturne linije iji su nivoi (z-koordinata) dati u vektoru v. Ukoliko ovaj vektor nije definisan,oznake se ispisuju za sve konturne linije
clabel(C, manual) omoguava postavljanje oznaka na pozicijamaizabranim pomou mia. Proces se prekida pritiskom na tasterEnter.
contourprikazuje 3D podatke konturnim linijama u 2D prostoru
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
13/25
contour(Z)contour(x, y, Z)contour(Z, n)contour(Z, v)contour(x, y, Z, n)
contour(x, y, Z, v)C = contour()[C, h] = contour()
contour(Z) daje konturni crte matrice Z sa unapred definisanimkarakteristikama grafika. Da bi se dobio grafik sa drugaijimkarakteristikama, koriste se naredne opcije:
contour(Z, n) daje konturni crte sa n konturnih linija
contour(Z, v) daje konturni crte sa konturnim nivoima uvrednostima zadatim u vektoru v (z-koordinata)
contour(x, y, Z), contour(x, y, Z, n) i contour(x, y, Z, v) proizvodetakoe konturni crte matrice Z, pri emu je opseg koordinatnih osaodreenih vektorima x i y
C = contour() koja ima jedan izlazni argument daje kao rezultatgrafik i konturnu matricu C. Konturna matrica bez crtanja grafikamoe se dobiti korienjem funkcije contourc.
[C, h] = contour() pored grafika i konturne matrice C daje i vektor hkoji sadri numerike identifikatore svih nacrtanih konturnih linija
Primer8:
konturni crte funkcije2 2 2( 1)7 x y xye e
= + u 2D prostoru za opseg -
4x5 i -3y3
>> y = -3: 0.2 : 3;>> x = -4: 0.3 : 5;>> [X, Y] = meshgrid(x, y);
>> Z = 7* Y .* exp(-X .^ 2 Y .^ 2) exp( - (X+1) .^ 2);>> C = contour(x, y, Z, [-2 -1 0 1.2 2.2])>> clabel(C)
contour3prikazuje 3D podatke konturnim linijama u 3D prostoru
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
14/25
contour3(Z)contour3(Z, n)contour3(X, Y, Z)contour3(Z, v)contour3(X, Y, Z, n)
contour3(X, Y, Z, v)C = contour3()[C, h] = contour3()
Opcije funkcije contour3 imaju potpuno analogno znaenje kaoodgovarajue opcije funkcije contour.Ulazni argumenti X i Y su matrice kojima se definie opseg x-,odnosno y-ose.
Primer9:
Prikazaemo funkciju Z definisanu u prethodnom primeru, ovogaputa konturnim linijama u 3D grafikuDomen funkcije je isti kao u prethodnom primeru, a nivoi koje trebaprikazati: -2.4, -2, -1, 0, 0.6, 1.2, 1.6 i 2.2
>> y = -3: 0.2: 3;>> x = -4: 0.3: 5;>> [X, Y] = meshgrid(x, y);>> contour3(X, Y, Z, [-2.4 -2 -1 0 0.6 1.2 1.6 2.2])
Funkcije kojima se 3D podaci prikazuju pomou povrina u 3D
prostoru
(mogu se dobiti i grafici koji su kombinacija mreastih (obojenih)povrina i konturnih linija, kao i neke druge modifikacije ovih grafika)
mesh 3D mreaste povrinemeshc 3D mreaste povrine sa konturnim linijamameshz 3D mreaste povrine sa linijskim zastorom ili referentnomravni ispod povrineslice grafik koji pokazuje povrine preseka odreene zapremine
surf 3D obojene povrinesurfc 3D obojene povrine sa konturnim linijamasurfl 3D obojene povrine sa svetlosnim efektimawaterfall nepotpune mreaste povrine
mesh, meshc, meshzcrtaju 3D mreaste povrine
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
15/25
mesh(X, Y, Z, C)mesh(X, Y, Z)mesh(x, y, Z, C)mesh(x, y, Z)mesh(Z, C)
mesh(Z)meshc()meshz()
mesh(X, Y, Z, C) crta mreastu troparametarsku povrinudefinisanu matricama X, Y i Z. Boja linija mree definie se matricomC.
mesh(X, Y, Z) koristi C=Z
opcije mesh(x, y, Z, C) i mesh(x, y, Z) sa 2 vektorska argumentaumesto 2 matrina argumenta zahtevaju da je length(x)=n ilength(y)=m gde je [m n]=size(Z). U ovom sluaju svakoj taki mreeodgovara triplet (x(j), y(i), Z(i, j))
opcije mesh(Z, C) i mesh(Z) koriste x=1:n i y=1:m
korienjem opcija meshc() mreastom crteu se dodaju konturnelinije u xy ravni, dok opcije meshz() dodaju linijski zastor ilireferentnu ravan ispod mreaste povrine.
Primer10:grafiki prikaz funkcije
2 2 2 2 2 22 ( 1) 3 5 ( 1)1( , ) 3(1 ) 10( )5 3
x y x y x yxf x y x e x y e e + + =
trodimenzionalnom mreastom povrinom sa konturnim linijama u
xy ravni, u opsegu -3x3 i -3(y(3
>> [X, Y] = meshgrid(-3: 0.125: 3);>> Z = 3.*(1-X).^2.*exp(-X.^2-(Y+1).^2)-10.*(X./5-X.^3-Y.^5).*
exp(-X.^2-Y.^2)-1/3.*exp(-(X+1).^2-Y.^2);
>> meshc(X, Y, Z)>> text(0, -4, 13, peaks)
Napomena: MATLAB sadri demonstracionu datoteku peaks.mkojom je definisana istoimena funkcija, ijim se pozivanjemautomatski moe dobiti grafiki prikaz ove funkcije u obliku obojene
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
16/25
povrine. Razliite opcije korienja funkcije peaks mogu se dobitikomandom help peaks.
surf, surfc, surflcrta 3D obojene povrine
surf(X, Y, Z, C)surf(X, Y, Z)surf(x, y, Z, C)surf(x, y, Z)surf(Z, C)surf(Z)surfc(...)surfl(...)
surf(X, Y, Z, C) crta obojenu troparametarsku povrinu definisanumatricama X, Y i Z. Boja se definie matricom C
surf(X, Y, Z) koristi C=Z
opcije surf(x, y, Z, C) i surf(x, y, Z) sa 2 vektorska argumenta x i yumesto matrinih argumenata X i Y, zahtevaju da je length(x)=n ilength(y)=m gde je [m, n]=size(Z)U ovom sluaju svakoj taki mree odgovara triplet (x(j), y(i), Z(i, j))
opcije surf(Z, C) i surf(Z) koriste x=1:n i y=1:m
opcije surfc() su identine sa odgovarajuim opcijama funkcijesurf(), izuzev to se dobijaju i konturne linije u xy ravni
funkcija surfl omoguuje osvetljavanje prikazane trodimenzioneobojene povrine, definisanjem poloaja svetlosnog izvora
Primer11:>> n=31;>> [X, Y, Z] = sphere(n);
>> surf(X, Y, Z)
U ovom primeru je za generisanje 3D podataka koriena funkcijasphere koja je opisana kasnije
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
17/25
Slede specifine grafike funkcije koje izvode odreene manipulacije3D graficima kao to su:- transformacija u zavisnosti od ugla posmatranja prikazanogobjekta (view)- promena orijentacije i razmere koordinatnih osa (axis)
- prikazivanje vie grafika u jednom koordinatnom sistemu, tako dajedan grafik zaklanja drugi ili da se kroz jedan grafik moe videti idrugi (hidden)
Funkcije za definisanje pojavnog oblika grafika
axis orijentacija i podela na osama 3D grafikacaxis opseg boja za 3D grafikecolormap matrica bojahidden onemoguava prekrivanje linija
view ugao posmatranja 3D grafika
funkcije koje omoguavaju unoenje bilo koje vrste teksta u 3Dgrafike
grid linije mreetext teksttitle naziv grafikaxlabel oznake za x-osu
ylabel oznake za y-osuzlabel oznake za z-osu
MATLAB sadri dve karakteristine M-datoteke cylinder.misphere.mza izraunavanje matrice kojom se definie cilindar
jedinine visine, odnosno sfera sa jedininim poluprenikom.
U zavisnosti od oblika komande kojom se pozivaju ove funkcije, dobijase matrica ili grafik sfere, odnosno cilindra.
cylinder cilindarsphere sfera
Grafike funkcije opte namene
skup grafikih funkcija nieg nivoaomoguavaju dobijanje grafika eljenog izgleda definisanjem bojesamog grafikog prozora, koordinatnih osa, svih ili odreenih linija nagrafiku, podele na osama, ugla posmatranja, pozicije grafika u okvirugrafikog prozora, itd.
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
18/25
isto tako, pomou njih mogu da se izvode manipulacije sa tekstom,linijama, povrinama i drugim grafikim objektima na postojeemgrafiku
MATLAB razlikuje sledee grafike objekte:
ekran (root)grafiki prozor (figure)koordinatne ose (axes)liniju (line)povrinu (surface)tekstualni sadraj grafika (text)sliku matrice podataka (image)popunjeni poligon (patch) koji se dobija korienjem funkcije fill ili fill3glavni meni grafikog prozora (uimeni)grafiku vezu kojom se obezbeuje kontrola grafikih funkcija od
strane korisnika (uicontrol)
Svi individualni grafiki objekti imaju poseban numeriki identifikator(handle) koji se dodeljuje objektu prilikom njegovog formiranja. Nekigrafici, kao to su konturni crtei, sadre vie objekata (individualnelinije konturnog crtea), tako da svaki od njih ima posebanidentifikator.
Kontrola grafikog prozora
clf brisanje sadraja aktivnog grafikog prozora
close zatvaranje grafikog prozorafigure otvaranje grafikog prozoragcf dobijanje numerikog identifikatora aktivnog grafikog prozora
Kontrola koordinatnih osa
axes crtanje koordinatnog sistemaaxis kontrola podele i izgleda koordinatne osecaxis kontrola pseudobojegca dobijanje numerikog identifikatora aktivnog koord. sistema
hold omoguavanje prikazivanja vie grafikasubplot crtanje vie koordinatnih sistema na odreenim pozicijamagrafikog prozora
Grafiki objekti se formiraju pozivanjem odgovarajuih funkcija:(imaju veliki broj opcionih argumenata koji predstavljaju parove(svojstvo objekta, vrednost svojstva objekta) i koji omoguavaju dase dobije grafik eljenog izgleda)
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
19/25
Glavni grafiki objekti
axes koordinatni sistemfigure grafiki prozorimage slika matrice podataka
line linijapatch popunjeni poligonsurface obojena povrinatext tekstuicontrol grafika veza sa korisnikom u okviru grafikog prozorauimeni glavni meni grafikog prozora
subplotomoguuje crtanje vie grafika u okviru jednog grafikog prozora
subplot(m, n, p)
unutar grafikog prozora pravi mxn matricu linearnih dvodimenzionihgrafika i aktivira p-ti. Ako grafik ve postoji na naznaenoj poziciji,ovom komandom se aktivira za korienje
axescrta koordinatni sistem eljenog izgleda
axesaxes(h)
h = axes(svojstvo, vrednost, )
axes bez argumenata automatski crta koordinatni sistem idodeljuje odreenu vrednost numerikom identifikatoru hkoordinatnog sistema. Vrednost identifikatora h aktivnogkoordinatnog sistema moe se dobiti komandom gca. Veliina ipozicija koordinatnog sistema su automatski zadate, tako dakoordinatni sistem ispunjava ceo grafiki prozor.
axes(h) aktivira za korienje koordinatni sistem iji je numeriki
identifikator h
h = axes(svojstvo, vrednost, ) omoguava formiranjekoordinatnog sistema eljenog izgleda. Prvi argument definiesvojstvo (osobinu), a drugi vrednost svojstva. Ova opcija pruamogunost da koordinatnom sistemu kao grafikom objektupromenimo vrednosti nekih svojstava koje su automatski zadate,ukoliko nam te vrednosti ne odgovaraju.
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
20/25
Sledi prikaz naziva i moguih vrednosti najvanijih svojstavakoordinatnog sistema:
- Position definie poziciju koordinatnog sistema unutargrafikog prozora. Vrednost ovog svojstva je odreena
vektorom od 4 elementa. Prva 2 elementa definiu rastojanjenjegovog donjeg levog ugla od donjeg levog ugla grafikogprozora, dok druga dva elementa definiu irinu i visinupravougaonika u koji se smeta koord. sistem
- AspectRatio je vektor sa 2 elementa. Prvi definie odnosduine vertikalne ose prema duini horizontalne ose. Drugielement definie odnos jedinice duine vertikalne ose prema
jedinici duine horizontalne ose- Children je vektor numerikih identifikatora svih grafikih
objekata unutar koordinatnog sistema, npr. linija
-
Clim je vektor sa 2 elementa: [cmin, cmax]. Ovo svojstvodefinie kako MATLAB preslikava podatke u kartu boja. Ukolikionije drugaije definisano, najmanjem podatku odgovara prvielement karte boja, a najveem poslednji. Ovo se moepromeniti tako to se sa cmin definie najmanji podatak koji sepridruuje prvom elementu karte boja, a sa cmax najveipodatak koji se pridruuje poslednjem elementu karte boja.Podaci izvan ovog opsega se nee videti.
- Color je znakovna promenljiva koja oznaava odreenu boju.Ovim svojstvom se definie boja pravougaonika u koji sesmetaju koordinatne ose
- - ColorOrder boja linija na crteu. Ukoliko nije ve definisana
funkcijama plot ili plot3-
- GridLineStyle tip linije mree -, --, -. , :- NextPlot da li e se naredni grafik prikazati u novom
koordinatnom sistemu (new), dodati u aktivni koordinatnisistem (add) ili e se prikazati u aktivnom poto se prethodnigrafik izbrie (replace)
- Parent numeriki identifikator grafikog prozora u kojem se
crta koordinatni sistem. Vrednost identifikatora aktivnoggrafikog prozora se moe dobiti funkcijom gcf
- - TickLength zadaje duinu crtice za oznaku podele na osama, u
jedinicama normalizovanim relativno u odnosu na dimenzijepravougaonika u koji je smeten koordinatni sistem. Ovosvojstvo se definie vektorom sa dva elementa od kojih prvidefinie duinu oznaka za 2D grafike, a drugi za 3D grafike
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
21/25
- Units definie jedinice koje se koriste za definisanje svojstvaPosition. Sve mere se raunaju u odnosu na donji levi ugaografikog objekta. Ovo svojstvo moe da ima sledeevrednosti: pixels, normalized, inches, centimeters, points.Normalizovane jedinice oznaavaju donji levi ugao grafikog
prozora kao (0, 0), a gornji desni sa (1.0, 1.0) (1 point = 1/72ina)
- View je vektor sa 2 elementa ([az, el]) koji definie taku kojase koristi za transformaciju 3D grafika u 2D
- Visible moe imati vrednosti on ili off. Ovo svojstvo odreujeda li se objekat prikazuje na ekranu ili ne. Ako je vrednostsvojstva Visible off, koordinatne ose, podela i oznake na osamase ne prikazuju na ekranu. Ukoliko nije drugaije definisano,automatski se zadaje on.
setdefinie svojstva grafikih objekata
set(h, svojstvo, vrednost, ...)set(h)set(h, svojstvo)
set(h, svojstvo, vrednost, ...)(h numeriki identifikator grafikog objekta) definie odreenuosobinu grafikog objekta tako to joj dodeljuje navedenu vrednost
set(h) ispisuje sva svojstva grafikog objekta definisanognumerikikm identifikatorom h zajedno sa njihovim vrednostima
set(h, svojstvo) ispisuje mogue vrednosti navedenog svojstvagrafikog objekta iji je identifikator h
(funkcija print omoguava i uvanje grafika u datotekama razliitihformata)
orient izbor orijentacije papira pri tampanju grafikog prozora
print tampanje grafika ili uvanje u datoteciprintopt definisanje konfiguracija lokalnog aktivnog tampaa
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
22/25
printtampa sadraj grafikog prozora ili ga uva u datoteci sanavedenim imenom
print
print datotekaprint format datoteka
print bez argumenata alje sadraj grafikog prozora na tampadefinisan u datoteci printopt.m
print datotekauva sadraj grafikog prozora u datoteci ije je ime navedeno. Akonije naveden nastavak imena datoteke, MATLAB automatskidodeljuje odgovarajui
print format datotekauva sadraj grafikog prozora u datoteci ije je ime dato, dok jeformat definisan sa formatMATLAB raspolae velikim brojem upravljakih programa koji definiuformat od kojih navodimo samo neke:-dps-dpsc-deps-dgif8-dpcx256
-dhpgl-dlaserjet
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
23/25
Funkcije znakovnih promenljivih
2 tipa podataka:- numeriki- znakovni
Znakovni tip podataka sastoji se od niza ASCII znakova.Znakovni podaci se unose okrueni jednostrukim apostrofima.
Znak apostrofa je takoe doputen i predstavlja se sa 2 uzastopnaapostrofa.
Prazno mesto se tretira kao i svaka druga znakovna vrednost
Primer12:
Neka je S znakovna promenljiva kojoj hoemo da dodelimo vrednostMATLAB
>> S = M A T LABS =
M A T LAB
Svaki znak promenljive S tretira se kao 1 element vektora tako da jeS vektor sa 9 elemenata (3 prazna mesta)
>> size(S)
ans =9
Opte funkcije za rad nad znakovnim promenljivim
abs konverzija znakova u ASCII numerike vrednostievalizvravanje znakovne vrednosti kao MATLAB komandeisstr nalaenje znakovnih vrednostisetstr konverzija ASCII numerike vrednosti u znakovnestr2mat formiranje matrice znakovnih promenljivih
strings informacije o znakovnim promenljivama
Poreenje znakovnih vrednosti
lower zamena velikih slova malimstrcmp poreenje znakovnih vrednostiupper zamena malih slova velikim
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
24/25
abspokazuje ASCII numeriku vrednost za svaki znak znakovnepromenljive
Y = abs(S)
gde je S znakovna promenljiva
Primer13:>> c = abs(S)c =
77 32 65 32 84 32 76 65 66(S je znakovna promenljiva definisana u prethodnom primeru)
str2matformira matricu znakovnih promenljivih
S = str2mat(t1, t2, t3, )
formira matricu S koja sadri znakovne promenljive t1, t2, t3, kao vrste matrice
strcmpuporeuje znakovne promenljive
k = strcmp(s1, s2)
k ima vrednost 1 ako su znakovne promenljive s1 i s2 identine, a 0ako nisu
Konverzija znakovnih vrednosti u numerike i obrnuto
int2strnum2strsprintf (numeriki -> znakovni prema datom formatu)sscanf (znakovni -> numeriki prema datom formatu)str2num
int2strkonverzija celobrojnih numerikih vrednosti u znakovne
s = int2str(n)
-
7/24/2019 MATLAB tutorial, 2. deo.pdf
25/25
num2strkonverzija numerikih vrednosti u znakovne
s = num2str(x)
str2numkonverzija znakovnih vrednosti u numerike
x = str2num(s)
prevodi u broj tekst s koji pored ASCII brojeva moe da sadridecimalnu taku i znake ili +
Konverzija heksadecimalnih brojeva u decimalne i obrnuto
dec2hexhex2dechex2num (u decimalne brojeve sa dvostrukom preciznou)