Sunteți pe pagina 1din 32

UTILIZAREA SISTEMULUI MATLAB

PENTRU APLICAII GRAFICE


1. Generaliti
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 soluiile 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 tiinific i inginereasc;
- aplicaii de dezvoltare, incluznd realizarea de interfee grafice utilizator.
MATLAB are o familie de aplicaii specifice numite "toolboxes", care aplic o tehnologie
specializat i care sunt o colecie de funcii 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, reele neurale, fuzzy
logic i multe altele.
Toat familia de produse MATLAB aparine 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 operaiilor 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, situaie n care fiecare linie este
prelucrat imediat, rezultatele putnd fi afiate, fie cu programe (mai multe instruciuni
MATLAB, cu posibilitatea apelrii altor fiiere de acelai tip i a apelrii recursive) coninute in
fiiere numite fiiere M ("M-files") deoarece au extensia .m.
Sistemul MATLAB cuprinde 5 pri principale.
1) Limbajul MATLAB este un limbaj de nivel nalt de tip matrice / vector cu instruciuni de
control, funcii, structuri de date, intrri / ieiri i trsturi de programare orientat pe obiecte.
2) Mediul de lucru MATLAB este un set de instrumente i faciliti cu care intr n contact
utilizatorul sau programatorul MATLAB. Include faciliti pentru gestiunea variabilelor
(acces, vizualizare, informaii) n spaiul 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, animaie i prezentri grafice. Include i
comenzi de nivel redus pentru personalizarea modului de prezentare a graficelor i
construirea interfeelor grafice utilizator (GUI) pentru aplicaii.
4) Librria de funcii matematice MATLAB este o colecie vast de algoritmi de calcul i
analiz. Exist peste 500 de funcii matematice, pentru statistic i inginerie optimizate
pentru calcul matriceal. Acestea includ:
- algebr liniar i calcul matriceal;
- funcii Fourier i de analiz statistic;
- rezolvare de ecuaii difereniale;
1

- operaii trigonometrice i alte operaii matematice fundamentale.


5) Interfaa Program Aplicaie ("Application Program Interface") API - este o librrie
specializat care permite interaciunea cu programe externe mediului MATLAB. Este
permis astfel apelarea programelor scrise n C sau Fortran, importarea / exportarea datelor i
stabilirea de relaii de tip client / server ntre MATLAB i alte programe.
Cursul i propune s descrie facilitile grafice MATLAB pentru vizualizarea datelor i
stabilirea modului de prezentare a graficelor, precum i pentru crearea unor interfee grafice
utilizator.
n acest sens, MATLAB furnizeaz:
- o serie de funcii (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 suprafeelor i animaia;
n plus, prin funcii 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 proprieti ale obiectelor.
- sistemul grafic orientat pe obiecte ("Handle Graphics"), care permite inclusiv realizarea de
interfee grafice programabile;
"Handle Graphics" definete un set de obiecte grafice (linii, suprafee, text .a.) i ofer
mecanismul de manipulare a acestor obiecte pentru a obine rezultatele dorite. Se poate avea
astfel un control mult mai precis asupra modului de afiare al datelor i se pot dezvolta
aplicaii grafice proprii.
Utiliznd "Handle Graphics" , utilizatorul poate crea meniuri i elemente de control interactiv
pentru reprezentrile grafice (butoane prin apsare, poteniometre, casete de control, liste de
opiuni .a.).
Fiierele - M utilizator, create pentru a executa operaii grafice, pot utiliza att funcii 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 prini ai oricror
alte obiecte grafice: ai axelor ("axes"), elementelor de control ale interfeelor 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 interfee grafice butoane prin apsare,
butoane radio, slidere), care execut o funcie cnd sunt activate de utilizator;
- axes obiect care definete o zon din fereastra figur asociat unui sistem de axe;
- uimenu obiecte asociate meniurilor unei interfee 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 proprieti ce pot fi modificate (setate). Sistemul
MATLAB asociaz fiecrui obiect grafic creat un identificator ("handle"). Pentru a putea accesa
proprietile obiectului, este util ca, la crearea acestuia, s se rein identificatorul ntr-o
variabil.
Modificarea proprietilor obiectelor grafice se realizeaz apelnd comanda set, care are
urmtoarea sintax:
set (identificator, ' numele_proprietii' , valoarea_proprietii)
Pentru a obine valoarea curent a unei proprieti se apeleaz funcia get cu urmtoarea
sintax:
get (identificator, ' numele_proprietii' )
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 proprietii 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 predefinii:
gcf pentru fereastra figur curent (Get Current Figure)
gca pentru sistemul de axe curent (Get Current Axes)
Exemple de utilizare a funciilor 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 posibilitile
sistemului de afiare al calculatorului i de proprietile obiectului figur.
Funciile 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 funcia figure, cu
una din urmtoarele sintaxe posibile:
figure
h = figure

