Sunteți pe pagina 1din 32

UTILIZAREA SISTEMULUI MATLAB PENTRU APLICA II GRAFICE

1. Generalit i
MATLAB este un mediu de programare i un limbaj de nalt performan utilizat n tehnic care integreaz calcul numeric, grafic avansat, vizualizare i programare. Acesta ofer cercettorilor, inginerilor i oricrui om de tiin un sistem interactiv, puternic i uor de utilizat, n care problemele i solu iile sunt exprimate ntr-un mod natural. Utilizrile sale tipice includ: - calcul matematic (numeric i simbolic); - algoritmi de dezvoltare; - modelare i simulare; - analiz de date, explorarea i vizualizarea acestora; - grafic tiin ific i inginereasc; - aplica ii de dezvoltare, incluznd realizarea de interfe e grafice utilizator. MATLAB are o familie de aplica ii specifice numite "toolboxes", care aplic o tehnologie specializat i care sunt o colec ie de func ii MATLAB ("M-files") ce extind mediul MATLAB s rezolve clase particulare de probleme. Aria n care sunt disponibile toolbox urile include: procesare de semnal, procesare de imagine, comanda sistemelor, simulare, re ele neurale, fuzzy logic i multe altele. Toat familia de produse MATLAB apar ine firmei The MathWorks Inc. Ultima versiune este MATLAB 7. MATLAB este un sistem interactiv, al crui element de baz este o matrice care nu trebuie declarat nainte de folosire i care nu are o dimensiune ce trebuie specificat. n sens larg, un vector este o matrice cu o linie sau o coloan, iar un scalar este un vector cu dimensiunea 1. Acest mod de lucru permite exprimarea simpl i natural a opera iilor matematice (aa cum s-ar scrie pe hrtie) i rezolvarea multor probleme de calcul tehnic cu formulri matriceale i vectoriale. Numele de MATLAB provine de la "matrix laboratory". MATLAB lucreaz fie n modul linie de comand, situa ie n care fiecare linie este prelucrat imediat, rezultatele putnd fi afiate, fie cu programe (mai multe instruc iuni MATLAB, cu posibilitatea apelrii altor fiiere de acelai tip i a apelrii recursive) con inute in fiiere numite fiiere M ("M-files") deoarece au extensia .m. Sistemul MATLAB cuprinde 5 pr i principale. 1) Limbajul MATLAB este un limbaj de nivel nalt de tip matrice / vector cu instruc iuni de control, func ii, structuri de date, intrri / ieiri i trsturi de programare orientat pe obiecte. 2) Mediul de lucru MATLAB este un set de instrumente i facilit i cu care intr n contact utilizatorul sau programatorul MATLAB. Include facilit i pentru gestiunea variabilelor (acces, vizualizare, informa ii) n spa iul de lucru i importarea / exportarea datelor. n plus, permite dezvoltarea, depanarea i lucrul cu fiiere de tip M ("M-files"). 3) "Handle Graphics" este sistemul grafic MATLAB care include comenzi de nivel nalt pentru vizualizri 2-D i 3-D, procesare de imagine, anima ie i prezentri grafice. Include i comenzi de nivel redus pentru personalizarea modului de prezentare a graficelor i construirea interfe elor grafice utilizator (GUI) pentru aplica ii. 4) Librria de func ii matematice MATLAB este o colec ie vast de algoritmi de calcul i analiz. Exist peste 500 de func ii matematice, pentru statistic i inginerie optimizate pentru calcul matriceal. Acestea includ: - algebr liniar i calcul matriceal; - func ii Fourier i de analiz statistic; - rezolvare de ecua ii diferen iale;
1

- opera ii trigonometrice i alte opera ii matematice fundamentale. 5) Interfa a Program Aplica ie ("Application Program Interface") API - este o librrie specializat care permite interac iunea cu programe externe mediului MATLAB. Este permis astfel apelarea programelor scrise n C sau Fortran, importarea / exportarea datelor i stabilirea de rela ii de tip client / server ntre MATLAB i alte programe. Cursul i propune s descrie facilit ile grafice MATLAB pentru vizualizarea datelor i stabilirea modului de prezentare a graficelor, precum i pentru crearea unor interfe e grafice utilizator. n acest sens, MATLAB furnizeaz: - o serie de func ii (rutine) grafice de nivel nalt care implementeaz cele mai utilizate tehnici pentru afiarea datelor precum reprezentrile grafice n coordonate rectangulare sau polare, reprezentrile grafice speciale (cu bare, histograme .a.), reprezentrile grafice ale liniilor de contur sau suprafe elor i anima ia; n plus, prin func ii specializate, pot fi controlate unele aspecte privind modul de prezentare al graficelor (culoare, umbrire, etichete pe axe .a.) fr a fi necesar accesarea explicit a unor propriet i ale obiectelor. - sistemul grafic orientat pe obiecte ("Handle Graphics"), care permite inclusiv realizarea de interfe e grafice programabile; "Handle Graphics" definete un set de obiecte grafice (linii, suprafe e, text .a.) i ofer mecanismul de manipulare a acestor obiecte pentru a ob ine rezultatele dorite. Se poate avea astfel un control mult mai precis asupra modului de afiare al datelor i se pot dezvolta aplica ii grafice proprii. Utiliznd "Handle Graphics" , utilizatorul poate crea meniuri i elemente de control interactiv pentru reprezentrile grafice (butoane prin apsare, poten iometre, casete de control, liste de op iuni .a.). Fiierele - M utilizator, create pentru a executa opera ii grafice, pot utiliza att func ii grafice de nivel nalt ct i sistemul "Handle Graphics" n mod direct.

2. Sistemul grafic MATLAB orientat pe obiecte ("Handle Graphics")


MATLAB folosete programarea orientat pe obiecte pentru controlul interactiv al reprezentrilor grafice. Conform acesteia, ferestrele figur sunt obiecte figur (figure) i sunt copii ai obiectului grafic rdcin "root" (fereastra ecran). De asemenea, sunt prin i ai oricror alte obiecte grafice: ai axelor ("axes"), elementelor de control ale interfe elor grafice ("uicontrol") i meniurilor ("uimenu").

Exist 11 tipuri de obiecte grafice: - root , care este n topul ierarhiei i corespunde ecranului computer-ului; n mod automat, la nceputul unei sesiuni MATLAB, este creat obiectul root; - figure corespunde ferestrei figur; - uicontrol sunt obiecte asociate controalelor unei interfe e grafice butoane prin apsare, butoane radio, slidere), care execut o func ie cnd sunt activate de utilizator; - axes obiect care definete o zon din fereastra figur asociat unui sistem de axe; - uimenu obiecte asociate meniurilor unei interfe e grafice utilizator, dispuse n partea de sus a ferestrei figur; - image obiecte de tip imagine;
2

line obiecte grafice primitive de baz pentru cele mai multe grafice 2D; patch- obiecte care constau n poligoane pline i laturile acestora; surface obiecte 3D care corespund repreyentrilor grafice 3D a matricelor de date; text obiecte de tipul ir de caractere; light obiecte care definesc surse de lumin care afecteaz toate obiectele n interiorul unui sistem de axe. Fiecare tip de obiect grafic are o serie de propriet i ce pot fi modificate (setate). Sistemul MATLAB asociaz fiecrui obiect grafic creat un identificator ("handle"). Pentru a putea accesa propriet ile obiectului, este util ca, la crearea acestuia, s se re in identificatorul ntr-o variabil. Modificarea propriet ilor obiectelor grafice se realizeaz apelnd comanda set, care are urmtoarea sintax: set (identificator, ' numele_propriet ii' , valoarea_propriet ii) Pentru a ob ine valoarea curent a unei propriet i se apeleaz func ia get cu urmtoarea sintax: get (identificator, ' numele_propriet ii' ) Identificatorul obiectului rdcin este totdeauna 0. Pentru obiectul figur, n mod implicit acesta este un numr ntreg afiat n bara de titlu a ferestrei grafice. n versiunile mai noi de MATLAB (ncepnd cu 5), prin setarea propriet ii IntegerHandle a figurii la valoarea off, identificatorul figurii poate fi un numr n virgul flotant. Identificatorii oricror alte obiecte grafice sunt numere n virgul flotant. Exist i urmtorii identificatori predefini i: gcf pentru fereastra figur curent (Get Current Figure) gca pentru sistemul de axe curent (Get Current Axes) Exemple de utilizare a func iilor set i get set(gcf, 'color', 'w') stabilete culoarea alb pentru figura curent set(gca, 'color', 'y') stabilete culoarea galben pentru sistemul de axe curent get(gcf, 'color') returneaz culoarea figurii curente get(gca, 'color') returneaz culoarea sistemului de axe curent

3. Fereastra figur
MATLAB afieaz reprezentrile grafice ntr-o fereastr diferit de cea de comand numit fereastra figur ("Figure window"). Caracteristicile acesteia sunt controlate de posibilit ile sistemului de afiare al calculatorului i de propriet ile obiectului figur. Func iile grafice creeaz n mod automat o nou fereastr figur, dac nu exist deja una curent. Dac exist, aceasta va fi folosit pentru afiare. n cazul n care exist mai multe ferestre figur, afiarea va avea loc n figura desemnat a fi cea curent, n mod uzual ultima fereastr utilizat. Pentru a crea o nou fereastr figur care va deveni curent, se apeleaz func ia figure, cu una din urmtoarele sintaxe posibile:
figure h = figure

Varianta a doua se foloseste pentru ca identificatorul noii figuri s fie re inut n variabila h n scopul accesrii ulterioare a figurii. Dac exist mai multe obiecte figur, stabilirea figurii cu identificatorul h ca fiind cea curent, se realizeaz cu sintaxa
figure(h)

Se poate folosi ca identificator al ferestrei grafice curente func ia gcf ("GetCurrentFigure").


3

Exist 54 de propriet i ale obiectului figur. Dintre acestea: 'Color' - vector [ r g b]- stabilete culoarea fondului; 'IntegerHandle' { 'on'}/'off'- identificatorul figurii este un numr ntreg sau un numr n virgul flotant; 'MenuBar' - 'none'/{'figure'}- nu afieaz/afieaz bara de meniuri a ferestrei figur; 'Name' ir de caractere- numele din bara de titlu; 'NumberTitle' { 'on'}/'off'- afieaz sau nu identificatorul figurii n bara de titlu; 'Position' vector cu 4 elemente [left bottom width height] care stabilete pozi ia i dimensiunea ferestrei figur n cadrul ferestrei ecran; 'Resize' { 'on'}/'off' permite sau nu redimensionarea cu mouse-ul a ferestrei figur; 'Visible' { 'on'}/'off' stabilete vizibilitatea ferestrei figur; 'Tag' ir de caractere (etichet) asociat de utilizator obiectului grafic 'Units' 'inches' | 'centimeters' | 'normalized' | 'points' | {'pixels'} | 'characters' satbilete unit ile de msur folosite la proprietatea 'Position';

