matcap20

13
Partea a III-a GRAFICĂ ÎN MATLAB 20. REPREZENTĂRI GRAFICE 2D 20.1. Reprezentări grafice elementare Funcţiile MATLAB pentru reprezentări grafice elementare sunt: plot Reprezintă grafice în coordonate X-Y liniare; loglog Reprezintă grafice în coordonate X-Y logaritmice; semilogx Reprezintă grafice în coordonate X-Y semilogaritmice (axa X este logaritm ică); semilogy Reprezintă graficele în coordonate X-Y semilogaritmice (axa Y este iogaritmică); fiii Reprezintă grafic poligoane. 20.1.1. Reprezentarea grafică în coordonate liniare Pentru reprezentarea datelor în coordonate liniare se utilizează funcţia plot, se apelează cu una dintre sintaxele: pbt{v) ptof(x,y) pfo/fr.y.'linie-tip 1 ) pfof(x1 ,y1 ,x2,y2,...) plot(y) - reprezintă grafic argumentul y funcţie de indici, cu următoarele precizări: a) - dacă argumentul y este complex, pMy) este echivalent cu plot(real(y),imag(y)); b) - dacă y este vector (linie sau coloană), funcţia ptof trasează graficul y=y(i), unde i =1,2,...n este numărul de ordine al elementului y; c) - dacă y este o matrice m x n, funcţia ptof trasează graficele y ] = yfi), unde i=1,2,...n este numărul de ordine al elementului de pe coloana j; pbt{ x,y) - reprezintă grafic vectorul y funcţie de vectorul x, cu următoarele precizări: a) - dacă x este vector, iar y este matrice, atunci coloanele lui y sunt trasate funcţie de vectorul x; b) - dacă x şi y sunt matrice de aceeaşi dimensiune, se reprezintă coloanele lui y funcţie de coloanele lui x. pto/(x1 ,y1 ,x2,y2) - reprezintă simultan mai multe grafice în acelaşi sistem de coordonate. Graficele se pot reprezenta utilizând linii, markere şi cubri după codul din tabelul 20.1. Pentru reprezentările grafice, se asociază fiecărei caracteristici un şir de 1-3 caractere, dintre cele menţionate în tabelul de mai sus. Aceste şiruri de caractere trebuie cuprinse între apostrofuri şi menţionate în combinaţia cubare-marker sau

Upload: linndowws

Post on 06-Nov-2015

214 views

Category:

Documents


0 download

DESCRIPTION

cursuri de facultate in romana MatLab

TRANSCRIPT

Partea a III-aGRAFIC N MATLAB20. REPREZENTRI GRAFICE 2D 20.1. Reprezentri grafice elementareFunciile MATLAB pentru reprezentri grafice elementare sunt:plotReprezint grafice n coordonate X-Y liniare;loglogReprezint grafice n coordonate X-Y logaritmice;semilogxReprezint grafice n coordonate X-Y semilogaritmice (axa X estelogaritm ic);semilogyReprezint graficele n coordonate X-Y semilogaritmice (axa Y esteiogaritmic);fiiiReprezint grafic poligoane.20.1.1. Reprezentarea grafic n coordonate liniarePentru reprezentarea datelorn coordonate liniare se utilizeaz funcia plot, seapeleaz cu una dintre sintaxele:pbt{v)ptof(x,y)pfo/fr.y.'linie-tip1)pfof(x1 ,y1 ,x2,y2,...)plot(y) - reprezint grafic argumentul y funcie de indici, cu urmtoarele precizri:a) - dac argumentul y este complex, pMy) este echivalent cu plot(real(y),imag(y));b) - dac y este vector (linie sau coloan), funcia ptof traseaz graficul y=y(i), undei =1,2,...n este numrul de ordine al elementului y;c)- dac y este o matrice m x n, funcia ptof traseaz graficele y] = yfi), undei=1,2,...n este numrul de ordine al elementului de pe coloana j;pbt{ x,y) - reprezint grafic vectorul y funcie de vectorul x, cu urmtoarele precizri:a)- dac x este vector, iar y este matrice, atunci coloanele lui y sunt trasate funciede vectorul x;b)- dac x i y sunt matrice de aceeai dimensiune, se reprezint coloanele lui yfuncie de coloanele lui x.pto/(x1 ,y1 ,x2,y2) - reprezint simultan mai multe grafice n acelai sistem de coordonate.Graficele se pot reprezenta utiliznd linii, markere i cubri dup codul din tabelul 20.1.Pentru reprezentrile grafice, se asociaz fiecrei caracteristici un ir de 1-3 caractere, dintre cele menionate n tabelul de mai sus. Aceste iruri de caractere trebuie cuprinse ntre apostrofuri i menionate n combinaia cubare-marker sau culoare-linie-tip. Dac se precizeaz o singur caracteristic (marker, linie sau culoare), cea de-a doua esteselectat de calculator. Astfel, instruciunea p/o/(x1,y1,':',x2,y2,'+r1) reprezint cu linie din puncte" pentru prima caracteristic (x1,y1), i cu markere plus" de culoare roie, a doua caracteristic.