Varianta a doua se foloseste pentru ca identificatorul noii figuri s fie reinut 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 funcia gcf ("GetCurrentFigure").


3

Exist 54 de proprieti 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 poziia 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
unitile de msur folosite la proprietatea 'Position';

Spre exemplu, sintaxa get (gcf,


curente.

'Position')

furnizeaz vectorul poziie al figurii

Observaie
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
posibiliti:
- 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 meninut 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 funcii pentru afiarea vectorilor i matricelor de date sub
form grafic, precum i funcii pentru adnotarea i tiprirea acestor grafice.
Funciile 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 funcie disponibil ncepnd cu versiunea
MATLAB 5;
fill
- reprezint grafic poligoane.
4.1.1. Reprezentarea grafic 2D n coordonate liniare
Funcia plot permite reprezentarea grafic a datelor n coordonate liniare i are diferite
forme de utilizare n funcie de argumentele de intrare. Dup apelul funciei, 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.

b) plot (x, y)

c)

Dac x i y sunt vectori de aceeai dimensiune, se reprezint grafic funcia y = y(x).


Dac x i y sunt matrice de aceeai dimensiune, se reprezint grafic coloanele lui y n funcie
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 funcie vectorul x, deci se obin m grafice.
plot (x1 ,y 1,x 2, y2)

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 proprieti 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 semnificaiile acestora sunt prezentate n tabelul 1.
Simbol
y
m
c
r

Culoare
Semnificaie
galben
mov
albastru-deschis
rou

Tip linie
Simbol
Semnificaie
continu
-ntrerupt
:
punctat
-.
linie-punct
5

Simbol
.
o
x
+

Tip marcator
Semnificaie
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 coluri)
hexagrama (stea cu 6 coluri)

Tab.1 Simbolurile i semnificaiile 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
Funciile destinate acestor reprezentri au modul de utilizare identic cu cel al funciei
plot, diferind doar tipul de scalare a axelor. Astfel:
logl og( x,y ) scaleaz ambele axe utiliznd logaritmul n baza 10 (reprezint grafic funcia
log(y) = f (log(x)) );
semi log x(x ,y) scaleaz logaritmic doar axa x, axa y fiind scalat liniar (reprezint grafic
funcia y = f (log(x)) );
semi log y(x ,y) scaleaz logaritmic doar axa y, axa x fiind scalat liniar (reprezint grafic
funcia log(y) = f (x) ).
4.1.3. Proprietile obiectului grafic de tip LINE (obinut cu plot, loglog, semilogx,
semilogy)
Dintre proprietile 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. Funcia 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 funcii cu axele y scalate
diferit, este util funcia plotyy. Aceasta reprezint dou perechi de grafice ale cror gradaii pe
axele y sunt n stnga, respectiv dreapta graficelor i este disponibil ncepnd cu versiunea
MATLAB 5.2.
Dup apelul funciei, 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 funciei plotyy se poate folosi una din sintaxele:
plotyy(x1,y1,x2,y2) traseaz grafic funcia y1=f(x1) cu axa y plasat la marginea
stng a zonei delimitate de sistemul de axe i funcia y2=f(x2) cu axa y plasat n dreapta.
Reprezentrile grafice sunt n coordonate liniare (cu funcia plot).
plotyy(x1,y1,x2,y2,fun) permite, fa de sintaxa precedent, specificarea modului de
scalare a axelor, deci a funciei folosite la reprezentri, prin argumentul fun. Acesta trebuie
s fie un ir de caractere ce conine numele unei funcii 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
reinui:
- 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 funcia 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 proprietilor 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 proprietile obiectelor grafice ai cror
identificatori sunt coninui 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 conin
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
obinute i nuane de culori.
6) Pentru stabilirea valorii unei proprieti a oricrui obiect grafic, se apeleaz funcia 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 obine valoarea curent a unei proprieti se apeleaz funcia 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 funcia 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 conin 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

semnificaia ponderii culorilor de baz (rou, verde i albastru) n culoarea respectiv. n acest
ultim caz, pot fi obinute i nuane de culori. Corespondena 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 Corespondena 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 obinute prin interpolare biliniar a culorilor vrfurilor.
n urma apelului, este creat un obiect grafic de tip patch. Dintre proprietile 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 funciei 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 semnificaia precizat anterior.