Spre exemplu, sintaxa get (gcf, curente.

'Position')

furnizeaz vectorul pozi ie al figurii

Observa ie n mod implicit, fondul ferestrei figur este negru pentru versiunile MATLAB inferioare lui 5 i gri ncepnd cu MATLAB 5. Pentru a modifica fondul ferestrei figur, exist dou posibilit i: - se folosete comanda set pentru a modifica proprietatea 'Color' la valoarea dorit; - se folosete whitebg. Sintaxe posibile: whitebg(fig, c) stabilete fondul implicit al sistemului de axe pentru figurile ai cror identificatori sunt inclui n vectorul fig la valoarea specificat n c. Fondul ferestrei figur se schimb (o nuan apropiat culorii fondului sistemului de axe) astfel nct s fie men inut un contrast adecvat. Argumentul c poate fi un vector de dimensiunea 1x3 (vector RGB), sau un ir de caractere care definete culoarea (spre exemplu 'white' or 'w'). Dac proprietatea color a sistemului de axe este 'none', culoarea figurii (n locul culorii sistemului de axe) este setat la culoarea specificat. whitebg(fig) lucreaz ca un comutator i comut culoarea obiectelor grafice din figurile specificate n fig la valoarea complementar cele actuale. Sintaxa este folosit n mod uzual pentru comutarea ntre alb i negru. Dac pentru fig se specific 0 (root window) va fi afectat culoarea implicit pentru noile figuri. whitebg i whitebg(c) sintaxe fr specificarea identificatorilor unor figuriafecteaz fereastra curent i noile figuri.
4

4. Reprezentri grafice 2-D


4.1. Reprezentri grafice elementare
MATLAB ofer o varietate de func ii pentru afiarea vectorilor i matricelor de date sub form grafic, precum i func ii pentru adnotarea i tiprirea acestor grafice. Func iile prezentate difer prin modul n care sunt scalate axele sistemului. plot - reprezint grafice n coordonate liniare; loglog - reprezint grafice n coordonate logaritmice; semilogx - reprezint grafice ntr-un sistem n care axa x este scalat logaritmic, iar axa y liniar; semilogy - reprezint grafice ntr-un sistem n care axa x este scalat liniar, iar axa y logaritmic; plotyy - reprezint dou grafice n aceeai fereastr figur: unul cu axa y afiat n stnga, iar cellalt cu axa y afiat n dreapta. Este o func ie disponibil ncepnd cu versiunea MATLAB 5; fill - reprezint grafic poligoane. 4.1.1. Reprezentarea grafic 2D n coordonate liniare Func ia plot permite reprezentarea grafic a datelor n coordonate liniare i are diferite forme de utilizare n func ie de argumentele de intrare. Dup apelul func iei, sunt create unul sau mai multe obiecte grafice de tip line care sunt copii ai unui obiect grafic de tip axes. Dac acesta din urm nu exist, este creat n mod automat. Sintaxe posibile:
a) plot (y)

Dac y este un vector de dimensiune n, sintaxa traseaz graficul y = y(i), unde i = 1n este indexul elementelor vectorului. Dac y este o matrice de dimensiune m x n, vor fi trasate n grafice de forma yj = yj(i), unde i = 1m este indexul elementelor de pe coloana j. Dac x i y sunt vectori de aceeai dimensiune, se reprezint grafic func ia y = y(x). Dac x i y sunt matrice de aceeai dimensiune, se reprezint grafic coloanele lui y n func ie de coloanele lui x. Dac x este un vector de dimensiune n i y o matrice de dimensiune n x m, se reprezint grafic coloanele lui y n func ie vectorul x, deci se ob in m grafice.
plot (x1 ,y 1,x 2, y2)

b) plot (x, y)


c)

Aceast sintax este folosit pentru a reprezenta simultan mai multe grafice, corespunznd mai multor perechi de argumente (x1, y1), (x2, y2) .a.m.d. n acelai sistem de coordonate.
d) plo t( , nume_proprietate1', valoare_proprietate1, valoare_proprietate2 ) nume_proprietate2',

permite specificarea valorilor unor propriet i pentru obiectele de tip line nc din momentul crerii acestora; acestea se aplic tuturor liniilor create.
e) plot (x, y, 'cu l oare _ti pli nie _m ar cato r')

Ultimul argument este un ir de caractere format din simbolurile unuia sau tuturor 3 caracteristicilor liniei de trasare, ordinea precizrii acestora neavnd importan . Simbolurile disponibile i semnifica iile acestora sunt prezentate n tabelul 1.
Simbol y m c r Culoare Semnifica ie galben mov albastru-deschis rou Tip linie Simbol Semnifica ie continu -ntrerupt : punctat -. linie-punct 5 Simbol . o x + Tip marcator Semnifica ie punct cerc marcatorul x plus

g b w k

verde albastru alb negru

* s d v ^ < > p h

asterisc ptrat diamant triunghi isoscel cu un vrf n jos triunghi isoscel cu un vrf n sus triunghi isoscel cu un vrf la stnga triunghi isoscel cu un vrf la dreapta pentagrama (stea cu 5 col uri) hexagrama (stea cu 6 col uri)

Tab.1 Simbolurile i semnifica iile caracteristicilor liniei de trasare


f) plo t(x1 , 'cul 2_t ipl ini e2 _m arc2 ', ) y 1,' cu l1_t ipl ini e1_ ma rc 1',x 2, y2,

stabilete cele trei caracteristici pentru liniile asociate fiecarei perechi de argumente de intrare x,y.
g) h = plot(...)

Pe lng efectele grafice corespunztoare argumentelor de intrare, aceast sintax nregistreaz identificatorii tuturor obiectelor de tip line create n variabila h (vector dac sunt mai multe obiecte line). 4.1.2. Reprezentarea grafic n coordonate logaritmice i semilogaritmice Func iile destinate acestor reprezentri au modul de utilizare identic cu cel al func iei plot, diferind doar tipul de scalare a axelor. Astfel: logl og( x,y ) scaleaz ambele axe utiliznd logaritmul n baza 10 (reprezint grafic func ia log(y) = f (log(x)) ); semi log x(x ,y) scaleaz logaritmic doar axa x, axa y fiind scalat liniar (reprezint grafic func ia y = f (log(x)) ); semi log y(x ,y) scaleaz logaritmic doar axa y, axa x fiind scalat liniar (reprezint grafic func ia log(y) = f (x) ). 4.1.3. Propriet ile obiectului grafic de tip LINE (ob inut cu plot, loglog, semilogx, semilogy) Dintre propriet ile obiectelor de tip line se prezint urmtoarele: Color culoarea de trasare LineStyle: [ {-} | -- | : | -. | none ] tipul liniei de trasare LineWidth scalar care semnific grosimea liniei Marker: [ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram | {none} ] tipul de marcator MarkerSize - scalar care semnific dimensiunea marcatorului MarkerEdgeColor: [ none | {auto} ] sau o culoare specificat stabileste culoarea de contur a marcatorului MarkerFaceColor: [ {none} | auto ] sau o culoare specificat stabileste culoarea interioara a marcatorului, dac acesta este delimitat de un contur inchis Xdata vector cu datale reprezentate n abscis YData vector cu datale reprezentate n ordonat UIContextMenu identificatorul unui meniul contextual asociat Visible: [ {on} | off ] starea de vizibilitate

Exemplu de creare a unui meniu contextual pentru un obiect de tip line care va permite alegerea tipului de linie de trasare 1. Se creeaz obiectul linie cu salvarea identificatorului ntr-o variabil: l = plot(1:5, 1:5); 2. Se creeaz obiectul de tip uicontextmenu: mc = uicontextmenu; 3. Se definesc articolele de meniu contextual ;i operaile care vor fi executate la selectarea lor: op1=[set(l, linestyle, --)]; op2=[set(l, linestyle, :)]; op3=[set(l, linestyle, -)]; op4=[set(l, linestyle, -.)]; articol1=uimenu(mc,label, linie intrerupta,callback, op1); articol2=uimenu(mc,label, linie punctata,callback, op2); articol3=uimenu(mc,label, linie continua,callback, op3); articol4=uimenu(mc,label, linie-punct,callback, op4); 4. Se asociaz meniul contextual obiectului linie set(l, uicontextmenu,mc);

4.1.4. Func ia plotyy


Atunci cnd domeniile datelor ce se doresc a fi reprezentate pe axa y sunt mult diferite sau cnd se dorete reprezentarea grafic n acelai sistem de axe a unor func ii cu axele y scalate diferit, este util func ia plotyy. Aceasta reprezint dou perechi de grafice ale cror grada ii pe axele y sunt n stnga, respectiv dreapta graficelor i este disponibil ncepnd cu versiunea MATLAB 5.2. Dup apelul func iei, sunt create, ca i copii ai obiectului figure curent, dou obiecte grafice de tip axes suprapuse, fiecare avnd drept copii unul sau mai multe obiecte de tip line corespunztoare celor dou perechi de date de intrare. Pentru apelul func iei plotyy se poate folosi una din sintaxele: plotyy(x1,y1,x2,y2) traseaz grafic func ia y1=f(x1) cu axa y plasat la marginea stng a zonei delimitate de sistemul de axe i func ia y2=f(x2) cu axa y plasat n dreapta. Reprezentrile grafice sunt n coordonate liniare (cu func ia plot). plotyy(x1,y1,x2,y2,fun) permite, fa de sintaxa precedent, specificarea modului de scalare a axelor, deci a func iei folosite la reprezentri, prin argumentul fun. Acesta trebuie s fie un ir de caractere ce con ine numele unei func ii care accept sintaxa fun(x,y). Exemplu: 'plot', 'loglog', 'semilogx', 'semilogy'. plotyy(x1,y1,x2,y2,fun1,fun2) utilizeaz fun1(x1,y1) pentru reprezentarea grafic a datelor n sistemul de axe cu axa y n stnga i fun2(x2,y2) pentru reprezentarea grafic a datelor n sistemul de axe cu axa y n dreapta. [a,h1,h2] = plotyy(...) sintax prin care, n vederea unei accesri ulterioare, sunt re inu i: - n vectorul a, identificatorii celor dou sisteme de axe (componenta a(1) pentru sistemul cu axa y n stnga i componenta a(2) pentru sistemul cu axa y n dreapta); - identificatorii obiectelor grafice corespunztoare celor dou perechi (n h1 i h2). Precizri:

1) Oricare din perechile x,y pot fi, n mod independent, de tipul vector-vector, vectormatrice sau matrice-matrice. Este permis astfel reprezentarea grafic, n oricare din cele dou sisteme de axe, a mai multor grafice. 2) Utiliznd func ia plotyy, nu se pot controla caracteristicile liniilor de trasare n momentul trasrii acestora. Vor fi folosite ciclic 7 culori. 3) Dac una din perechile de date este de tip vector-vector (afiarea unui singur grafic n sistemul de axe respectiv), axa y corespunztoare va avea aceeai culoare cu graficul asociat. n caz contrar, culoarea axei y este negru. 4) Modificarea propriet ilor liniilor de trasare cu ajutorul editorului de plot nu este posibil dect pentru graficele asociate perechii x2,y2. 5) Caracteristicile liniilor de trasare corespunztoare perechii x1,y1 pot fi totui modificate prin specificarea unor noi valori pentru propriet ile obiectelor grafice ai cror identificatori sunt con inu i n variabila h1. Se poate astfel specifica, spre exemplu: culoarea, prin proprietatea 'Color'; stilul de linie, prin proprietatea 'LineStyle'; grosimea liniei, prin proprietatea 'LineWidth'; tipul de marcator, prin proprietatea 'Marker'; dimensiunea marcatorului, prin proprietatea 'MarkerSize'. Valorile acceptate pentru 'Color', 'LineStyle' i 'Marker' sunt iruri de caractere ce con in simbolurile prezentate n tabelul 1 din lucrarea 2. n plus, pentru proprietatea 'Color' poate fi folosit i vectorul RGB cu 3 componente avnd valori cuprinse ntre 0 i 1 care reprezint ponderea culorilor rou, verde i albastru n culoarea dorit. Pot fi astfel ob inute i nuan e de culori. 6) Pentru stabilirea valorii unei propriet i a oricrui obiect grafic, se apeleaz func ia set, care are sintaxa
set(identificator,'nume_proprietate', valoare_proprietate)

Exemple:
set(h1,'Color',[1 0.4 0.6])

- asociaz culoarea roz reprezentrii grafice cu

identificatorul h1;
set(h2,'Color','g')

- asociaz culoarea verde reprezentrii grafice cu

identificatorul h2;
set(h1(2),'LineStyle',':') - stabilete tipul de linie punctat pentru reprezentarea grafic cu identificatorul h1(2), care este al doilea grafic specificat n perechea de date x1,y1; set(h1(1),'LineWidth',2) - stabilete valoarea 2 pentru grosimea liniei cu care s-a realizat reprezentarea grafic cu identificatorul h1(1), care este primul grafic specificat n perechea de date x1,y1; 7) Pentru a ob ine valoarea curent a unei propriet i se apeleaz func ia get cu urmtoarea sintax: get (identificator, ' nume_proprietate' )

4.1.5. Reprezentarea grafic a poligoanelor


Pentru a reprezenta grafic un poligon plin cu o anumit culoare, se folosete func ia fill cu una din sintaxele de mai jos.
fill(x,y,'c') fill(x,y,c) h = fill(x,y,c)

Argumentele x i y sunt vectori ce con in coordonatele x, respectiv y ale vrfurilor poligonului. Al treilea argument poate fi un caracter din lista de culori sau un vector cu trei componente [r g b], componentele vectorului fiind numere reale n intervalul [0 1] cu
8

semnifica ia ponderii culorilor de baz (rou, verde i albastru) n culoarea respectiv. n acest ultim caz, pot fi ob inute i nuan e de culori. Coresponden a dintre culorile de baz i forma vectorului [r g b] este cea din tabelul 2.
Simbol [r g b] y [1 1 0] m [1 0 1] c [0 1 1] r [1 0 0] g [0 1 0] b [0 0 1] w [1 1 1] k [0 0 0] Tab.2 Coresponden a dintre simbolurile culorilor de baz i vectorii [r g b]

Dac al treilea argument este un vector c cu aceeai dimensiune ca x i y, elementele acestuia sunt scalate i utilizate apoi ca indici ntr-o matrice care specific culorile vrfurilor. Culorile dintre vrfuri sunt ob inute prin interpolare biliniar a culorilor vrfurilor. n urma apelului, este creat un obiect grafic de tip patch. Dintre propriet ile acestui tip de obiect grafic se exemplific urmtoarele:
EdgeColor: [ none | flat | interp ] -or- {a ColorSpec}- culoarea liniei de contur FaceColor: [ none | flat | interp ] -or- {a ColorSpec} culoarea de umplere LineStyle: [ {-} | -- | : | -. | none ] -tipul liniei de contur LineWidth - grosimea liniei de contur numai dac linia este continu Marker: [ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram | {none} ] marcatorii din vrfuri MarkerEdgeColor: [ none | {auto} | flat ] -or- a ColorSpec - culoarea liniei de contur a marcatorilor MarkerFaceColor: [ {none} | auto | flat ] -or- a ColorSpec - culoarea de umplere a marcatorilor MarkerSize dimensiunea marcatorilor Vertices - matrice de dimensiunea n x 2 cu cele n coordonate ale vrfurilor Xdata vectorul cu abscisele vrfurilor Ydata vectorul cu ordonatele vrfurilor UIContextMenu meniu contextual asociat Visible: [ {on} | off ] - vizibilitatea

Reprezentarea grafic a mai multor poligoane, printr-un singur apel al func iei fill, se face cu una din sintaxele:
fill(x1,y1,'c1',x2,y2,'c2',...) fill(x1,y1,c1,x2,y2,c2, ...) h = fill(...)

Fiecare poligon este specificat printr-un triplet x, y, c, cu semnifica ia precizat anterior.

4.2. Reprezentarea grafic a func iilor predefinite ntre limite impuse


Pentru reprezentarea grafic a uneia sau mai multor func ii predefinite de MATLAB sau con inute n fiiere func ie utilizator (M files), ntre limite specificate, se poate apela func ia fplot cu una din sintaxele de mai jos. n toate sintaxele, primul argument este irul de caractere ce reprezint numele func iei, iar al doilea un vector ale crui elemente sunt limitele inferioar i superioar ale abscisei i eventual ale ordonatei.
9

1) fplot('fun', limite) reprezint grafic func ia fun ntre limitele specificate de argumentul limite. Vectorul limite poate fi de forma [xmin xmax] dac se impun doar limitele abscisei sau de forma [xmin xmax ymin ymax] dac se impun i limitele ordonatei. Exemplu: fplot('cos(x)', [0 2*pi 0 1]) reprezint grafic func ia cos(x) pentru x [0, 2], afind doar por iunea din grafic pentru care cos(x) [0, 1]. 2) fplot('fun', limite, tol ), unde tol <1 permite, fa de prima sintax, specificarea toleran ei relative acceptate la reprezentare. Implicit, aceasta este 2e-3, adic 0,2%. Toleran a determin numrul maxim de pai utiliza i la plotare pentru axa x (numrul de puncte prin care se traseaz func ia) cu rela ia [(1/tol)+0,5] + 1 , n care [ ] semnific operatorul parte ntreag. Numrul implicit de pai este astfel 501. 3) fplot('fun', limite, N ), unde N 1 permite, specificarea numrului de intervale n care este mpr it domeniul absciselor. Astfel, numrul de puncte utilizate la trasare va fi (N + 1). Pasul maxim va fi astfel (1/N)*(xmax xmin). n scopul realizrii unei reprezentri grafice corecte, n zonele n care derivata i schimb rapid valoarea, este utilizat n mod implicit un pas mult mai mic (pas adaptiv), indiferent de valoarea specificat n argumentul N 1. 4) fplot('fun', limite, 'culoare_linie_marcator') permite, n plus fa de sintaxa 1), specificarea culorii de reprezentare i/sau a tipului de linie i/sau marcator, printr-un ir de maxim 3 caractere, ca la apelul func iei plot. Exemplu: fplot('cos(x)', [0 2*pi], 'r:o') 5) fplot('fun', limite, ) accept combina ii ale argumentelor tol, N, 'culoare_linie_marcator' n orice ordine. 6) [X, Y] = fplot('fun', limite ) nu afieaz nici o reprezentare grafic, dar are ca efect crearea variabilelor X i Y care con in valorile absciselor, respectiv ordonatelor func iei Y = fun(X). Reprezentarea grafic se poate face ulterior cu func ia plot. Utiliznd func ia fplot pot fi realizate i reprezentri grafice multiple pentru acelai domeniu al absciselor. Pentru aceasta, exist dou posibilit i. - Se specific pentru primul argument un ir de caractere ce con ine func iile de reprezentat simultan, care s poat fi evaluat cu func ia eval. Exemplu: fplot('[cos(x) sin(x)]',[0 2*pi]) va reprezenta simultan func iile sin(x) i cos(x) pentru x[0, 2]. - Se creeaz o func ie utilizator (un M - file) avnd ca parametru de ieire o matrice, urmrindu-se ca fiecare coloan a acesteia s reprezinte valorile cte unei func ii de reprezentat. La apelul func iei fplot, ca prim argument, se specific numele func iei (care este i numele fiierului .m) - Exemplu: function y=f(x) y(:,1) = sin(x(:)); y(:,2) = cos(x(:)); iar apoi, fplot('f' ,[0 2*pi])

4.3. Reprezentri grafice dinamice 2D


Executarea unei reprezentri grafice 2D poate fi nso it de afiarea unui marker (comet) format dintr-un cercule urmat de un segment de dreapt (corpul cometei), care urmrete traiectoria. Se ob ine astfel un grafic animat (dinamic). Acest efect se ob ine folosind func ia comet cu una din sintaxele de mai jos. - comet(y) - realizeaz reprezentarea dinamic a vectorului y (elementele vectorului func ie de indexul acestora).
10

comet(x,y) - realizeaz reprezentarea dinamic a vectorului y n func ie de vectorul x. comet(x,y,p) - face aceeai reprezentare ca sintaxa anterioar, dar permite specificarea lungimii corpului cometei ca fiind plength(y). Valoarea implicit a lui p este 0.1. Remarci: 1) Nu se pot ob ine reprezentri grafice dinamice multiple (dac unul din primele dou argumente este o matrice, nu se ob ine o reprezentare grafic multipl ca i cu func ia plot). 2) Reprezentarea grafic realizat, cu excep ia cometei, nu pot fi tiprite (sunt invizibile) i nu vor fi afiate dac sunt copiate n alt parte. De asemenea, aceasta va disprea la redimensionarea figurii sau la ncercarea de afiare a detaliilor cu comanda zoom.

4.4. Reprezentri grafice speciale 2D


4.4.1. Reprezentarea grafic n coordonate polare Reprezentarea grafic n coordonate polare se realizeaz cu func ia polar, apelat cu una din sintaxele: - polar(theta,rho) - polar(theta,rho,cul_linie) Primul argument (theta) trebuie s fie vectorul care con ine unghiurile fa de direc ia pozitiv a axei x, exprimate n radiani, ale componentelor vectorului raz (rho). Cei doi vectori trebuie deci s aib aceeai dimensiune. Sistemul de axe afiat i re eaua grid vor fi cele specifice coordonatelor polare. Cel de-al treilea argument (op ional) permite precizarea culorii, tipului de linie i de marcator, utilizate la reprezentare, aceleai cu cele de la func ia plot. Exemplu: t = 0:0.01:2*pi; polar(t,sin(2*t).*cos(2*t),'--r')