Dac nu se specific culoarea, MATLAB-ul folosete implicit galben. Pentru grafice multiple se utilizeaz succesiv primele ase culori din tabel.Pentru o citire mai precis a datelor pe grafic reprezentarea se poate asocia cu funcia de trasare a caroiajului grid.Funcia plot retumeaz un vector coloan al identificatorilor de control al caracteristicilor obiectelor linie. Obiectele linie create cu p/of sunt copii ai axelor curente.Perechile (x,y) pot fi urmate de perechile parametrul/valoare, pentru a specifica proprieti suplimentare ale liniilor.Exemplul 20.1.1. S se reprezinte grafic funciile: f(x)=sin(2j:50t) cu linie-punct de culoare verde i g(x)=f(x)+.2 cu markere-stea de culoare roie . Cu secvena MATLAB:t=0:.001:.02; f=sin(2*pi*50*t) ; g=f+.2;plot(t,f,'-.g',t,g,'*r') se obine figura 20.1.

20.1.2. Reprezentarea grafic n coordonate logaritmice isemilogaritmicePentru reprezentrile grafice n coordonate logaritmice sau semilogarirmice se utilizeaz funciile loglog, semilogx, semilogy; se apeleaz cu sintaxele:loglog(x,y)semilogx{x,y)semilogy(x,y)Funcia logbg scaleaz ambele axe utiliznd logaritmul n baza 10, n timp ce funciile semilogx sau semilogy scaleaz logaritm ic numai axa x, respectiv axa y, cealalt ax fiind scalat liniar. Modul de utilizare al acestor funcii este la fel ca acela al funciei plot.Exemplul 20.1.2. S se reprezinte n coordonate semilogaritmice (axa y) funcia: f(x)=1Ox. Cu secvena MATLAB:x=0:.l:10; f=10.Ax; semilogy(x,f) se obine graficul din figura 20.2.

20.1.3. Reprezentarea grafic a poligoanelorReprezentarea grafic a poligoanelor utilizeaz funcia fiii, se apeleaz cu una dintre sintaxele:ffl/(x,y,c)W/(x,y,'c')fffl[x1,y1,c1,x2,y2,c2,...)Funcia /y7^x,y,c) reprezint un poligon definit de vectorii x i y, cu nuanele de culoare precizate de c. Coordonatele vrfurilor poligonului sunt specificate prin perechile (x,y).Dac argumentul c este un singur caracter dintre cele prezentate n lista de culori din tabelul 20.1 sau un vector cu trei componente [rg b], poligonul va fi colorat ntr-o singur culoare. n cazul n care c este un vector cu aceeai dimensiune ca x i y, elementele acestuia sunt scalate cu funcia caxis i apoi utilizate ca indici ntr-o matrice care specific culorile vrfurilor. Culorile dintre vrfuri sunt obinute prin interpolare biliniar a culorilor vrfurilor.Dac x i y sunt matrice de aceeai dimensiune, ffl/(x,y,c) reprezint cte un poligon pentru fiecare coloan. n acest caz, c este un vector linie pentru poligoane cu o singur culoare i respectiv o matrice pentru poligoane cu culori interpolate.Dac numai unul dintre argumentele x sau y este matrice, cellalt fiind vector coloan cu acelai numr de linii, vectorul coloan se va extinde la o matrice cu aceleai dimensiuni, prin adugarea unor coloane identice.Pentru specificarea poligoanelor multiple se poate utiliza i forma fi//(x1,y1,c1,x2,y2,c2,...), mult mai uor de controlat.Funcia fiii seteaz proprietatea FaceColor a funciei patch (care creeaz module obiect) la 'Hat' (aceeai culoare), 'interp' (culori interpolate) sau ColorSpec (culoarea specificat), funcie de valorile matricei c.Funcia fiii returneaz un vector coloan al identificatorilor de control al caracteristicilor modulelor obiect, cte o linie pentru fiecare modul. Argumentele x,y,c pot fi urmate de perechi parametru/valoare pentru a specifica proprieti suplimentare ale modulului obiect.Exemplul 20.1.3. S se reprezinte grafic poligonul din figura 20.3a. Cu secvena MATLAB:xl=[0 3 2 -l];yl=[-l -1 2 2]; x2=[3 5 2]; y2=[-l 3 2]; fill(xl,yl,1b',x2,y2, 'g') se obine rezultatul din figura 20.3b.