4.2. Reprezentarea grafic a funciilor predefinite ntre limite impuse


Pentru reprezentarea grafic a uneia sau mai multor funcii predefinite de MATLAB sau
coninute n fiiere funcie utilizator (M files), ntre limite specificate, se poate apela funcia
fplot cu una din sintaxele de mai jos.
n toate sintaxele, primul argument este irul de caractere ce reprezint numele funciei,
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 funcia 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 funcia cos(x) pentru x [0, 2], afind doar poriunea din grafic pentru care
cos(x) [0, 1].
2)
fplot('fun', limite, tol ), unde tol <1
permite, fa de prima sintax, specificarea toleranei relative acceptate la reprezentare. Implicit,
aceasta este 2e-3, adic 0,2%. Tolerana determin numrul maxim de pai utilizai la plotare
pentru axa x (numrul de puncte prin care se traseaz funcia) cu relaia [(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 mprit 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 funciei plot.
Exemplu: fplot('cos(x)', [0 2*pi], 'r:o')
5)
fplot('fun', limite, )
accept combinaii 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 conin
valorile absciselor, respectiv ordonatelor funciei Y = fun(X). Reprezentarea grafic se poate face
ulterior cu funcia plot.
Utiliznd funcia fplot pot fi realizate i reprezentri grafice multiple pentru acelai
domeniu al absciselor. Pentru aceasta, exist dou posibiliti.
- Se specific pentru primul argument un ir de caractere ce conine funciile de reprezentat
simultan, care s poat fi evaluat cu funcia eval.
Exemplu: fplot('[cos(x) sin(x)]',[0 2*pi]) va reprezenta simultan funciile sin(x) i cos(x)
pentru x[0, 2].
- Se creeaz o funcie utilizator (un M - file) avnd ca parametru de ieire o matrice,
urmrindu-se ca fiecare coloan a acesteia s reprezinte valorile cte unei funcii de
reprezentat. La apelul funciei fplot, ca prim argument, se specific numele funciei (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 nsoit de afiarea unui marker (comet)
format dintr-un cercule urmat de un segment de dreapt (corpul cometei), care urmrete
traiectoria. Se obine astfel un grafic animat (dinamic). Acest efect se obine folosind funcia
comet cu una din sintaxele de mai jos.
- comet(y)
- realizeaz reprezentarea dinamic a vectorului y (elementele vectorului
funcie de indexul acestora).
10

comet(x,y)
- realizeaz reprezentarea dinamic a vectorului y n funcie 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 obine reprezentri grafice dinamice multiple (dac unul din primele dou
argumente este o matrice, nu se obine o reprezentare grafic multipl ca i cu funcia plot).
2) Reprezentarea grafic realizat, cu excepia 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 funcia polar, apelat cu una din
sintaxele:
- polar(theta,rho)
- polar(theta,rho,cul_linie)
Primul argument (theta) trebuie s fie vectorul care conine unghiurile fa de direcia
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 reeaua grid vor fi cele specifice coordonatelor polare.
Cel de-al treilea argument (opional) permite precizarea culorii, tipului de linie i de
marcator, utilizate la reprezentare, aceleai cu cele de la funcia 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 poziie
specificat i avnd dimensiuni specificate; sintaxa comenzii este:
axes('Position',[xinitial yinitial lungimex lungimey])

Elementele vectorului [xinitial yinitial lungimex lungimey] sunt exprimate n


unitai normalizate i msurate fa de colul din stnga jos al ferestrei figur curente.
axes

creeaz un sistem de axe cu poziia i dimensiunile implicite (umple fereastra

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

reine identificatorul obiectului creat n variabila 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 spaiului dreptunghiular asociat


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

Componentele xinitial i yinitial sunt distanele, pe orizontal i vertical, de la colul din


stnga jos al ferestrei figur la colul din dreapta jos al reprezentrii grafice.
Componentele lungimex i lungimey sunt lungimile celor dou axe.
Unitile de msur ale componentelor vectorului poziie sunt, n mod implicit, unitile
normalizate, pentru care colul din stnga jos al ferestrei figur are coordonatele (0, 0), iar colul
din dreapta sus are coordonatele (1, 1). Acestea pot fi schimbate prin proprietatea 'units'.
3)
'Units'
'pixels'/'normalized'/'inches'/'centimeters'/'points'
specific sistemul de uniti de msur ce vor fi utilizate la interpretarea proprietii 'position'.
Indiferent de unitile specificate, msurarea se face fa de colul 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.

12

pentru abscis,

Dac se dorete ca unele limite s fie autoscalate, n vectorul argument, la poziia


respectiv se folosete variabila Inf pentru o limit superioar, respectiv -Inf pentru o limit
inferioar.
Exemplu: axis([-Inf 2 3 Inf])
Acelai efect se obine specificnd pentru proprietile '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 gradaiilor n funcie de
valorile extreme ale datelor de reprezentat. Modul de gradare al celor dou axe poate fi ns
schimbat modificnd valorile proprietilor 'xtick', respectiv 'ytick' ale obiectului grafic axe
("axes"). Pentru acestea, se specific vectori ale cror componente reprezint valoarea gradaiilor
ce vor fi utilizate pentru axe.
Setarea acestor proprieti 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 liniuele folosite la gradarea axelor, sunt disponibile urmtoarele proprieti
i valori posibile ale acestora:
-

'ticklength'

vector cu dou elemente

care specific lungimea liniuei 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 liniuelor de gradare spre interior ('in') sau spre exterior ('out').
-

'xMinortick'
'yMinortick'

'on' /'off'
'on' /'off'

care activeaz sau nu afiarea liniuelor de gradare secundare (ntre cele principale). Acestea sunt
distanate automat, n funcie de spaiul dintre liniuele de gradare principale.

5.4. Aspectul sistemului de axe


n mod implicit, MATLAB afieaz graficele ntr-un sistem rectangular de axe
poziionate n fereastra figur astfel nct spaiul 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
axis('equal', 'tight') sau axis equal tight
sau axis normal

c) 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 colul din stnga jos;
g) axis('ij')
sau axis ij
realizeaz reprezentarea grafic n coordonate matriceale, cu originea n colul 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
proprieti 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 direcia 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 poziia axei Ox
'Yaxislocation'
'left' / 'right'
stabilete poziia axei Oy.