5. Controlul modului de afiare a sistemului de axe


Obiectul de tipul Axes este copil al obiectului de tip Figure i poate fi tatl a ase tipuri de obiecte grafice: Line, Text, Surface, Image, Patch i Light. Un obiect de tipul Axes se poate crea astfel: - n mod automat, la crearea unuia dintre copiii si, dac nu exist un sistem de axe curent n care s se fac afiarea;
11

explicit, cu comanda axes, care permite afiarea unui sistem de axe ntr-o pozi ie specificat i avnd dimensiuni specificate; sintaxa comenzii este:
axes('Position',[xinitial yinitial lungimex lungimey])

Elementele vectorului [xinitial yinitial lungimex lungimey] sunt exprimate n unita i normalizate i msurate fa de col ul din stnga jos al ferestrei figur curente.
axes

creeaz un sistem de axe cu pozi ia i dimensiunile implicite (umple fereastra re ine identificatorul obiectului creat n variabila h.

figur).
h = axes(...) axes(h)

face ca sistemul de axe cu identificatorul h s fie cel curent.

Obs. Identificatorul obiectul grafic axes curent este gca.

5.1. Controlul modului de prezentare a spa iului dreptunghiular asociat sistemului de axe
n acest sens, exist o serie de propriet i ale obiectului grafic axe i valori posibile ale acestora. 1) 'Box' 'on' /'off' specific ncadrarea sau nu a spa iului destinat reprezentrii grafice ntr-un dreptunghi. 2) 'Position' vector cu 4 componente specific pozi ia i lungimea axelor n fereastra figur, prin vectorul de forma
[xinitial yinitial lungimex lungimey].

Componentele xinitial i yinitial sunt distan ele, pe orizontal i vertical, de la col ul din stnga jos al ferestrei figur la col ul din dreapta jos al reprezentrii grafice. Componentele lungimex i lungimey sunt lungimile celor dou axe. Unit ile de msur ale componentelor vectorului pozi ie sunt, n mod implicit, unit ile normalizate, pentru care col ul din stnga jos al ferestrei figur are coordonatele (0, 0), iar col ul din dreapta sus are coordonatele (1, 1). Acestea pot fi schimbate prin proprietatea 'units'. 3) 'Units' 'pixels'/'normalized'/'inches'/'centimeters'/'points' specific sistemul de unit i de msur ce vor fi utilizate la interpretarea propriet ii 'position'. Indiferent de unit ile specificate, msurarea se face fa de col ul din stnga jos al ferestrei grafice. 4) 'color' culoare specificat /'non' specific culoarea folosit pentru fondul reprezentrii grafice din axele curente. 5) 'Visible' 'on' /'off' specific vizibilitatea sistemului de axe.

5.2. Limitele axelor


Pentru reprezentrile grafice, MATLAB determin automat limitele axelor pe baza domeniului datelor ce sunt reprezentate. Este permis totui modificarea acestora prin apelarea comenzii axis cu sintaxa
axis ([x min ,xm ax ,y min, yma x])

Noile limite pe cele dou axe sunt definite n vectorul cu 4 elemente


[xmi n,x max ,ym in ,y max] . n acest vector, xmin i xmax sunt limita inferioar, respectiv superioar iar ymin i ymax sunt limita inferioar, respectiv superioar pentru ordonat.

pentru abscis,

12

Dac se dorete ca unele limite s fie autoscalate, n vectorul argument, la pozi ia respectiv se folosete variabila Inf pentru o limit superioar, respectiv -Inf pentru o limit inferioar. Exemplu: axis([-Inf 2 3 Inf]) Acelai efect se ob ine specificnd pentru propriet ile 'xlim', respectiv 'ylim' ale obiectului axe cte un vector de forma [xmin xmax], respectiv [ymin ymax]. Exemplu: set(gca,'xlim',[-Inf 2])
set(gca,'ylim',[3 Inf])

Pentru a determina autoscalarea reprezentrii grafice curente, prin alegerea de ctre sistemul MATLAB a celor mai bune limite, astfel nct reprezentarea s fie integral, se folosete sintaxa axis('auto') sau axis auto

5.3. Gradarea axelor


MATLAB localizeaz marcajele de gradare pe axe i valoarea grada iilor n func ie de valorile extreme ale datelor de reprezentat. Modul de gradare al celor dou axe poate fi ns schimbat modificnd valorile propriet ilor 'xtick', respectiv 'ytick' ale obiectului grafic axe ("axes"). Pentru acestea, se specific vectori ale cror componente reprezint valoarea grada iilor ce vor fi utilizate pentru axe. Setarea acestor propriet i se face cu comanda set.
Exemple: set(gca,'xtick',2:10) set(gca,'ytick',[2 2.1 2.2 2.4 2.5])

Specificnd intervalele de gradare a axelor, nu pot fi modificate limitele axelor. Astfel, valorile specificate n vectori care depesc limitele axelor nu vor fi afiate. Referitor la liniu ele folosite la gradarea axelor, sunt disponibile urmtoarele propriet i i valori posibile ale acestora:
'ticklength' vector cu dou elemente

care specific lungimea liniu ei de gradare prin raportul dintre lungimea ei i lungimea axei celei mai lungi. Primul element al vectorului se refer la reprezentrile 2D, iar al doilea la cele 3D. Vectorul implicit este [0.01 0.025].
'tickdir' 'in' /'out'

care precizeaz orientarea liniu elor de gradare spre interior ('in') sau spre exterior ('out').
'xMinortick' 'yMinortick' 'on' /'off' 'on' /'off'

care activeaz sau nu afiarea liniu elor de gradare secundare (ntre cele principale). Acestea sunt distan ate automat, n func ie de spa iul dintre liniu ele de gradare principale.

5.4. Aspectul sistemului de axe


n mod implicit, MATLAB afieaz graficele ntr-un sistem rectangular de axe pozi ionate n fereastra figur astfel nct spa iul acesteia s fie utilizat n mod optim. Modificarea simultan a modului de afiare a celor dou axe se realizeaz cu comanda axis astfel: a) axis('square') sau axis square face ca axele x i y s aib aceeai lungime (chenarul care le ncadreaz s fie un ptrat). b) axis('equal') sau axis equal determin aceeai factori de scal pentru ambele axe (o unitate de pe axa x va fi egal cu o unitate de pe axa y). Dac, n plus, se dorete ca reprezentarea grafic s fie complet inclus n sistemul de axe, se folosete sintaxa c) axis('normal')
axis('equal', 'tight') sau axis equal tight sau axis normal 13

rescaleaz reprezentarea grafic curent astfel nct aceasta s fie cuprins integral n dreptunghiul utilizat la reprezentare, anulnd efectele sintaxelor axis('square') i
axis('equal'). d) axis('off')

sau axis off terge sistemul de axe i etichetele acestora; e) axis('on') sau axis on reface sistemul de axe i etichetele acestora; f) axis('xy') sau axis xy realizeaz reprezentarea grafic n coordonate carteziene, cu originea n col ul din stnga jos; g) axis('ij') sau axis ij realizeaz reprezentarea grafic n coordonate matriceale, cu originea n col ul din stnga sus (axa i este vertical i orientat n jos, iar axa j este orizontal i orientat spre dreapta). Pentru controlul independent al aspectului fiecrei axe, se acceseaz i se modific unele propriet i ale obiectului axe. Se vor prezenta cele referitoare la axa x, pentru celelalte axe lucrurile fiind similare. 'Xcolor' 'simbolculoare' / vector [r g b] permite specificarea culorii cu care va fi afiat axa x i etichetele acesteia prin irul de caractere reprezentnd simbolul culorii sau prin vectorul [r g b]. 'Xdir' 'normal' / 'reverse' stabilete direc ia de cretere a valorilor numerice pe ax: de la stnga la dreapta ('normal') sau de la dreapta la stnga ('reverse'). 'Xscale' 'linear' / 'log' stabilete modul de scalare a axelor. 'Xaxislocation' 'bottom' / 'top' stabilete pozi ia axei Ox 'Yaxislocation' 'left' / 'right' stabilete pozi ia axei Oy.

5.5. Afiarea i controlul re elei ajuttoare grid


Gridul este o re ea de linii verticale i orizontale trasate pe grafic prin fiecare punct de gradare a axelor care uureaz citirea datelor. Afiarea i tergerea acesteia se fac cu comanda grid care lucreaz ca un comutator. Se mai pot folosi sintaxele: grid on - pentru afiare grid off - pentru tergere. grid minor - lucreaz ca un comutator i afieaz/ascunde liniu ele grid secundare. grid (h,on)- activeaz re eaua grid principal n sistemul de axe cu identificatorul h. Controlul afirii liniilor re elei grid se realizeaz prin urmtoarele propriet i ale obiectului grafic axe: 'xgrid' 'on' /'off' care afieaz (on) sau nu (off) liniile grid perpendiculare pe axa x, prin fiecare diviziune de gradare a axei (n mod similar, pentru axa y, exist proprietatea 'ygrid'); 'gridlinestyle' 'tiplinie' care stabilete tipul de linie folosit pentru re eaua grid (continu, ntrerupt, linie-punct sau din puncte), prin caracterele corespunztoare, aceleai cu cele utilizate la stabilirea liniei de trasare a graficelor. 'minorgridlinestyle' 'tiplinie' care stabilete tipul de linie folosit pentru re eaua grid secundar (continu, ntrerupt, liniepunct sau din puncte).

14

6. Adugarea succesiv a reprezentrilor grafice ntr-un sistem de axe existent (suprapunerea succesiv )
Utiliznd comanda hold se pot aduga grafice alturi de altele existente ntr-un sistem de axe. hold on - care va determina adugarea graficelor urmtoare peste cel curent, fr a-l terge, producndu-se o rescalare a axelor dac este cazul; hold off - care va determina revenirea la setarea ini ial, conform creia, la apelul unei func ii de reprezentare grafic, graficul anterior este ters. Dup activarea mecanismului de suprapunere succesiv, oricare ar func ia apelat pentru o nou reprezentare grafic, aceasta nu mai schimb modul de scalare a axelor.

7. Divizarea ferestrei grafice


Sistemul MATLAB permite mpr irea ferestrei figur n mai multe ferestre grafice i afiarea n fiecare a cte unui sistem de axe. Crearea acestor ferestre i controlul lor este realizat de func ia subplot care are mai multe sintaxe.
1) subplot(m,n,i)