20.2. Reprezentri grafice speciale X-YFunciile MATLAB pentru reprezentri grafice speciale sunt:polarReprezint grafice n coordonate polare;barReprezint grafice cu bare;sternReprezint grafice sub form discret (util pentru semnale discrete);stairsReprezint grafice n trepte (util pentru semnale cuantizate);errorbarEvideniaz eroarea datelor reprezentate grafic;histReprezint grafic histograma datelor;roseReprezint grafic histograma unghiular a datelor (coordonatepolare);compassReprezint grafic vectorii argument, precizai prin proieciile pe axe,cu sgeile orientate dinspre origine;featherReprezint grafic vectorii argument, precizai prin proieciile pe axe,ordonai echidistant pe axa orizontal;/p/ofRealizeaz controlul reprezentrilor grafice cu parametri impui;cornetReprezint dinamic (n micare) traiectoria unui punct ntr-oreprezentare grafic 2D.20.2.1. Reprezentarea grafic n coordonate polareReprezentarea n coordonate polare se face cu funcia polar, se apeleaz cu una dintre sintaxele:po/aA(theta,r)po/a^theta, r, 'linie-tip')Modul de folosire al opiunii linie-tip este identic cu cel al funciei plot.Exemplul 20.2.1. S se reprezinte n coordonate polare funcia:f(x)=sin(2t)cos(2t). Cu secvena MATLAB:t=0:.01:2*pi; f=sin(2*t).*cos(2*t); polar(t,f) se obine reprezentarea din figura 20.4.

20.2.2. Reprezentarea graficelor cu bareReprezentarea grafic cu bare se face cu funcia bar, se apeleaz cu una dintresintaxele:bar{y)- traseaz un grafic de bare cu elementele vectorului y, adic y=y,.bar{x,y)- traseaz un grafic de bare cu elernentele vectorului y la locaiilespecificate de vectorul x, adic y=y(x). Valorile lui x trebuie s fie egal deprtate i cresctoare.[xb.yb] = bar(y), i[xb.yb] = bar{x,y) - nu reprezint graficele, dar calculeaz vectorii xb i yb astfel nct p/of(xb,yb) s poat trasa graficul de bare. Aceasta e util n situaiile n care se dorete un control mai mare asupra graficului;spre exemplu, combinarea mai multor grafice de bare elaborate cu instruciunea plot.Exemplul 20.2.2. S se reprezinte graficul cu bare al datelor coninute n vectorul y=[1 3 7 6 5 2 3]. Cu secvena MATLAB:y=[l 3 7 6 5 2 3] ; bar(y) se obine graficul din figura 20.5.