5.5. Afiarea i controlul reelei ajuttoare grid


Gridul este o reea 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 liniuele grid secundare.
grid (h,on)- activeaz reeaua grid principal n sistemul de axe cu identificatorul h.
Controlul afirii liniilor reelei grid se realizeaz prin urmtoarele proprieti 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 reeaua 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 reeaua 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 iniial, conform creia, la apelul unei
funcii de reprezentare grafic, graficul anterior este ters.
Dup activarea mecanismului de suprapunere succesiv, oricare ar funcia apelat pentru o
nou reprezentare grafic, aceasta nu mai schimb modul de scalare a axelor.

7. Divizarea ferestrei grafice


Sistemul MATLAB permite mprirea 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 funcia 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 mprit anterior, apelul funciei 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 poziia 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 funcii subplot determin suprapunerea noului sistem de axe peste
unul existent, are loc tergerea primului.

8. Vizualizarea detaliilor
Pentru a vizualiza poriuni 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, permind evidenierea detaliilor;
- printr-o dubl apsare a butonului stng al mouse ului, se revine la limitele iniiale.
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 iniiale.

15

9. tergerea axelor curente


Pentru tergerea reprezentrilor grafice din axele curente se poate folosi funcia 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 proprietile obiectului axe
la valorile implicite, cu excepia poziiei acestuia.
10. Afiarea textului n spaiul reprezentrii grafice
Sistemul grafic MATLAB ofer multiple faciliti privind afiarea textelor. Acestea pot fi
accesate fie prin comenzi MATLAB, fie utiliznd editorul de plot. Orice efect obinut cu editorul
de plot poate fi obinut 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 obinute cu
ajutorul editorului de plot.
Atunci cnd se decide utilizarea comenzilor grafice MATLAB sau a editorului de plot
trebuie inut seama c exist urmtoarele diferene:
- 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 opiunea Symbol din fereastra de dialog Edit Font Properties a
editorului de plot, textul obinut nu mai poate fi editat ulterior prin comenzi MATLAB.
10.1. Utilizarea comenzilor MATLAB pentru afiarea textelor n orice poziie a
sistemului de axe
Pentru sistemul grafic MATLAB, orientat pe obiecte, orice adnotare n spaiul sistemului
de axe este un obiect grafic de tip text, care este copil al obiectului grafic axes.
Inserarea unui text n orice poziie a spaiului ferestrei figur care conine 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 poziie precizat n cadrul sistemului de
axe, se apeleaz comanda text.
1) text(x,y,'text')