mparte fereastra figur n m x n zone dreptunghiulare de afiare (m pe fiecare coloan i n pe fiecare linie) i specific fereastra cu numrul i ca fiind cea curent (n care se va face urmtoarea reprezentare grafic). Zonele de afiare sunt numerotate de la stnga la dreapta, ncepnd cu linia de sus. Dac fereastra figur a fost mpr it anterior, apelul func iei face numai specificarea subferestrei curente n care se va crea noul sistem de axe.
2) subplot('Position',[xinitial yinitial lungimex lungimey])

creeaz un nou sistem de axe n pozi ia i cu dimensiunile precizate n vectorul [xinitial


yinitial lungimex lungimey]. 3) h = subplot(...)

salveaz identificatorul noului sistem de axe n variabila h.


4) subplot(h)

permite ca sistemul de axe cu identificatorul h s fie cel curent. n cazul n care apelul unei func ii subplot determin suprapunerea noului sistem de axe peste unul existent, are loc tergerea primului.

8. Vizualizarea detaliilor
Pentru a vizualiza por iuni ale reprezentrii grafice curente se folosete comanda zoom. Dup primul apel al acesteia sau folosind sintaxa zoom on, se pot realiza efectele: - folosind butonul stng al mouse ului este permis specificarea zonei grafice ce va fi detaliat; - la fiecare apsare a butonului stng al mouse ului limitele axelor vor fi schimbate cu un factor de 2, permi nd eviden ierea detaliilor; - printr-o dubl apsare a butonului stng al mouse ului, se revine la limitele ini iale. Dup al doilea apel al acesteia sau folosind sintaxa zoom off se renun la aceste efecte. Cu sintaxa zoom out, se revine la afiarea reprezentrii grafice ini iale.

15

9. tergerea axelor curente


Pentru tergerea reprezentrilor grafice din axele curente se poate folosi func ia cla cu dou sintaxe posibile: 1) cla - va terge toate graficele trasate n sistemul de axe curent; 2) cla reset - n plus fa de prima sintax, reseteaz toate propriet ile obiectului axe la valorile implicite, cu excep ia pozi iei acestuia. 10. Afiarea textului n spa iul reprezentrii grafice Sistemul grafic MATLAB ofer multiple facilit i privind afiarea textelor. Acestea pot fi accesate fie prin comenzi MATLAB, fie utiliznd editorul de plot. Orice efect ob inut cu editorul de plot poate fi ob inut i prin apelul comenzilor MATLAB. Exist ns efecte, ca spre exemplu afiarea unor etichete proprii pentru marcatorii de gradare a axelor, care nu pot fi ob inute cu ajutorul editorului de plot. Atunci cnd se decide utilizarea comenzilor grafice MATLAB sau a editorului de plot trebuie inut seama c exist urmtoarele diferen e: - adnotrile create prin apelul de comenzi sunt obiecte grafice ancorate de sistemul de axe, deci se vor muta odat cu acesta; - adnotrile create cu editorul de plot sunt independente de sistemul de axe; - dac se creeaz o adnotare cu editorul de plot, aceasta poate fi accesat pentru editarea ulterioar cu ajutorul unei comenzi folosind identificatorul gco (get current object); - dac se utilizeaz caractere speciale n text (simboluri matematice sau litere greceti) i acestea sunt create cu op iunea Symbol din fereastra de dialog Edit Font Properties a editorului de plot, textul ob inut nu mai poate fi editat ulterior prin comenzi MATLAB. 10.1. Utilizarea comenzilor MATLAB pentru afiarea textelor n orice pozi ie a sistemului de axe Pentru sistemul grafic MATLAB, orientat pe obiecte, orice adnotare n spa iul sistemului de axe este un obiect grafic de tip text, care este copil al obiectului grafic axes. Inserarea unui text n orice pozi ie a spa iului ferestrei figur care con ine un sistem de axe se poate realiza prin comenzile text i gtext. Utilizarea comenzii text Pentru a crea un obiect grafic de tip text ntr-o pozi ie precizat n cadrul sistemului de axe, se apeleaz comanda text.
1) text(x,y,'text')

afieaz irul de caractere 'text' ncepnd cu pozi ia dat de coordonatele (x,y) exprimate n unit ile de msur ale ultimului grafic.
2) text(x,y,'text','NumeProprietate',ValoareProprietate....)

permite, n plus fa de sintaxa precedent, utilizarea unor valori specificate pentru anumite propriet i ale obiectului text, nc de la crearea acestuia. n tabelul 3 sunt prezentate cteva din propriet ile obiectelor grafice de tip text i valorile posibile ale acestora. Se precizeaz cteva aspecte. - n mod implicit, coordonatele prin care se specific loca ia textului sunt exprimate n unitatea de msur a datelor din sistemul de axe i sunt raportate la originea acestuia. - Propriet ile VerticalAlignment i HorizontalAlignment controleaz pozi ia textului fa de punctul precizat ca loca ie a acestuia. Figurile 1 i 2 ilustreaz op iunile fiecrei propriet i i coresponden a acestora cu plasarea textului.

16

Fig. 1 Efectele valorilor propriet ii HorizontalAlignment n cazul n care VerticalAlignment este setat la valoarea Middle (valoarea implicit)

Fig. 2 Efectele valorilor propriet ii VerticalAlignment n cazul n care HorizontalAlignment este setat la valoarea Left (valoarea implicit)

Descrierea propriet ii Numele propriet ii Pozi ia i dimensiunea obiectului grafic text (dreptunghiului care ncadreaz textul). Alinierea pe orizontal o irului de caractere care formeaz textul Pozi ia dreptunghiului definit prin proprietatea Extent Orientarea obiectului text Unit ile de msur pentru propriet ile Extent i Position

Valoarea propriet ii

Extent HorizontalAlignment Position

Valori: vector cu 4 elemente [left, bottom, width, height] Proprietate accesibil doar pentru citire. Valori: left, center, right Implicit: left Valori: vector coordonate [x, y, z] exprimat n unit ile de msur specificate prin proprietatea Units Valori: scalar (grade) Implicit: 0 Valori: pixels, normalized, inches, centimeters, points, data Implicit: data (unitatea de msur
folosit pentru datele reprezentate n sistemul de axe printe)

Rotation Units

VerticalAlignment FontAngle FonfName

Alinierea pe vertical o irului de caractere care formeaz textul nclinarea caracterelor Familia de fonturi

Valori: top, cap, middle, baseline, bottom Implicit: middle Valori: normal, italic, oblique Implicit: normal Valori: un ir de caractere semnificnd un font acceptat de sistem sau irul de caractere FixedWidth Implicit: Helvetica Valori: dimensiune exprimtat n msur exprimat prin proprietatea Implicit: 10 points unitatea de FontUnits

FontSize

Dimensiunea fontului

FontUnits

Unitatea de msur pentru proprietatea FontSize Grosimea caracterelor Culoarea textului

Valori: points, normalized, inches, centimeters, pixels Implicit: points Valori: light, normal, demi, bold Implicit: normal Valori: vector [R G B] sau nume predefinit Implicit: white

FontWeight Color

Tab. 3 Propriet i de baz ale obiectelor de tip text

17

Exist i posibilitatea de a crea, printr-un singur apel al func iei text, mai multe obiecte de tip text. Astfel: o Pentru a afia acelai text n mai multe loca ii din sistemul de axe, argumentele x i y sunt vectori ce con in coordonatele punctelor de referin pentru plasarea textului; o Pentru a afia texte diferite n loca iile determinate de perechile abscis-ordonat, x i y vor fi vectori de aceeai dimensiune, iar pentru argumentul al treilea exist variantele: matrice de tip char array avnd numrul de linii egal cu dimensiunea vectorilor x i y, fiecare linie con innd textul dorit pentru loca ia corespunztoare; Exemplu: text([0.1,0.2,0.3],[0.1,0.2,0.3],
[text1 ;text2 ;text3])

Exist limitarea c numrul de caractere ale liniilor trebuie s fie acelai. vector linie de tip char array, textele dorite a fi afiate n fiecare pozi ie fiind separate prin caracterul |. Exemplu : text([0.1,0.2,0.3],[ 0.1,0.2,0.3], text1|t2|t3) n acest caz, numrul caracterelor specificate ntre | poate fi diferit. vector de tip cell array, avnd dimensiunea egal cu cea a vectorilor x i y.
Exemplu:
text([0.1,0.2,0.3],[ 0.1,0.2,0.3],{ text1 ;t2 ;t3}) text([0.1,0.2,0.3],[ 0.1,0.2,0.3],{ text1 ,t2 ,t3})

Numrul de caractere specificat pentru fiecare celul a vectorului poate fi diferit. Se pot afia mai multe linii de text ntr-o anumit loca ie dac irurile de caractere ale liniilor de text formeaz liniile sau coloanele unui vector de tip cell array sau liniile unei matrici de tip char array.
Exemple:
text(0.1, 0.1,{'text1' 't2' 't3'}) text(0.1, 0.1,{'text1'; 't2'; 't3'}) text(0.1, 0.1,['text1'; 'text2'; 'text3'])

3) h = text(...) returneaz, n vectorul coloan h, identificatorii obiectelor text ce vor fi create prin aceast comand. Indiferent de forma de apel a func iei (argumentele specificate), aceasta accept re inerea identificatorilor ntr-o variabil. Utilizarea comenzii gtext Pentru o plasare interactiv a textului, cu ajutorul mouse-ului, se poate folosi comanda
gtext('text')

Aceasta afieaz irul de caractere 'text' n cmpul grafic, ateapt deplasarea acestuia pe grafic cu ajutorul mouse ului, plasarea realizndu-se la apsarea oricrui buton al mouse ului sau a unei taste. 10.2. Etichetarea axelor Precizarea i afiarea semnifica iei mrimilor reprezentate pe fiecare ax se face cu func iile: care va fi afiat. Deoarece textul afiat cu aceste comenzi constituie pentru sistemul grafic MATLAB un obiect grafic de tip text, prin modificarea propriet ilor acestui obiect pot fi stabilite caracteristicile textului (tab.1). Valorile propriet ilor pot fi specificate nc de la crearea obiectului text.
Exemplu: xlabel('x','fontname','TimesNewRoman','fontsize',12,'color',[1 0.4 0.6])

xlabel('text') ylabel('text') care text este irul de caractere

18

Pentru afiarea etichetelor pe axe exist i propriet ile 'xlabel', respectiv 'ylabel' crora trebuie s li se asocieze identificatorii obiectelor text ce se doresc a fi afiate.
Exemple de sintaxe valide: set(gca,xlabel, text(x,y,eticheta)) set(gca,xlabel, h)

Pentru a specifica textul care s fie utilizat alturi de fiecare linie de gradare a axelor, se modific valorile propriet ilor 'xticklabel', respectiv 'yticklabel', ale obiectului axe. Valoarea acceptat pentru o astfel de proprietate este un vector de tip cell array sau o matrice de tip char array, componentele acestora con innd irurile de caractere ce se doresc a fi folosite pentru etichetare.
Exemple: Oricare din sintaxele set(gca, 'xticklabel', {'d1', 'd2'}) set(gca, 'xticklabel', ['d1'; 'd2']) va nlocui etichetele numerice generate de MATLAB n mod implicit, cu etichetele d1 i d2 care vor fi afiate succesiv sub liniile de gradare ale axei x.