20.2.3. Reprezentarea discret a datelorReprezentarea grafic a semnalelor discrete se face cu funcia stern, sub forma unor linii terminate cu cercule la extremitatea opus axei; se apeleaz cu una dintre sintaxele:sfem(y) - traseaz un grafic din linii cu cercule, cu elementele vectorului y; sfem(x.y) -traseaz un grafic din linii terminate cu cercule, cu locaiile specificate devectorul x, adic y=y(x). Valorile lui x trebuie s fie egal deprtate icresctoare.sfem(x,y, linietip) - traseaz un grafic din linii de tipul i culoarea precizat n irul decaractere linie_tip, aa cum a fost precizat la funcia plot. Spre exemplu:stem(x,y,':r').

Cu secvena MATLAB:n=0:20; f=sin(2*pi*n/10); stem(n,f) se obine graficul din figura 20.6.

20.2.4. Reprezentarea graficelor n trepteGraficele n trepte sunt utilizate la reprezentarea diagramelor sistemelor numerice de eantionare i prelucrare a datelor.Reprezentarea grafic n trepte se face cu funcia stairs, care se apeleaz cu una dintre sintaxele:stairs{y)- traseaz graficul n trepte al elementelor vectorului y.stairs(x,y)- traseaz graficul n trepte al elementelor vectorului y la locaiilespecificate n x. Valorile lui x trebuie s fie egal deprtate i nordine cresctoare, [xb.yb] = stairs(y), i [xb.ybj = stairs(x,y) - calculeaz vectorii xb i yb, asfel nct p/o/(xb,yb) s poattrasa graficul n trepte.Exemplul 20.2.4. S se reprezinte graficul n trepte al funciei y=sin(x). Cu secvena MATLAB:x = 0:.2:6; y=sin(x); stairs(x,y) se obine graficul din figura 20.7.

20.2.5. Reprezentarea grafic a erorilorReprezentarea grafic a datelor cu bare de eroare ataeaz fiecrei perechi (x,y) eroarea precizat ntr-un vector cu aceleai dimensiuni; se apeleaz cu sintaxa:errorbar(x,y,e)Vectorul e conine lungimea barelor ce reprezint eroarea. Barele de erori" se reprezint simetric n raport cu ordonata y, ceea ce presupune o asociere de erori pozitive sau negative, cu aceeai probabilitate. Segmentele de eroare sunt de nlime 2*e i se traseaz pe curba y=y(x). Figura obinut reprezint plaja de valori pe care o poate lua funcia y cu eroarea e".Dac x i y sunt matrice de aceeai dimensiune, funcia errorbar va reprezenta graficul cu bare de eroare pentru fiecare coloan n parte.Exemplul 20.2.5. S se reprezinte un grafic cu bare de erori pentru:y=sin(x). Cu secvena MATLAB:x = 0:.2:6; y = sin(x); e=rand(size(x))/5; errorbar(x,y,e) se obine reprezentarea din figura 20.8.

20.2.6. Reprezentarea grafic a histogramelorCalculul i reprezentarea grafic a histogramelor se face cu funcia hist, se apeleazcu una dintre sintaxele:hist{y)- traseaz histograma cu 10 segmente a datelor vectorului y;hist{y,nb)- traseaz histograma cu nb segmente a datelor vectorului y;hist(y,x)- traseaz histograma datelor vectorului y la abscisele specificate n x;[n,x]=hist{y),[n,x]=hist{y,r\b),[n,x]=hist(y,x) - retumeaz vectorii n i x coninnd frecvena de apariie i localizarea segmentelor; cu barix.n) se poate apoi trasa histograma. Aceste proceduri se utilizeaz n situaiile n care este necesar o mai mareflexibilitate n reprezentrile grafice. Combinarea histogramei cu instruciuni mai elaborate de trasare i reprezentare grafic poate conduce la obinerea unor grafice deosebit de sugestive.Exemplul 20.2.6. S se genereze histograma unui vector cu elementele distribuite normal (Gaussian). Cu secvena MATLAB:x=-3:.3:3; y=randn(10000,1); hist(y,x) se obine graficul din figura 20.9.

