Documente Academic
Documente Profesional
Documente Cultură
1
- operaţii trigonometrice şi alte operaţii matematice fundamentale.
5) Interfaţa Program Aplicaţie ("Application Program Interface") – API - este o librărie
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 afişarea datelor precum reprezentările grafice în coordonate rectangulare sau polare,
reprezentările grafice speciale (cu bare, histograme ş.a.), reprezentările 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.) fără 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" defineşte 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 afişare al datelor şi se pot dezvolta
aplicaţii grafice proprii.
Utilizând "Handle Graphics" , utilizatorul poate crea meniuri şi elemente de control interactiv
pentru reprezentările grafice (butoane prin apăsare, potenţiometre, casete de control, liste de
opţiuni ş.a.).
Fişierele - M utilizator, create pentru a executa operaţii grafice, pot utiliza atât funcţii grafice
de nivel înalt cât şi sistemul "Handle Graphics" în mod direct.
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 repreyentărilor 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ă fiecărui 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ă apelând comanda set, care are
următoarea 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 următoarea
sintaxă:
get (identificator, ' numele_proprietăţii' )
Identificatorul obiectului rădăcină este totdeauna 0. Pentru obiectul figură, în mod implicit
acesta este un număr întreg afişat în bara de titlu a ferestrei grafice. În versiunile mai noi de
MATLAB (începând cu 5), prin setarea proprietăţii IntegerHandle a figurii la valoarea off,
identificatorul figurii poate fi un număr în virgulă flotantă. Identificatorii oricăror alte obiecte
grafice sunt numere în virgulă flotantă.
Există şi următorii identificatori predefiniţi:
gcf – pentru fereastra figură curentă (“Get Current Figure”)
gca – pentru sistemul de axe curent (“Get Current Axes”)
3. Fereastra figură
MATLAB afişează reprezentările grafice într-o fereastră diferită de cea de comandă numită
fereastra figură ("Figure window"). Caracteristicile acesteia sunt controlate de posibilităţile
sistemului de afişare 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 afişare. În cazul în care există mai multe
ferestre figură, afişarea 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 următoarele sintaxe posibile:
figure
h = figure
Varianta a doua se foloseste pentru ca identificatorul noii figuri să fie reţinut în variabila h în
scopul accesării 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]- stabileşte culoarea fondului;
• 'IntegerHandle' –{ 'on'}/'off'- identificatorul figurii este un număr întreg sau un număr în
virgulă flotantă;
• 'MenuBar' - 'none'/{'figure'}- nu afişează/afişează bara de meniuri a ferestrei figură;
• 'Name' – şir de caractere- numele din bara de titlu;
• 'NumberTitle' –{ 'on'}/'off'- afişează sau nu identificatorul figurii în bara de titlu;
• 'Position' – vector cu 4 elemente [left bottom width height] care stabileşte 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' – stabileşte vizibilitatea ferestrei figură;
• 'Tag' – şir de caractere (etichetă) asociat de utilizator obiectului grafic
• 'Units' – 'inches' | 'centimeters' | 'normalized' | 'points' | {'pixels'} | 'characters' satbileşte
unităţile de măsură folosite la proprietatea 'Position';
Spre exemplu, sintaxa get (gcf, 'Position') furnizează vectorul poziţie al figurii
curente.
Observaţie
În mod implicit, fondul ferestrei figură este negru pentru versiunile MATLAB inferioare lui
5 şi gri începând cu MATLAB 5. Pentru a modifica fondul ferestrei figură, există două
posibilităţi:
- se foloseşte comanda set pentru a modifica proprietatea 'Color' la valoarea dorită;
- se foloseşte whitebg.
Sintaxe posibile:
whitebg(fig, c) – stabileşte fondul implicit al sistemului de axe pentru figurile ai căror
identificatori sunt incluşi în vectorul fig la valoarea specificată în c. Fondul ferestrei figură se
schimbă (o nuanţă apropiată culorii fondului sistemului de axe) astfel încât să fie menţinut un
contrast adecvat. Argumentul c poate fi un vector de dimensiunea 1x3 (vector RGB), sau un şir
de caractere care defineşte 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 fără specificarea identificatorilor unor figuri-
afectează fereastra curentă şi noile figuri.
4
4. Reprezentări grafice 2-D
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 = 1…n 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 = 1…m este indexul elementelor de pe coloana j.
b) plot (x, y)
• Dacă x şi y sunt vectori de aceeaşi dimensiune, se reprezintă grafic funcţia y = y(x).
• Dacă x şi y sunt matrice de aceeaşi 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.
c) plot (x1 ,y 1,x 2, y2…)
Această sintaxă este folosită pentru a reprezenta simultan mai multe grafice, corespunzând
mai multor perechi de argumente (x1, y1), (x2, y2) ş.a.m.d. în acelaşi sistem de coordonate.
d) plo t(… , ‘nume_proprietate1', valoare_proprietate1, ‘nume_proprietate2',
valoare_proprietate2… )
permite specificarea valorilor unor proprietăţi pentru obiectele de tip line încă din momentul
creării 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 precizării acestora neavând importanţă. Simbolurile
disponibile şi semnificaţiile acestora sunt prezentate în tabelul 1.
5
g verde * asterisc
b albastru s pătrat
w alb d diamant
k negru v triunghi isoscel cu un vârf în jos
^ triunghi isoscel cu un vârf în sus
< triunghi isoscel cu un vârf la stânga
> triunghi isoscel cu un vârf la dreapta
p pentagrama (stea cu 5 colţuri)
h hexagrama (stea cu 6 colţuri)
Tab.1 Simbolurile şi semnificaţiile caracteristicilor liniei de trasare
4.1.3. Proprietăţile obiectului grafic de tip LINE (obţinut cu plot, loglog, semilogx,
semilogy)
6
Exemplu de creare a unui meniu contextual pentru un obiect de tip line care va permite
alegerea tipului de linie de trasare
7
1) Oricare din perechile x,y pot fi, în mod independent, de tipul vector-vector, vector-
matrice sau matrice-matrice. Este permisă astfel reprezentarea grafică, în oricare din cele
două sisteme de axe, a mai multor grafice.
2) Utilizând funcţia plotyy, nu se pot controla caracteristicile liniilor de trasare în
momentul trasării acestora. Vor fi folosite ciclic 7 culori.
3) Dacă una din perechile de date este de tip vector-vector (afişarea unui singur grafic în
sistemul de axe respectiv), axa y corespunzătoare va avea aceeaşi 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ă
decât pentru graficele asociate perechii x2,y2.
5) Caracteristicile liniilor de trasare corespunzătoare perechii x1,y1 pot fi totuşi modificate
prin specificarea unor noi valori pentru proprietăţile obiectelor grafice ai căror
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 având valori cuprinse între 0 şi 1 care
reprezintă ponderea culorilor roşu, verde şi albastru în culoarea dorită. Pot fi astfel
obţinute şi nuanţe de culori.
6) Pentru stabilirea valorii unei proprietăţi a oricărui 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 reprezentării grafice cu
identificatorul h1;
set(h2,'Color','g') - asociază culoarea verde reprezentării grafice cu
identificatorul h2;
set(h1(2),'LineStyle',':') - stabileşte 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) - stabileşte 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 următoarea
sintaxă:
get (identificator, ' nume_proprietate' )
8
semnificaţia ponderii culorilor de bază (roşu, 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]
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π], afişând 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ă numărul maxim de paşi utilizaţi la plotare
pentru axa x (numărul de puncte prin care se trasează funcţia) cu relaţia [(1/tol)+0,5] + 1 , în care
[ ] semnifică operatorul parte întreagă. Numărul implicit de paşi este astfel 501.
3) fplot('fun', limite, N ), unde N≥ 1
permite, specificarea numărului de intervale în care este împărţit domeniul absciselor. Astfel,
numărul de puncte utilizate la trasare va fi (N + 1). Pasul maxim va fi astfel (1/N)*(xmax -
xmin).
În scopul realizării unei reprezentări 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 afişează 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.
Utilizând funcţia fplot pot fi realizate şi reprezentări grafice multiple pentru acelaşi
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) având ca parametru de ieşire o matrice,
urmărindu-se ca fiecare coloană a acesteia să reprezinte valorile câte unei funcţii de
reprezentat. La apelul funcţiei fplot, ca prim argument, se specifică numele funcţiei (care
este şi numele fişierului .m)
- Exemplu: function y=f(x)
y(:,1) = sin(x(:));
y(:,2) = cos(x(:));
iar apoi, fplot('f' ,[0 2*pi])
10
- comet(x,y) - realizează reprezentarea dinamică a vectorului y în funcţie de vectorul x.
- comet(x,y,p) - face aceeaşi reprezentare ca sintaxa anterioară, dar permite specificarea
lungimii corpului cometei ca fiind p∗length(y). Valoarea implicită a lui p
este 0.1.
Remarci:
1) Nu se pot obţine reprezentări 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 tipărite (sunt invizibile) şi nu
vor fi afişate dacă sunt copiate în altă parte. De asemenea, aceasta va dispărea la
redimensionarea figurii sau la încercarea de afişare a detaliilor cu comanda zoom.
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ă aceeaşi dimensiune.
Sistemul de axe afişat ş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, aceleaşi cu cele de la funcţia plot.
Exemplu:
t = 0:0.01:2*pi;
polar(t,sin(2*t).*cos(2*t),'--r')
11
- explicit, cu comanda axes, care permite afişarea unui sistem de axe într-o poziţie
specificată şi având dimensiuni specificate; sintaxa comenzii este:
axes('Position',[xinitial yinitial lungimex lungimey])
12
Dacă se doreşte ca unele limite să fie autoscalate, în vectorul argument, la poziţia
respectivă se foloseşte variabila Inf pentru o limită superioară, respectiv -Inf pentru o limită
inferioară.
Exemplu: axis([-Inf 2 3 Inf])
Acelaşi efect se obţine specificând pentru proprietăţile 'xlim', respectiv 'ylim' ale
obiectului axe câte un vector de forma [xmin xmax], respectiv [ymin ymax].
Exemplu: set(gca,'xlim',[-Inf 2])
set(gca,'ylim',[3 Inf])
Pentru a determina autoscalarea reprezentării grafice curente, prin alegerea de către
sistemul MATLAB a celor mai bune limite, astfel încât reprezentarea să fie integrală, se
foloseşte sintaxa
axis('auto') sau axis auto
13
rescalează reprezentarea grafică curentă astfel încât aceasta să fie cuprinsă integral în
dreptunghiul utilizat la reprezentare, anulând 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 stânga jos;
g) axis('ij') sau axis ij
realizează reprezentarea grafică în coordonate matriceale, cu originea în colţul din stânga sus
(axa i este verticală şi orientată în jos, iar axa j este orizontală şi orientată spre dreapta).
Pentru controlul independent al aspectului fiecărei 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 afişată axa x şi etichetele acesteia prin şirul de caractere
reprezentând simbolul culorii sau prin vectorul [r g b].
- 'Xdir' 'normal' / 'reverse'
stabileşte direcţia de creştere a valorilor numerice pe axă: de la stânga la dreapta ('normal')
sau de la dreapta la stânga ('reverse').
- 'Xscale' 'linear' / 'log'
stabileşte modul de scalare a axelor.
- 'Xaxislocation' 'bottom' / 'top'
stabileşte poziţia axei Ox
- 'Yaxislocation' 'left' / 'right'
stabileşte poziţia axei Oy.
Gridul este o reţea de linii verticale şi orizontale trasate pe grafic prin fiecare punct de
gradare a axelor care uşurează citirea datelor. Afişarea şi ştergerea acesteia se fac cu comanda
grid care lucrează ca un comutator. Se mai pot folosi sintaxele:
grid on - pentru afişare
grid off - pentru ştergere.
grid minor - lucrează ca un comutator şi afişează/ascunde liniuţele grid secundare.
grid (h,’on’)- activează reţeaua grid principală în sistemul de axe cu identificatorul h.
Controlul afişării liniilor reţelei grid se realizează prin următoarele proprietăţi ale
obiectului grafic axe:
- 'xgrid' 'on' /'off'
care afişează (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 stabileşte tipul de linie folosit pentru reţeaua grid (continuă, întreruptă, linie-punct sau din
puncte), prin caracterele corespunzătoare, aceleaşi cu cele utilizate la stabilirea liniei de trasare a
graficelor.
- 'minorgridlinestyle' 'tiplinie'
care stabileşte tipul de linie folosit pentru reţeaua grid secundară (continuă, întreruptă, linie-
punct sau din puncte).
14
6. Adăugarea succesivă a reprezentărilor grafice într-un sistem de axe existent
(suprapunerea succesivă )
Utilizând comanda hold se pot adăuga grafice alături de altele existente într-un sistem de
axe.
hold on - care va determina adăugarea graficelor următoare peste cel curent, fără a-l
şterge, producându-se o rescalare a axelor dacă este cazul;
hold off - care va determina revenirea la setarea iniţială, conform căreia, 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.
8. Vizualizarea detaliilor
Pentru a vizualiza porţiuni ale reprezentării grafice curente se foloseşte comanda zoom.
După primul apel al acesteia sau folosind sintaxa zoom on, se pot realiza efectele:
- folosind butonul stâng al mouse –ului este permisă specificarea zonei grafice ce va fi
detaliată;
- la fiecare apăsare a butonului stâng al mouse –ului limitele axelor vor fi schimbate cu un
factor de 2, permiţând evidenţierea detaliilor;
- printr-o dublă apăsare a butonului stâng 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 afişarea reprezentării grafice iniţiale.
15
9. Ştergerea axelor curente
Pentru ştergerea reprezentărilor 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.
Sistemul grafic MATLAB oferă multiple facilităţi privind afişarea textelor. Acestea pot fi
accesate fie prin comenzi MATLAB, fie utilizând 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
afişarea unor etichete proprii pentru marcatorii de gradare a axelor, care nu pot fi obţinute cu
ajutorul editorului de plot.
Atunci când se decide utilizarea comenzilor grafice MATLAB sau a editorului de plot
trebuie ţinut seama că există următoarele diferenţe:
- adnotările create prin apelul de comenzi sunt obiecte grafice ancorate de sistemul de axe,
deci se vor muta odată cu acesta;
- adnotările 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 greceşti) ş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.
16
Fig. 1 Efectele valorilor proprietăţii Fig. 2 Efectele valorilor proprietăţii
HorizontalAlignment în cazul în care VerticalAlignment în cazul în care
VerticalAlignment este setată la valoarea HorizontalAlignment este setată la
Middle (valoarea implicită) valoarea Left (valoarea implicită)
VerticalAlignment Alinierea pe verticală o şirului de Valori: top, cap, middle, baseline, bottom
caractere care formează textul Implicit: middle
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 afişa acelaşi 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 afişa texte diferite în locaţiile determinate de perechile abscisă-ordonată,
x şi y vor fi vectori de aceeaşi dimensiune, iar pentru argumentul al treilea există
variantele:
matrice de tip char array având numărul de linii egal cu dimensiunea
vectorilor x şi y, fiecare linie conţinând textul dorit pentru locaţia
corespunzătoare;
Exemplu: text([0.1,0.2,0.3],[0.1,0.2,0.3],
[’text1’ ;’text2’ ;’text3’])
Există limitarea că numărul de caractere ale liniilor trebuie să fie acelaşi.
vector linie de tip char array, textele dorite a fi afişate î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, numărul caracterelor specificate între “|” poate fi diferit.
vector de tip cell array, având 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’})
Numărul de caractere specificat pentru fiecare celulă a vectorului poate fi diferit.
- Se pot afişa 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ă.
18
Pentru afişarea etichetelor pe axe există şi proprietăţile 'xlabel', respectiv 'ylabel'
cărora trebuie să li se asocieze identificatorii obiectelor text ce se doresc a fi afişate.
Exemple de sintaxe valide:
set(gca,’xlabel’, text(x,y,’eticheta’))
set(gca,’xlabel’, h)
Pentru a specifica textul care să fie utilizat alături 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ţinând ş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 afişate
succesiv sub liniile de gradare ale axei x.
Dacă dimensiunea vectorului sau matricii specificate este mai mică decât numărul de
gradaţii al axei, textele vor fi repetate ciclic.
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)
19
\zeta \Gamma \heartsuit
\int \in \o
\wedge \times x \0
\langle \rangle
20
• \sl - font oblic (când este disponibil)
• \rm - font normal
• \fontname{fontname} – specifică numele familiei de fonturi utilizate
• \fontsize{fontsize} – specifică dimensiunea fontului în FontUnits.
Efectul acestor caracteristici rămâne numai până la sfârşitul şirului de caractere sau numai în
interiorul contextului definit de acolade{ }.
Pentru a utiliza indici şi exponenţi, se folosesc caracterele " _" , respectiv " ^ ",
modificarea afectând textul cuprins între acoladele imediat următoare.
Exemplu de utilizare a caracterelor TEX:
Asociind unui şir de caractere secvenţa
'\bullet\leftarrow\fontname{times}0.25{\ite}^{-0.005{\itt}} '
textul afişat va fi .
21
• pos = 4 plasează legenda în colţul din dreapta jos al sistemului de axe.
9) [h_legenda,h_object] = legend(...)
furnizează identificatorul legendei (h_legenda) şi identificatorii obiectelor grafice (de tip
line, text ş.a.) folosite în legendă (h_object). Aceşti identificatori permit modificarea
proprietăţilor respectivelor obiecte grafice.
Precizări:
- 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ă uşor, prin tragere cu ajutorul mouse-ului.
- Textele asociate etichetelor din legendă pot fi editate după un dublu clic cu mouse stânga
pe respectivul text.
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ţinând
doar datele reprezentate pe ordonată.
- Dacă y este un vector, se va trasa o bară pentru fiecare componentă, având înălţimea
valorii componentei şi abscisa egală cu indexul (numărul 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 afişarea reprezentării
15
10
0
1 2 3 4
- Dacă y este o matrice de dimensiunea m x n, vor fi afişate n seturi de bare de aceeaşi
culoare (câte 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
12 4 12
10
0
0 1 2 3 4 5
• bar(x,y)
Este cea mai folosită sintaxă, pentru că permite precizarea datelor reprezentate atât pe
ordonată, cât şi pe abscisă.
- Dacă x şi y sunt vectori de aceeaşi dimensiune, elementele lui x trebuie să fie în ordine
crescătoare, sintaxa având ca efect afişarea unei bare pentru fiecare element al lui y în
poziţia specificată de elementul cu aceeaşi 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 afişarea reprezentării
20
15
10
0
2 5 9 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, câte 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 afişarea reprezentării
20
15
10
0
2 5 9 12
23
• bar(..., latime)
Funcţia bar acceptă ca argument final un număr 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 număr
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 funcţia plot.
• bar(..., stil)
- Prin argumentul stil (un şir de caractere), este permisă specificarea stilului de bare
folosit atunci când se reprezintă mai multe grafice cu bare în acelaşi sistem de axe. Există
două stiluri posibile de bare:
- 'group' sau 'grouped' - este stilul implicit, care afişează barele corespunzătoare
aceleiaşi abscise grupate în jurul acesteia. Fiecărei linii a matricei y îi corespunde o
abscisă şi deci un grup care conţine un număr de bare egal cu numărul de coloane ale
matricei.
- 'stack' sau 'stacked'- afişează barele din grup suprapuse, obţinând astfel doar o bară
pentru fiecare linie din y. Înălţimea barei este suma elementelor liniei. Fiecare bară este
multicolorată cu culorile corespunzătoare elementelor şi arată ponderea fiecărui 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 afişarea reprezentării
30
20
10
0
2 5 9 12
• [xb,yb] = bar(... )
nu reprezintă graficele, dar calculează vectorii xb şi yb astfel încât graficul cu bare să fie
trasat ulterior cu funcţia plot(xb,yb). Această sintaxă este utilă atunci când se doreşte un
control mai mare asupra graficului, spre exemplu includerea reprezentării 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.
24
realizează reprezentarea grafică de mai jos
80 800
60 600
y1
y2
40 400
20 200
0 0
0 2 4 6 8 10
x
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 aceeaşi culoare cu marcatorul. Există
mai multe sintaxe posibile.
• stem(y) – reprezintă datele conţinute în vectorul y, abscisele fiind indecşii elementelor.
Exemplu: secvenţa » y=[2 5 9 12];
» stem(y)
» grid on;
are ca efect afişarea reprezentării
15
10
0
1 1.5 2 2.5 3 3.5 4
10
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, fără a avea efect grafic.
26
13. Reprezentarea graficelor în trepte
Reprezentarea în trepte a graficelor este utilă pentru diagramele sistemelor numerice de
eşantionare ş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 afişarea reprezentării
12
10
2
1 1.5 2 2.5 3 3.5 4
• 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, câte 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 crescătoare ş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 încât
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 afişarea reprezentării
60
50
40
30
20
10
0.5 1 1.5 2 2.5
27
14. Obţinerea coordonatelor punctelor din spaţiul sistemului de axe,
utilizând mouse-ul
Funcţia MATLAB ginput permite indicarea punctelor din spaţiul ferestrei figură,
utilizând 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 apăsând tasta Enter.
2) [x,y] = ginput
permite reţinerea în vectorii coloană x şi y a coordonatelor unui număr nelimitat de puncte,
până la apăsarea 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 apăsarea butonului stâng al mouse-ului, se obţine valoarea 1;
- pentru selectare prin apăsarea butonului din mijloc al mouse-ului, se obţine valoarea 2;
- pentru selectare prin apăsarea butonului drept al mouse-ului, se obţine valoarea 3;
- pentru selectare prin apăsarea unei taste, se obţine un număr semnificând 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.
Pentru a afişa sub forma unui grafic tridimensional datele conţinute în trei vectori sau
matrice se foloseşte 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 aceeaşi dimensiune,
afişează, în spaţiul tridimensional, o curbă obţinută prin interpolarea liniară a punctelor ale căror
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 aceeaşi dimensiune, MATLAB reprezintă câte 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, oricâte 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.
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 aceeaşi dimensiune m x n.
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” fără 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, când 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ă aceeaşi dimensiune ca şi
acestea.
Sintaxa mesh(X,Y,Z), în care matricea C este omisă, consideră C=Z, culoarea fiind
proporţională cu înălţ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 înălţ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(...).
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 încât liniile lui X sunt copiile lui
x, iar coloanele lui Y sunt copiile lui y, se foloseşte 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).
Î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,
fără a afişa 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 înălţ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(...)
Pentru afişarea culorilor asociate suprafeţelor, sistemul MATLAB foloseşte două tehnici:
- culori indexate, care asociază fiecărui punct din datele ce definesc suprafaţa un index
din paleta de culori a ferestrei figură;
- truecolor, conform căreia suprafeţele sunt colorate prin specificarea explicită a culorilor,
spre exemplu prin triplete RGB.
Indiferent de metoda folosită, afişarea culorilor depinde de modul de colorare (“shading”)
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 foloseşte nuanţe bazate pe roşu, portocaliu şi galben;
• bone, o paletă cu nuanţe de albastru şi gri;
• colorcube, care determină afişarea 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 afişează nuanţe de culori de la negru spre arămiu;
• flag afişează zone colorate cu roşu, alb, albastru şi negru;
• gray foloseşte nuanţe de gri;
• hot variază lent de la negru la alb prin nuanţe de roşu, portocaliu şi galben;
• hsv (“hue-saturation-value”) începe cu roşu, trece prin galben, verde, albastru şi mov,
revenindu-se la roşu;
• jet trece de la albastru la roşu 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: roşu, 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 foloseşte decât 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 număr impus
de culori, se foloseşte sintaxa
colormap(model(n))
în care model este numele modelului, iar n numărul de culori dorite.
Dacă nu se specifică un număr de culori, noua paletă va avea dimensiunea paletei de culori
curente.
Paleta implicită de culori este jet(64).
31
Pentru afişarea paletei de culori curente în fereastra figură, într-un dreptunghi lângă
sistemul de axe, se foloseşte 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ă.
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, afişându-se şi liniile din reţea colorate
cu negru; este modul de colorare implicit;
shading interp – stabileşte culoarea de reprezentare a fiecărui segment şi zonă elementară
a suprafeţei ca o nuanţă rezultată din interpolarea liniară a culorilor capetelor liniei sau colţurilor
suprafeţei.
32