Dac dimensiunea vectorului sau matricii specificate este mai mic dect numrul de grada ii al axei, textele vor fi repetate ciclic. 10.3 Afiarea titlului reprezentrii grafice Pentru fiecare sistem de axe se poate specifica un titlu, care va fi afiat deasupra spa iului delimitat de sistemul de axe i centrat pe orizontal. Acesta va fi plasat cu func ia title care poate avea oricare din sintaxele de mai jos.
1)

2)

title('text') n care 'text' este irul de caractere ce va fi afiat. title('text','NumeProprietate',ValoareProprietate....)

specific, la creare, valorile unor propriet i ale obiectului grafic de tip text pe care comanda l creeaz.
3) h = title(...) furnizeaz, n variabila h, identificatorul obiectul text creat. Obs. Pentru c una din propriet ile sistemului de axe are este 'title', un titlu poate fi asociat sistemului de axe prin precizarea valorii acestei propriet i. Exemple de sintaxe valide: set(gca,title, text(x,y,TITLUL DORIT)) set(gca,xlabel, h)

10.4 Inserarea caracterelor speciale n obiectele de tip text Obiectele de tip text (inclusiv titluri i etichete de axe) suport un subset de caractere TeX (tabelul 4) care permit utilizarea simbolurilor (litere greceti i simboluri matematice). Proprietatea Interpreter a obiectelor de tip text controleaz modul de interpretare a caracterelor. Astfel, dac valoarea acesteia este Tex (valoare implicit), codurile de caractere TEX sunt interpretate ca atare, cu condi ia ca secven a TEX s fie precedat de caracterul "\". Dac se seteaz proprietatea Interpreter la valoarea none, MATLAB interpreteaz caracterele speciale n mod literar.
Secven a de caractere TEX \alpha \beta \gamma \delta \epsilon Simbolul Secven a de caractere TEX \upsilon \phi \chi \psi \omega Simbolul Secven a de caractere TEX \sim \leq \infty \clubsuit \diamondsuit Simbolul ~

19

\zeta \eta \theta \vartheta \iota \kappa \lambda \mu \nu \xi \pi \rho \sigma \varsigma \tau \equiv \Im \otimes \cap \supset \int \rfloor \lfloor \perp \wedge \rceil \vee \langle

\Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega \forall \exists \ni \cong \approx \Re \oplus \cup \subseteq \in \lceil \cdot \neg \times \surd \varpi \rangle x

\heartsuit \spadesuit \leftrightarrow \leftarrow \uparrow \rightarrow \downarrow \circ \pm \geq \propto \partial \bullet \div \neq \aleph \wp \oslash \supseteq \subset \o \nabla \ldots \prime \0 \mid \copyright | ... '

Tab. 4 Lista secven elor de caractere TEX utilizate pentru afiarea simbolurilor

De asemenea, exist secven e TEX prin care se pot controla caracteristicile fontului utilizat:
\bf - font bold \it - font italic 20

\sl - font oblic (cnd este disponibil) \rm - font normal \fontname{fontname} specific numele familiei de fonturi utilizate \fontsize{fontsize} specific dimensiunea fontului n FontUnits.

Efectul acestor caracteristici rmne numai pn la sfritul irului de caractere sau numai n interiorul contextului definit de acolade{ }. Pentru a utiliza indici i exponen i, se folosesc caracterele " _" , respectiv " ^ ", modificarea afectnd textul cuprins ntre acoladele imediat urmtoare. Exemplu de utilizare a caracterelor TEX: Asociind unui ir de caractere secven a
'\bullet\leftarrow\fontname{times}0.25{\ite}^{-0.005{\itt}} '

textul afiat va fi

10.5 Afiarea legendei Pentru a afia o legend asociat graficelor din sistemul de axe curent se apeleaz comanda legend. Referitor la aceasta, exist mai multe sintaxe.
1) legend('text1',' text2',...)

afieaz o legend n sistemul de axe curent utiliznd irurile de caractere specificate pentru a eticheta obiectele grafice create n sistemul de axe. Dac numrul obiectelor grafice este mai mare dect al textelor specificate, vor aprea n legend doar etichetele pentru care s-au specificat textele. Dac s-au specificat mai multe texte pentru etichete dect numrul obiectelor grafice, n legend vor aprea toate textele, iar cele care nu au corespondent n obiecte grafice nu au n fa nici un model de linie sau marcator. Legenda este pozi ionat n interiorul spa iului delimitat de sistemul de axe, n col ul din dreapta sus.
2) legend(h, 'text1',' text2',...)

afieaz o legend, asociind componentelor vectorului h al identificatorilor obiectelor grafice care se doresc a fi etichetate n legend textele specificate n irurile de caractere
3) 'text1',' text2', ... legend(matrice_caractere)

insereaz o legend care va avea liniile matricei ir de caractere drept etichete. Se ob ine acelai efect ca la sintaxa
4) legend(matrice_caractere(1,:), matrice_caractere(2,:),...). legend(h, matrice_caractere) asociaz fiecare linie a matricei matrice_caractere cu obiectul grafic corespunztor

din

vectorul h al identificatorilor.
5) 6) legend(h_axe,...)

afieaz legenda pentru sistemul de axe identificat prin h_axe


legend('off'), legend(h_axe,'off')

terg legenda din sistemul de axe curent, respectiv din sistemul de axe specificat prin
7) h_axe h_legenda = legend

furnizeaz, n variabila h_legenda, identificatorul legendei din sistemul de axe curent sau un vector gol dac nu exist o legend.
8) legend(...,pos)

utilizeaz argumentul pos pentru a determina unde s fie pozi ionat legenda. pos = -1 plaseaz legenda n afara sistemului de axe, n dreapta acestuia i sus. pos = 0 plaseaz legenda n interiorul sistemului de axe, astfel nct s acopere ct mai pu ine puncte din reprezentrile grafice. pos = 1 plaseaz legenda n col ul din dreapta sus al sistemului de axe (implicit). pos = 2 plaseaz legenda n col ul din stnga sus al sistemului de axe. pos = 3 plaseaz legenda n col ul din stnga jos al sistemului de axe.
21

9)

pos = 4 plaseaz legenda n col ul din dreapta jos al sistemului de axe. [h_legenda,h_object] = legend(...) furnizeaz identificatorul legendei (h_legenda) i identificatorii obiectelor grafice (de tip line, text .a.) folosite n legend (h_object). Aceti identificatori permit modificarea

propriet ilor respectivelor obiecte grafice. Precizri: - Fiecare sistem de axe poate avea numai o legend, iar ordinea n care sunt asociate textele cu obiectele grafice este, n mod implicit, cea n care sunt re inute obiectele n proprietatea Children a obiectului Axes. - Pozi ia legendei poate fi modificat uor, prin tragere cu ajutorul mouse-ului. - Textele asociate etichetelor din legend pot fi editate dup un dublu clic cu mouse stnga pe respectivul text.

11. Reprezentarea grafic 2D cu bare


Datele con inute n vectori sau matrice pot fi reprezentate grafic sub forma unor bare. n general, un grafic cu bare afieaz datele ca bare orizontale sau verticale. 11.1. Reprezentarea grafic cu bare verticale Reprezentarea grafic cu bare verticale, pline cu culoare, a valorilor unui vector sau matrice se realizeaz prin apelul func iei bar. De re inut! Fiecare reprezentare grafic cu bare astfel creat este un obiect grafic de tip patch, ca n cazul comenzii fill. Exist mai multe sintaxe posibile ale func iei bar.
bar(y)

Este sintaxa cea mai simpl (un singur argument), dar cea mai rar folosit pentru c nu poate fi controlat valoarea datelor reprezentate pe abscis, argumentul func iei con innd doar datele reprezentate pe ordonat. Dac y este un vector, se va trasa o bar pentru fiecare component, avnd nl imea valorii componentei i abscisa egal cu indexul (numrul de ordine al acesteia). L imea barelor este de 0,8 unit i de reprezentare. Exemplu: secven a a=[2 5 9 12]; bar(a) ; grid on; are ca efect afiarea reprezentrii
15

10

Dac y este o matrice de dimensiunea m x n, vor fi afiate n seturi de bare de aceeai culoare (cte una pentru fiecare coloan), fiecare format din m bare; Exemplu: secven a a=[2 5 9 12;10 8 6 4;3 6 9 12]'; are ca efect crearea matricei

22

2 10 3 5 8 6 a= 9 6 9 4 12 12

iar apelul bar(a) ; grid on; are ca efect afiarea, cu culori diferite, a trei grafice cu bare, cte unul pentru fiecare coloan
15

10

bar(x,y)

Este cea mai folosit sintax, pentru c permite precizarea datelor reprezentate att pe ordonat, ct i pe abscis. - Dac x i y sunt vectori de aceeai dimensiune, elementele lui x trebuie s fie n ordine cresctoare, sintaxa avnd ca efect afiarea unei bare pentru fiecare element al lui y n pozi ia specificat de elementul cu aceeai pozi ie din x. Exemplu: secven a x=[2 5 9 12];y=[10 20 5 2]; bar(x,y); grid on; are ca efect afiarea reprezentrii
20 15 10 5 0

12

Dac x este un vector de dimensiunea n, iar y o matrice de dimensiunea n x m, vor fi reprezentate m grafice cu baruri, cte unul pentru fiecare coloan a matricei. Exemplu: secven a x=[2 5 9 12];y=[10 20 5 2;1 2 3 4;2 4 6 8]'; bar(x,y); grid on are ca efect afiarea reprezentrii
20 15 10 5 0

12

23

bar(..., latime)

Func ia bar accept ca argument final un numr prin care se specific l imea tuturor barelor i se controleaz separarea acestora n interiorul unui grup. L imea implicit este 0.8, iar dac nu se specific argumentul x, barele dintr-un grup au un separator ngust. Dac se specific valoarea 1, barele grupului vor fi lipite, iar pentru un numr supraunitar, barele se vor suprapune.
bar(..., culoare) Argumentul culoare bar(..., stil)

(un caracter sau un ir de caractere) permite specificarea culorii de reprezentare a barelor, la fel ca la func ia plot. Prin argumentul stil (un ir de caractere), este permis specificarea stilului de bare folosit atunci cnd se reprezint mai multe grafice cu bare n acelai sistem de axe. Exist dou stiluri posibile de bare: 'group' sau 'grouped' - este stilul implicit, care afieaz barele corespunztoare aceleiai abscise grupate n jurul acesteia. Fiecrei linii a matricei y i corespunde o abscis i deci un grup care con ine un numr de bare egal cu numrul de coloane ale matricei. 'stack' sau 'stacked'- afieaz barele din grup suprapuse, ob innd astfel doar o bar pentru fiecare linie din y. nl imea barei este suma elementelor liniei. Fiecare bar este multicolorat cu culorile corespunztoare elementelor i arat ponderea fiecrui element al liniei n sum. Exemplu: secven a x=[2 5 9 12];y=[10 20 5 2;1 2 3 4;2 4 6 8]'; bar(x,y ,0.2,'stack'); grid on are ca efect afiarea reprezentrii
30