Reprezentarea unei histograme n coordonate polare se face cu funcia rase; se apeleaz cu una dintre sintaxele:rose(x)rose(x,N)[t,r]=rase(...)unde x trebuie s fie n intervalul [0, 2n], iar N este numrul de subintervale n care se mparte intervalul [0, 2ri\. Valoarea implicit pentru N este 20.Dac funcia rose se apeleaz cu argumente, atunci returneaz cei doi vectori t i r, care se vor folosi pentru reprezentarea histogramei polare, cu funcia polar{tj).Exemplul 20.2.7. S se reprezinte grafic histograma a 100 numere aleatoare n coordonate polare. Cu secvena MATLAB:x=2*pi*rand(100,1); rose(x,10) se obine graficul din figura 20.10.

20.2.7. Reprezentarea grafic a vectorilorFuncia compass reprezint grafic vectori cu originea n originea sistemului de coordonate; se apeleaz cu una dintre sintaxele:compass{z)compass(x,y)unde z este numrul complex x+iy, iar x i y sunt numere reale - proiecia vectorului pe abscis i ordonat.Exemplul 20.2.8. S se reprezinte grafic vectorii:zi = 2 - 5iz2 = -2 + iz3 = 3 + 2iCu secvena MATLAB:z=[2-5*i, -2+i, 3+2*i];compass(z); grid se obine graficul din figura 20.11:

Funcia feather reprezint grafic vectori cu originea plasat echidistant pe axa Ox; se apeleaz cu una dintre sintaxele:featheiz)feather(x,y)unde z este numrul complex x+iy, iar x i y sunt numere reale - proiecia vectorului pe abscis i ordonat.Exemplul 20.2.9. S se reprezinte grafic cu originile pe axa Ox vectorii:zl = 2-5iz2 = -2 + iz3 = 3 + 2iCu secvena MATLAB:z=[2-5*i, -2+i, 3+2*i];feather(z); grid se obine graficul din figura 20.12.

20.2.8. Reprezentri grafice cu parametri impuiFuncia fplot realizeaz o reprezentare grafic cu anumite restricii; se apeleaz cu una dintre sintaxele:fplot{'fun', limite)fplot('fur\', limite,n,unghi)fplot{'iun', limite,n)/p/ctf('fun', limite,n.unghi.subdiv)[x, y]= /p/of('fun', limite,...)Funcia fplot reprezint grafic funcia fun" ntre limitele specificate de argumentul limite".Argumentele funciei fplot au urmtoarele semnificaii:fun- numele fiierului funcie (ir de caractere);limite=[xmin xmax] - limitele axei x pentru care se dorete reprezentarea grafic;n- numrul de eantioane cu care este reprezentat funcia (implicitn=25);unghi- cea mai mare schimbare de unghi dintre dou segmente adiacenteale graficului (implicit 10);subdiv- numrul maxim de subdiviziuni dintre dou diviziuni ale scaleipentru care unghiul dintre dou segmente adiacente nu este mai mare dect valoarea impus (implicit 20).Dac funcia fplot se apeleaz cu argumentele de ieire [x,y], n aceti vectori coloan sunt returnate valorile abscisei i ordonatei funciei. Reprezentarea grafic se poate face ulterior cu funcia plot(x,y).Exemplul 20.2.9. Fie fiierul funcie:function y=test(x)y=sin(x)./x;nregistrat cu numele test.m. S se reprezinte grafic funcia din fiierul test.m, ntre limitele [-20, 20] cu n=50 eantioane. Cu secvena MATLAB:fplot('test1,[-20 20], 50); grid se obine graficul din figura 20.13.

20.2.9. Reprezentri grafice dinamice 2DPentru a reprezenta grafic un punct care urmrete realizarea grafic (comet") se folosete funcia cornet, se apeleaz cu una dintre sintaxele:comet(y)comet(x,y)come/(x,y,p)Apelat fr argumente de intrare, funcia cornet lanseaz demonstraia cu acelai nume. Dac se apeleaz cu unul sau cu dou argumente de intrare, se realizeaz o reprezentare grafic a lui y sau y(x), urmrite de un marker (comet"), la o distan de 0.1 din lungimea vectorului y. Apelarea cu trei argumente realizeaz acelai lucru, ns distana de urmrire este setat la valoarea p din lungimea total a vectorului y.Exemplul 20.2.9. Urmrii modul de lucru al funciei cornet, cu secvena MATLAB:t = 0:1/10000:.!; y=sin(2*pi*50*t); cornet (t, y, . 2 )