afieaz irul de caractere 'text' ncepnd cu poziia dat de coordonatele (x,y) exprimate n
unitile 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
proprieti ale obiectului text, nc de la crearea acestuia.
n tabelul 3 sunt prezentate cteva din proprietile obiectelor grafice de tip text i
valorile posibile ale acestora.
Se precizeaz cteva aspecte.
- n mod implicit, coordonatele prin care se specific locaia textului sunt exprimate n
unitatea de msur a datelor din sistemul de axe i sunt raportate la originea acestuia.
- Proprietile VerticalAlignment i HorizontalAlignment controleaz poziia textului
fa de punctul precizat ca locaie a acestuia. Figurile 1 i 2 ilustreaz opiunile fiecrei
proprieti i corespondena acestora cu plasarea textului.

16

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

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

Descrierea proprietii

Valoarea proprietii

Numele proprietii
Poziia i dimensiunea obiectului
grafic text (dreptunghiului care
ncadreaz textul).

Valori: vector cu 4 elemente


[left, bottom, width, height]
Proprietate accesibil doar pentru citire.

HorizontalAlignment

Alinierea pe orizontal o irului de


caractere care formeaz textul

Valori: left, center, right


Implicit: left

Position

Poziia dreptunghiului definit prin


proprietatea Extent

Valori: vector coordonate [x, y, z]


exprimat n unitile de msur specificate prin
proprietatea Units

Rotation

Orientarea obiectului text

Valori: scalar (grade)


Implicit: 0

Units

Unitile de msur pentru


proprietile Extent i Position

Valori: pixels,
normalized, inches,
centimeters,
points,
data
Implicit: data
(unitatea
de
msur

Extent

folosit pentru datele reprezentate n


sistemul de axe printe)

VerticalAlignment

Alinierea pe vertical o irului de


caractere care formeaz textul

Valori: top, cap, middle, baseline, bottom


Implicit: middle

FontAngle

nclinarea caracterelor

Valori: normal, italic, oblique


Implicit: normal

FonfName

Familia de fonturi

Valori: un ir de caractere semnificnd un font


acceptat de sistem sau irul de caractere
FixedWidth
Implicit: Helvetica

FontSize

Dimensiunea fontului

Valori: dimensiune exprimtat n


msur exprimat prin proprietatea
Implicit: 10 points

FontUnits

Unitatea de msur pentru


proprietatea FontSize

Valori: points, normalized, inches,


centimeters, pixels
Implicit: points

FontWeight

Grosimea caracterelor

Valori: light, normal, demi, bold


Implicit: normal

Color

Culoarea textului

Valori: vector [R G B] sau nume predefinit


Implicit: white

Tab. 3 Proprieti de baz ale obiectelor de tip text

17

unitatea de
FontUnits

Exist i posibilitatea de a crea, printr-un singur apel al funciei text, mai multe obiecte de
tip text. Astfel:
o
Pentru a afia acelai text n mai multe locaii din sistemul de axe, argumentele x
i y sunt vectori ce conin coordonatele punctelor de referin pentru plasarea
textului;
o
Pentru a afia texte diferite n locaiile 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 coninnd textul
dorit pentru locaia
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 poziie
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 locaie 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 funciei (argumentele specificate), aceasta accept
reinerea 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 semnificaiei mrimilor reprezentate pe fiecare ax se face cu
funciile:
n

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

care va fi afiat.
Deoarece textul afiat cu aceste comenzi constituie pentru sistemul grafic MATLAB un
obiect grafic de tip text, prin modificarea proprietilor acestui obiect pot fi stabilite
caracteristicile textului (tab.1).
Valorile proprietilor pot fi specificate nc de la crearea obiectului text.
Exemplu:
xlabel('x','fontname','TimesNewRoman','fontsize',12,'color',[1 0.4 0.6])

18

Pentru afiarea etichetelor pe axe exist i proprietile '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 proprietilor '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 coninnd 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
gradaii 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 spaiului
delimitat de sistemul de axe i centrat pe orizontal. Acesta va fi plasat cu funcia 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 proprieti 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 proprietile sistemului de axe are este 'title', un titlu poate fi asociat sistemului de
axe prin precizarea valorii acestei proprieti.
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 condiia ca secvena TEX s fie precedat de caracterul "\".
Dac se seteaz proprietatea Interpreter la valoarea none, MATLAB interpreteaz caracterele
speciale n mod literar.
Secvena de caractere
TEX

Simbolul

Secvena de caractere
TEX

Simbolul

Secvena de caractere
TEX

\alpha

\upsilon

\sim

\beta

\phi

\leq

\gamma

\chi

\infty

\delta

\psi

\clubsuit

\epsilon

\omega

\diamondsuit

19

Simbolul
~

\zeta

\Gamma

\heartsuit

\eta

\Delta

\spadesuit

\theta

\Theta

\leftrightarrow

\vartheta

\Lambda

\leftarrow