20

10

12

[xb,yb] = bar(... )

nu reprezint graficele, dar calculeaz vectorii xb i yb astfel nct graficul cu bare s fie trasat ulterior cu func ia plot(xb,yb). Aceast sintax este util atunci cnd se dorete un control mai mare asupra graficului, spre exemplu includerea reprezentrii cu bare ntr-o reprezentare grafic mai complex sau combinarea mai multor grafice cu bare.
h = bar(... )

nregistreaz, n variabila h (de tip scalar sau vector dac sunt mai multe grafice de tip bar), identificatorii obiectelor de tip patch create la apelul comenzii. 11.2. Reprezentarea grafic cu bare orizontale Reprezentarea grafic cu bare orizontale nu este posibil dect ncepnd cu versiunea MATLAB 5.0. n acest scop, se apeleaz func ia barh, sintaxele fiind aceleai cu cele ale func iei bar. Exemplu: Secven a y=[2 4 6;9 7 5]; barh(y,'stack'); grid on;
24

realizeaz reprezentarea grafic de mai jos

APLICA IE Suprapunerea unei reprezentri grafice cu bare cu o reprezentare grafic n coordonate liniare Etape de lucru: Se pregtesc datele de reprezentat: (x, y1) pentru reprezentarea grafic cu bare i (x, y2) pentru reprezentarea grafic n coordonate liniare (cu func ia plot)
x=0:2:10;y1=x.^2;y2=10*y1;

Se realizeaz reprezentarea grafic cu bare cu func ia bar avnd caracteristicile dorite (culoare, ..)
bar(x,y1,'w'); Se personalizeaz modul de prezentare a sistemului de axe(etichete pe axe, ..) xlabel('x');ylabel('y_1'); Se salveaz identificatorul sistemului de axe curent ntr-o variabil h1 = gca;

Se creeaz un nou sistem de axe cu aceeai pozi ie ca cel anterior


h2 = axes('Position',get(h1,'Position'));

Se realizeaz reprezentarea grafic n coordonate liniare cu func ia plot i caracteristicile dorite (culoare, ..)
plot(x,y2,'k','LineWidth',3)

Se stabilete loca ia axei y a noului sistem de axe la dreapta, caracteristica de a fi transparent (fr culoare) i de a nu avea etichete la liniu ele de gradare de pe axa x
set(h2,'YAxisLocation','right','Color','none','XTickLabel',[])

Se eticheteaz axa y a noului sistem de axe


ylabel('y_2');

Se afieaz re eaua grid


grid on

Efectul secven ei anterioare de opera ii va fi urmtorul:


100 1000

80

800

60 y1

600 y2

40

400

20

200

4 x

10

25

12. Reprezentarea discret a datelor


Reprezentarea grafic a semnalelor discrete, sub forma unor linii verticale terminate cu un marcator (un cercule gol n mod implicit) la extremitatea opus axei, se realizeaz cu func ia stem. n mod implicit, linia de trasare este continu i are aceeai culoare cu marcatorul. Exist mai multe sintaxe posibile. stem(y) reprezint datele con inute n vectorul y, abscisele fiind indecii elementelor. Exemplu: secven a y=[2 5 9 12];
stem(y) grid on;

are ca efect afiarea reprezentrii


15

10

1.5

2.5

3.5

reprezint grafic dependen a y = y(x). Dac x este un vector linie cu n componente, iar y o matrice de dimensiune n x m, vor fi reprezentate m grafice suprapuse, cte unul pentru fiecare coloan, folosind culorile predefinite n mod ciclic. stem(x,y, stil_linie) permite, fa de sintaxa precedent, specificarea stilului de linie (pentru liniile verticale), tipului de marcator (pentru marcatorul din capt) i a culorii de reprezentare (aceeai pentru ambele), ca la func ia plot. stem(x,y, 'fill') determin umplerea cu culoare a marcatorului. Pot fi specificate simultan ambele argumente suplimentare (stil_linie i 'fill'), fr a avea importan ordinea acestora. h = stem(...) re ine, n variabila h de tip vector, identificatorii obiectelor grafice create, respectiv a obiectelor de tip line. De re inut! n Matlab 6.5, la apelul func iei stem, dac g este numrul de grafice afiate, vor fi create 2g+1 obiecte grafice de tip line, cte unul pentru marcatorii din vrfuri i liniile verticale (aten ie, aceasta este ordinea) i nc unul corespunztor datelor [xmin, xmax], [0 0] (o linie orizontal definit de dou puncte i suprapus peste axa x). Exemplu: secven a
stem(x,y) y=[2 5 9 12]; h=stem(y); grid on; set(h(1),'color','b','marker','p','markersize',16,'linewidth',1,'markerfacecolor','c') set(h(2),'color','k','linewidth',3)

are ca efect afiarea reprezentrii


12 10 8 6 4 2 0 1 1.5 2 2.5 3 3.5 4

Observa ie: Nu este admis o sintax de genul [xs,

ys]=stem(x,y) , similar func iei bar, care s permit re inerea doar datele de reprezentat, fr a avea efect grafic.

26

13. Reprezentarea graficelor n trepte


Reprezentarea n trepte a graficelor este util pentru diagramele sistemelor numerice de eantionare i prelucrare a datelor. Este ca o reprezentare cu bare alipite, la care lipsesc liniile verticale interne. Aceast reprezentare se realizeaz cu func ia stairs apelat cu una din sintaxele: stairs(y) reprezint graficul n trepte al elementelor vectorului y; Exemplu: secven a y=[2 5 9 12];
stairs(y) grid on;

are ca efect afiarea reprezentrii


12 10 8 6 4 2

1.5

2.5

3.5

stairs(x,y) - reprezint grafic, n trepte, dependen a y = y(x). Dac x este un vector linie cu n componente, iar y o matrice de dimensiune n x m, vor fi reprezentate m grafice suprapuse, cte unul pentru fiecare coloan. Vor fi folosite culorile predefinite, n mod ciclic. Este permis specificarea, printr-un argument suplimentar (ca la func ia plot), a culorii i liniei de reprezentare. stairs(x,y,stil_linie )
Observa ie: datele con inute n vectorul x al absciselor trebuie s fie n ordine cresctoare i echidistante.

Sintaxele
[xs,ys] = stairs(y) [xs,ys] = stairs(x,y)

nu realizeaz nici o reprezentare grafic, dar furnizeaz vectorii xs i ys astfel nct plot(xs,ys) s poat trasa graficul n trepte.
h = stairs(. . .) re ine, n variabila h, identificatorul/identificatorii obiectelor grafice de tip line create. De re inut! Apelul func iei stairs determin crearea unuia sau mai multor obiecte de tip

line care pot fi modificate ulterior cu editorul de plot sau prin propriet ile acestora, cu func ia set. Exemplu: secven a
x=0.5:0.5:2.5;y=[10:5:30;20:10:60]'; h=stairs(x,y); set(h(1),'color','k','marker','p','markersize',12,'linewidth',1.5,'markerfacecolor','c') set(h(2),'color','b','marker','o','markersize',10,'linewidth',2) grid on;

are ca efect afiarea reprezentrii


60 50 40 30 20 10 0.5

1.5

2.5

27

14. Ob inerea coordonatelor punctelor din spa iul sistemului de axe, utiliznd mouse-ul
Func ia MATLAB ginput permite indicarea punctelor din spa iul ferestrei figur, utiliznd mouse-ul pentru pozi ionarea cursorului, n scopul ob inerii coordonatelor acestora. Exist trei sintaxe posibile ale acesteia.
1) [x,y] = ginput(n)

permite indicarea succesiv a n puncte i furnizeaz coordonatele n vectorii coloan x i y. ncheierea opera iei nainte de selectarea celor n puncte se poate realiza apsnd tasta Enter.
2) [x,y] = ginput

permite re inerea n vectorii coloan x i y a coordonatelor unui numr nelimitat de puncte, pn la apsarea tastei Enter.
3) [x,y,b] = ginput(...)

permite, n plus fa de celelalte dou sintaxe, re inerea n vectorul b a informa iilor privind modul cum a fost realizat selectarea punctului. Astfel: - pentru selectare prin apsarea butonului stng al mouse-ului, se ob ine valoarea 1; - pentru selectare prin apsarea butonului din mijloc al mouse-ului, se ob ine valoarea 2; - pentru selectare prin apsarea butonului drept al mouse-ului, se ob ine valoarea 3; - pentru selectare prin apsarea unei taste, se ob ine un numr semnificnd codul ASCII asociat; Observa ii - Dac la apelul func iei ginput, nu exist un sistem de axe n fereastra figur, la indicarea primului punct, este creat n mod automat un sistem de axe cu limitele implicite (valorile minime 0 i valorile maxime 1). - Dac se indic puncte din mai multe sisteme de axe, coordonatele acestora sunt raportate la sistemele de axe respective.

15. Reprezentri grafice 3D


Sistemul MATLAB ofer o serie de func ii pentru crearea i controlul modului de afiare a graficelor n spa iul tridimensional. 15.1. Reprezentarea grafic tridimensional a datelor con inute n vectori sau matrice Pentru a afia sub forma unui grafic tridimensional datele con inute n trei vectori sau matrice se folosete func ia plot3 cu una din sintaxele:
plot3(X1,Y1,Z1,...) plot3(X1,Y1,Z1, Specificare_Atribute,...) plot3(..., 'Nume_Proprietate', Valoare_Proprietate, ...) h = plot3(...) Func ia plot3(X1,Y1,Z1,...), unde X1, Y1, Z1 sunt vectori de aceeai

dimensiune, afieaz, n spa iul tridimensional, o curb ob inut prin interpolarea liniar a punctelor ale cror coordonate sunt elementele vectorilor X1, Y1 i Z1. Ca i n cazul func iei plot, sunt acceptate mai multe seturi de date, deci mai multe triplete de argumente. Dac X1, Y1, Z1 sunt matrice de aceeai dimensiune, MATLAB reprezint cte o curb pentru fiecare coloan a matricelor, folosind ciclic culorile de baz. Argumentul op ional Specificare_Atribute (un ir de maxim trei caractere) permite specificarea stilului de linie, de marcator i culoarea liniilor plotate (ca la func ia plot). Prin perechi de argumente de tipul 'Nume_Proprietate', Valoare_Proprietate, se pot stabili, nc de la creare, oricte valori ale propriet ilor obiectelor grafice de tip Line create prin acest apel de func ie.
28