\iota

\Xi

\uparrow

\kappa

\Pi

\rightarrow

\lambda

\Sigma

\downarrow

\Upsilon

\circ

\nu

\Phi

\pm

\xi

\Psi

\geq

\pi

\Omega

\propto

\rho

\forall

\partial

\sigma

\exists

\bullet

\varsigma

\ni

\div

\tau

\cong

\neq

\equiv

\approx

\aleph

\Im

\Re

\wp

\otimes

\oplus

\oslash

\cap

\cup

\supseteq

\supset

\subseteq

\subset

\int

\in

\o

\rfloor

\lceil

\nabla

\lfloor

\cdot

\ldots

...

\perp

\neg

\prime

'

\wedge

\times

\0

\rceil

\surd

\mid

\vee

\varpi

\copyright

\langle

\rangle

\mu

Tab. 4 Lista secvenelor de caractere TEX utilizate pentru afiarea simbolurilor

De asemenea, exist secvene 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 exponeni, se folosesc caracterele " _" , respectiv " ^ ",
modificarea afectnd textul cuprins ntre acoladele imediat urmtoare.
Exemplu de utilizare a caracterelor TEX:
Asociind unui ir de caractere secvena
'\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.
legend('text1',' text2',...)

1)

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 poziionat n interiorul spaiului delimitat de sistemul de axe, n colul 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
'text1',' text2', ...
legend(matrice_caractere)

3)

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

4)

din

vectorul h al identificatorilor.
5)

legend(h_axe,...)

afieaz legenda pentru sistemul de axe identificat prin h_axe


6)

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

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

7)

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 poziionat 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 puine puncte din reprezentrile grafice.
pos = 1
plaseaz legenda n colul din dreapta sus al sistemului de axe (implicit).
pos = 2
plaseaz legenda n colul din stnga sus al sistemului de axe.
pos = 3
plaseaz legenda n colul din stnga jos al sistemului de axe.
21


9)

pos = 4
plaseaz legenda n colul 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

proprietilor 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 reinute obiectele n
proprietatea Children a obiectului Axes.
- Poziia 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 coninute 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 funciei bar.
De reinut! 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 funciei 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 funciei coninnd
doar datele reprezentate pe ordonat.
Dac y este un vector, se va trasa o bar pentru fiecare component, avnd nlimea
valorii componentei i abscisa egal cu indexul (numrul de ordine al acesteia). Limea
barelor este de 0,8 uniti de reprezentare.
Exemplu:
secvena
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:
secvena
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
poziia specificat de elementul cu aceeai poziie din x.
Exemplu:
secvena
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:
secvena
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

23

12

bar(..., latime)

Funcia bar accept ca argument final un numr prin care se specific limea tuturor
barelor i se controleaz separarea acestora n interiorul unui grup. Limea 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

(un caracter sau un ir de caractere) permite specificarea culorii de


reprezentare a barelor, la fel ca la funcia plot.

bar(..., stil)

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 conine un numr de bare egal cu numrul de coloane ale
matricei.
'stack' sau 'stacked'- afieaz barele din grup suprapuse, obinnd astfel doar o bar
pentru fiecare linie din y. nlimea barei este suma elementelor liniei. Fiecare bar este
multicolorat cu culorile corespunztoare elementelor i arat ponderea fiecrui element
al liniei n sum.
Exemplu:
secvena
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 funcia 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 funcia barh, sintaxele fiind aceleai cu cele ale
funciei bar.
Exemplu: Secvena
y=[2 4 6;9 7 5];
barh(y,'stack'); grid on;
24

realizeaz reprezentarea grafic de mai jos

APLICAIE 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 funcia plot)
x=0:2:10;y1=x.^2;y2=10*y1;

Se realizeaz reprezentarea grafic cu bare cu funcia 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 poziie ca cel anterior


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

Se realizeaz reprezentarea grafic n coordonate liniare cu funcia plot i caracteristicile


dorite (culoare, ..)

Se stabilete locaia axei y a noului sistem de axe la dreapta, caracteristica de a fi


transparent (fr culoare) i de a nu avea etichete la liniuele de gradare de pe axa x

plot(x,y2,'k','LineWidth',3)

set(h2,'YAxisLocation','right','Color','none','XTickLabel',[])

Se eticheteaz axa y a noului sistem de axe


ylabel('y_2');

Se afieaz reeaua grid


grid on

Efectul secvenei anterioare de operaii va fi urmtorul:

80

800

60

600

40

400

20

200

y2

1000

y1

100

6
x

25

10

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 funcia
stem. n mod implicit, linia de trasare este continu i are aceeai culoare cu marcatorul. Exist
mai multe sintaxe posibile.
stem(y) reprezint datele coninute n vectorul y, abscisele fiind indecii elementelor.
Exemplu:
secvena
y=[2 5 9 12];
stem(y)
grid on;

are ca efect afiarea reprezentrii


15

10

1.5

2.5

3.5

reprezint grafic dependena 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 funcia 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(...) reine, n variabila h de tip vector, identificatorii obiectelor grafice
create, respectiv a obiectelor de tip line.
De reinut! n Matlab 6.5, la apelul funciei 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 (atenie, 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: secvena

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.5

2.5

Observaie: Nu este admis o sintax de genul [xs,

3.5

ys]=stem(x,y) , similar funciei bar,


care s permit reinerea 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 funcia stairs apelat cu una din
sintaxele:
stairs(y) reprezint graficul n trepte al elementelor vectorului y;
Exemplu: secvena
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, dependena 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 funcia plot), a
culorii i liniei de reprezentare.
stairs(x,y,stil_linie )
Observaie: datele coninute 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(. . .)
reine, n variabila h, identificatorul/identificatorii obiectelor
grafice de tip line create.
De reinut! Apelul funciei stairs determin crearea unuia sau mai multor obiecte de tip

line care pot fi modificate ulterior cu editorul de plot sau prin proprietile acestora, cu
funcia set.
Exemplu:
secvena
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

27

2.5

14. Obinerea coordonatelor punctelor din spaiul sistemului de axe,


utiliznd mouse-ul
Funcia MATLAB ginput permite indicarea punctelor din spaiul ferestrei figur,
utiliznd mouse-ul pentru poziionarea cursorului, n scopul obinerii 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 operaiei nainte de selectarea celor n puncte se poate realiza apsnd tasta Enter.
2)

[x,y] = ginput

permite reinerea 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, reinerea n vectorul b a informaiilor privind


modul cum a fost realizat selectarea punctului.
Astfel:
- pentru selectare prin apsarea butonului stng al mouse-ului, se obine valoarea 1;
- pentru selectare prin apsarea butonului din mijloc al mouse-ului, se obine valoarea 2;
- pentru selectare prin apsarea butonului drept al mouse-ului, se obine valoarea 3;
- pentru selectare prin apsarea unei taste, se obine un numr semnificnd codul ASCII
asociat;
Observaii
- Dac la apelul funciei 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 funcii pentru crearea i controlul modului de afiare a
graficelor n spaiul tridimensional.
15.1. Reprezentarea grafic tridimensional a datelor coninute n vectori sau
matrice
Pentru a afia sub forma unui grafic tridimensional datele coninute n trei vectori sau
matrice se folosete funcia plot3 cu una din sintaxele:
plot3(X1,Y1,Z1,...)
plot3(X1,Y1,Z1, Specificare_Atribute,...)
plot3(..., 'Nume_Proprietate', Valoare_Proprietate, ...)
h = plot3(...)
Funcia plot3(X1,Y1,Z1,...), unde X1, Y1, Z1 sunt vectori de aceeai

dimensiune,
afieaz, n spaiul tridimensional, o curb obinut prin interpolarea liniar a punctelor ale cror
coordonate sunt elementele vectorilor X1, Y1 i Z1. Ca i n cazul funciei 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 opional Specificare_Atribute (un ir de maxim trei caractere) permite
specificarea stilului de linie, de marcator i culoarea liniilor plotate (ca la funcia plot).
Prin perechi de argumente de tipul 'Nume_Proprietate', Valoare_Proprietate, se pot
stabili, nc de la creare, oricte valori ale proprietilor obiectelor grafice de tip Line create prin
acest apel de funcie.
28

Sintaxa h = plot3(...) furnizeaz vectorul coloan h, care conine identificatorii tuturor


obiectelor grafice de tip Line create.
15.2. Reprezentarea grafic a suprafeelor tridimensionale
Sistemul MATLAB poate crea suprafee 3D fie sub forma unei reele (mesh) de linii
colorate care conecteaz punctele de definiie, fie sub forma unei suprafee pline.
Reprezentarea grafic 3D a matricelor de date, sub cele dou forme, se realizeaz cu funciile
mesh, respectiv surf i alte funcii derivate din acestea.
Suprafeele sunt parametrizate, n sensul c fiecare punct de definiie 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 suprafaa 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 suprafeelor sub forma unei reele (mesh)
Exist trei funcii MATLAB pentru reprezentarea grafic 3D a matricelor de date sub
forma unei reele de linii colorate:
- mesh, care realizeaz o suprafa mesh fr linii de contur;
- meshc, care adaug reelei linii de contur reprezentate sub suprafa;
- meshz, care adaug reelei un plan de referin la cota zero (un piedestal).
Fiecare dintre acestea poate avea una din sintaxele de mai jos, exemplificate pentru funcia
mesh.
mesh(X,Y,Z,C)
mesh(X,Y,Z)
mesh(Z)
h = mesh(...)