Sintaxa h = plot3(...) furnizeaz vectorul coloan h, care con ine identificatorii tuturor obiectelor grafice de tip Line create. 15.2. Reprezentarea grafic a suprafe elor tridimensionale Sistemul MATLAB poate crea suprafe e 3D fie sub forma unei re ele (mesh) de linii colorate care conecteaz punctele de defini ie, fie sub forma unei suprafe e pline. Reprezentarea grafic 3D a matricelor de date, sub cele dou forme, se realizeaz cu func iile mesh, respectiv surf i alte func ii derivate din acestea. Suprafe ele sunt parametrizate, n sensul c fiecare punct de defini ie al acesteia este specificat printr-un triplet (X(i,j), Y(i,j), Z(i,j)), n care parametrii numere ntregi i i j variaz continuu ntr-un domeniu impus (1 i m, 1 j n). Astfel, nodurile care definesc suprafa a sunt trei matrice X, Y i Y, de dimensiune m x n. Pentru specificarea culorii, este necesar nc o matrice C, de aceeai dimensiune m x n. 15.3. Reprezentarea suprafe elor sub forma unei re ele (mesh) Exist trei func ii MATLAB pentru reprezentarea grafic 3D a matricelor de date sub forma unei re ele de linii colorate: - mesh, care realizeaz o suprafa mesh fr linii de contur; - meshc, care adaug re elei linii de contur reprezentate sub suprafa ; - meshz, care adaug re elei un plan de referin la cota zero (un piedestal). Fiecare dintre acestea poate avea una din sintaxele de mai jos, exemplificate pentru func ia mesh.
mesh(X,Y,Z,C) mesh(X,Y,Z) mesh(Z) h = mesh(...)

n cazul cel mai general, cnd func iile au patru argumente, sunt create suprafe e parametrizate specificate prin matricele X, Y i Z, cu culorile specificate prin matricea C. MATLAB realizeaz o transformare linear asupra datelor din C pentru a ob ine culorile din paleta de culori curent. Dac X, Y i Z sunt matrice, C trebuie s aib aceeai dimensiune ca i acestea. Sintaxa mesh(X,Y,Z), n care matricea C este omis, consider C=Z, culoarea fiind propor ional cu nl imea suprafe ei. Dac X i Y sunt vectori de dimensiune n, respectiv m, iar Z este o matrice de dimensiune m x n, punctele de coordonate (X(j), Y(i), Z(i,j)) sunt intersec iile liniilor de grid care compun re eaua mesh. Se constat c indexul lui Y corespunde coloanelor lui Z, n timp ce indexul lui X corespunde liniilor lui Z. Dac X i Y sunt matrice, intersec iile liniilor re elei au coordonatele (X(i,j), Y(i,j), Z(i,j)). Cu sintaxa mesh(Z) se creeaz o re ea mesh care utilizeaz X = 1:n i Y = 1:m, unde [m,n]=size(Z), iar culoarea este propor ional cu nl imea suprafe ei. Identificatorul obiectului grafic de tip surface creat de aceste func ii poate fi re inut ntr-o variabil, dac se utilizeaz sintaxa h=mesh(...), respectiv h=meshc(...) sau h=meshz(...). 15.4. Reprezentarea suprafe elor pline Pentru reprezentarea grafic a suprafe elor pline se folosesc func iile surf i sulfc. Sintaxele acestora i semnifica ia argumentelor sunt similare celor ale func iilor utilizate pentru reprezentarea suprafe elor sub forma unei re ele de linii. Spre deosebire de surf, func ia surfc afieaz i liniile de nivel, pe acelai grafic i sub suprafa .
29

15.5. Reprezentarea grafic a func iilor de dou variabile Pentru a reprezenta grafic o func ie de dou variabile, y = f(x,y), sub forma unei suprafe e de tip re ea de linii colorate sau suprafa plin, nainte de apelul func iei grafice dorite este necesar generarea matricelor X i Y ce definesc domeniul de defini ie prin suprafe e parametrizate. Pentru transformarea domeniului specificat prin doi vectori x i y de dimensiuni 1 x n, respectiv 1 x m, n matricele X i Y de dimensiuni m x n, astfel nct liniile lui X sunt copiile lui x, iar coloanele lui Y sunt copiile lui y, se folosete func ia meshgrid, care poate avea una din sintaxele:
[X,Y] = meshgrid(x,y) [X,Y] = meshgrid(x)

De remarcat c sintaxa [X,Y] = meshgrid(x) este echivalent cu [X,Y] =


meshgrid(x,x).

15.6. Reprezentarea obiectelor 3D predefinite n MATLAB exist func ii predefinite pentru reprezentarea unei sfere i a unui cilindru. Generarea unei sfere cu raza egal cu unitatea se realizeaz cu func ia sphere, care poate fi utilizat cu una din sintaxele de mai jos.
sphere(n) sphere [X,Y,Z] = sphere(...)

Apelat cu prima sintax, func ia reprezint grafic suprafa a unei sfere format din n x n suprafe e elementare. Nespecificarea argumentului n presupune utilizarea valorii implicite a acestuia, n=20. Cu ultima sintax, sunt create cele trei matrice X, Y i Z cu coordonatele sferei unitate, fr a afia suprafa a sferei. Aceste coordonate vor fi utilizate ulterior ca argumente ale func iei surf sau mesh pentru reprezentarea grafic a suprafe ei sferei. Generarea unui cilindru (sau forme geometrice derivate din acesta) cu nl imea egal cu unitatea se realizeaz cu una din sintaxele de mai jos ale func iei cylinder.
[X,Y,Z] = cylinder [X,Y,Z] = cylinder(r) [X,Y,Z] = cylinder(r,n) cylinder(...)

Apelat cu argumentele de ieire X, Y i Z, func ia nu are nici un efect grafic, crendu-se doar matricele cu coordonatele necesare reprezentrii grafice ulterioare cu una din func iile mesh sau surf. Prin argumentele de intrare, n cazul cel mai general r i n, se particularizeaz aspectul obiectului grafic, fiind posibil astfel i reprezentarea grafic a conurilor, piramidelor, trunchiurilor de con, trunchiurilor de piramid sau a unui corp ob inut ca o dispunere succesiv a unor astfel de corpuri de-a lungul axei z. Prin argumentul r (vector sau scalar), se specific razele cercurilor circumscrise ale poligoanelor regulate care formeaz bazele formelor geometrice 3D (de nl ime egal) ce compun obiectul grafic de tip surface, dispuse consecutiv n intervalul de o unitate al axei Z. Dac r este un vector cu m elemente, vor exista (m-1) astfel de forme geometrice 3D. Dac r este un scalar, va fi generat o singur form geometric i va fi considerat aceeai valoare a razei pentru baza inferioar i baza superioar. Valoarea implicit a argumentului r este 1. Argumentul n, ntotdeauna un scalar, specific numrul de laturi ale poligoanelor regulate care formeaz bazele formelor geometrice 3D. Valoarea implicit a acestuia este 20.
30

Sintaxele fr argumente de intrare sunt echivalente specificrii valorilor implicite ale acestora. Sintaxele fr argumente de ieire reprezint grafic, n fereastra figur curent, cu func ia surf, obiectul de tip suprafa cu aspectul particularizat prin argumentele de intrare (dac exist). 15.7. Stabilirea culorilor folosit. Referitor la culori, la crearea unei suprafe e 3D exist trei posibilit i: s nu fie specificate explicit culorile, caz n care MATLAB genereaz matricea de culori asociate datelor folosind datele din matricea Z; - specificarea unei matrice de culori, egal ca dimensiune cu matricea Z; - specificarea unui triplet RGB pentru fiecare element din matricea de date Z, fapt ce presupune utilizarea tehnicii truecolor. Paleta de culori (colormap) este o matrice cu trei coloane, fiecare linie definind o culoare printr-un vector RGB. Con inutul acesteia este controlat prin func ia colormap (vezi lucrarea 8). n sistemul grafic MATLAB exist mai multe modele predefinite de culori: autumn, care folosete nuan e bazate pe rou, portocaliu i galben; bone, o palet cu nuan e de albastru i gri; colorcube, care determin afiarea mai multor suprafe e mici cu culori din spa iul RGB; cool const n nuan e de culori care variaz lent de la albastru deschis spre mov; copper afieaz nuan e de culori de la negru spre armiu; flag afieaz zone colorate cu rou, alb, albastru i negru; gray folosete nuan e de gri; hot variaz lent de la negru la alb prin nuan e de rou, portocaliu i galben; hsv (hue-saturation-value) ncepe cu rou, trece prin galben, verde, albastru i mov, revenindu-se la rou; jet trece de la albastru la rou prin albastru deschis, galben i portocaliu; lines creeaz o palet cu culorile specificate prin proprietatea ColorOrder i nuan e de gri; pink con ine nuan e derivate din culoarea roz; prism repet ase culori: rou, portocaliu, galben, verde, albastru i violet; spring const n culori derivate din mov i galben; summer const n culori derivate din verde i galben; white nu folosete dect culoarea alb; winter const n culori derivate din albastru i verde. Pentru a crea o palet de culori bazat pe un anumit model i care s con in un numr impus de culori, se folosete sintaxa colormap(model(n))

Pentru afiarea culorilor asociate suprafe elor, sistemul MATLAB folosete dou tehnici: culori indexate, care asociaz fiecrui punct din datele ce definesc suprafa a un index din paleta de culori a ferestrei figur; truecolor, conform creia suprafe ele sunt colorate prin specificarea explicit a culorilor, spre exemplu prin triplete RGB. Indiferent de metoda folosit, afiarea culorilor depinde de modul de colorare (shading)

n care model este numele modelului, iar n numrul de culori dorite. Dac nu se specific un numr de culori, noua palet va avea dimensiunea paletei de culori curente. Paleta implicit de culori este jet(64).

31

Pentru afiarea paletei de culori curente n fereastra figur, ntr-un dreptunghi lng sistemul de axe, se folosete func ia colorbar. Cu sintaxa colorbar('vert') se insereaz o bar de culori vertical, iar cu sintaxa colorbar('horiz') se insereaz o bar de culori orizontal. 15.8. Controlul modului de colorare Stabilirea modului de colorare a obiectelor grafice de tip surface i patch se realizeaz prin func ia shading, care are trei sintaxe posibile: shading flat fiecare zon de culoare i segment al re elei de linii este umplut cu o culoare constant determinat de punctul final al segmentului sau col ului zonei care are cel mai mic index sau indici; shading faceted corespunde modului shading flat, afindu-se i liniile din re ea colorate cu negru; este modul de colorare implicit; shading interp stabilete culoarea de reprezentare a fiecrui segment i zon elementar a suprafe ei ca o nuan rezultat din interpolarea liniar a culorilor capetelor liniei sau col urilor suprafe ei.

32

S-ar putea să vă placă și