n cazul cel mai general, cnd funciile au patru argumente, sunt create suprafee
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 obine 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
proporional cu nlimea suprafeei.
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 interseciile liniilor de grid
care compun reeaua 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, interseciile liniilor reelei au coordonatele (X(i,j), Y(i,j),
Z(i,j)).
Cu sintaxa mesh(Z) se creeaz o reea mesh care utilizeaz X = 1:n i Y = 1:m, unde
[m,n]=size(Z), iar culoarea este proporional cu nlimea suprafeei.
Identificatorul obiectului grafic de tip surface creat de aceste funcii poate fi reinut ntr-o
variabil, dac se utilizeaz sintaxa h=mesh(...), respectiv h=meshc(...) sau h=meshz(...).
15.4. Reprezentarea suprafeelor pline
Pentru reprezentarea grafic a suprafeelor pline se folosesc funciile surf i sulfc.
Sintaxele acestora i semnificaia argumentelor sunt similare celor ale funciilor utilizate pentru
reprezentarea suprafeelor sub forma unei reele de linii. Spre deosebire de surf, funcia surfc
afieaz i liniile de nivel, pe acelai grafic i sub suprafa.
29

15.5. Reprezentarea grafic a funciilor de dou variabile


Pentru a reprezenta grafic o funcie de dou variabile, y = f(x,y), sub forma unei suprafee
de tip reea de linii colorate sau suprafa plin, nainte de apelul funciei grafice dorite este
necesar generarea matricelor X i Y ce definesc domeniul de definiie prin suprafee
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 funcia 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 funcii predefinite pentru reprezentarea unei sfere i a unui cilindru.
Generarea unei sfere cu raza egal cu unitatea se realizeaz cu funcia sphere, care poate
fi utilizat cu una din sintaxele de mai jos.
sphere(n)
sphere
[X,Y,Z] = sphere(...)

Apelat cu prima sintax, funcia reprezint grafic suprafaa unei sfere format din n x n
suprafee 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 suprafaa sferei. Aceste coordonate vor fi utilizate ulterior ca argumente ale funciei
surf sau mesh pentru reprezentarea grafic a suprafeei sferei.
Generarea unui cilindru (sau forme geometrice derivate din acesta) cu nlimea egal cu
unitatea se realizeaz cu una din sintaxele de mai jos ale funciei 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, funcia nu are nici un efect grafic, crendu-se


doar matricele cu coordonatele necesare reprezentrii grafice ulterioare cu una din funciile 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 obinut 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 nlime 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 funcia
surf, obiectul de tip suprafa cu aspectul particularizat prin argumentele de intrare (dac
exist).
15.7. Stabilirea culorilor
-

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

folosit.
Referitor la culori, la crearea unei suprafee 3D exist trei posibiliti:
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. Coninutul acesteia este controlat prin funcia colormap (vezi
lucrarea 8).
n sistemul grafic MATLAB exist mai multe modele predefinite de culori:
autumn, care folosete nuane bazate pe rou, portocaliu i galben;
bone, o palet cu nuane de albastru i gri;
colorcube, care determin afiarea mai multor suprafee mici cu culori din spaiul RGB;
cool const n nuane de culori care variaz lent de la albastru deschis spre mov;
copper afieaz nuane de culori de la negru spre armiu;
flag afieaz zone colorate cu rou, alb, albastru i negru;
gray folosete nuane de gri;
hot variaz lent de la negru la alb prin nuane 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 nuane de
gri;
pink conine nuane 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 conin un numr impus
de culori, se folosete sintaxa
-

colormap(model(n))

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 funcia 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
funcia shading, care are trei sintaxe posibile:
shading flat fiecare zon de culoare i segment al reelei de linii este umplut cu o
culoare constant determinat de punctul final al segmentului sau colului zonei care are cel mai
mic index sau indici;
shading faceted corespunde modului shading flat, afindu-se i liniile din reea colorate
cu negru; este modul de colorare implicit;
shading interp stabilete culoarea de reprezentare a fiecrui segment i zon elementar
a suprafeei ca o nuan rezultat din interpolarea liniar a culorilor capetelor liniei sau colurilor
suprafeei.

32

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