Documente Academic
Documente Profesional
Documente Cultură
2 – Partea teoretică 21
Comanda plot generează un grafic în coordonate liniare. Se apelează cu una din cele 3
sintaxe:
plot(x) ; plot(x, y); plot(x1, y1, x2, y2, ..., xn, yn)
Dacă x e un vector (linie sau coloană), comanda plot (x) va genera un grafic liniar
al elementelor vectorului x ca funcţie de indexul acestora, x=x(i), unde i=1, 2, ..., n
este nr. de ordine al elementului x. MATLABul va unii punctele vectorului printr-
o linie dreaptă.
22 Calculul grafic. Reprezentări şi funcţii grafice - 2
Dacă x este o matrice, fiecare coloana va fi trasată separat pe acelaşi grafic. Dacă x
şi y sunt matrice de aceeaşi dimensiune, atunci comanda plot(x, y) va trasa grafic
coloanele lui y în funcţie de coloanele lui x.
Dacă x este un vector, iar y o matrice, atunci coloanele lui y sunt trasate funcţie de
vectorul x;
Dacă x e un număr complex, atunci plot (x) este echivalent cu plot(real(x),imag(x));
Fig. 2.1. Graficul vectorului linie x trasat prin fiecare punct cu linie dreaptă.
plot(a1,b1,’*r’, a2,b2,’+b’)
va trasa grafic prima caracteristică (curba) a1 funcţie de b1 cu culoare roşie (r de la red) utilizând
simbolul star (*), iar a doua curbă (a2, b2) va fi reprezentată cu culoarea albastru (blue) utilizând
simbolul plus (+).
Trebuie reţinut faptul că, deoarece logaritmul numerelor negative şi zero nu există,
datele care urmează sa fie reprezentate grafic pe o axa logaritmică sau semilogaritmică, nu trebuie
să includă valoarea zero sau valori negative.
MATLAB-ul conţine o familie (un set) de funcţii pentru generarea graficelor. Cele mai
importante dintre ele sunt prezentate în acest paragraf.
Reprezentarea grafică cu bare se face cu funcţia bar şi se apelează cu una dintre
sintaxele: bar(y) – care trasează un vector de bare cu elementele vectorului y, sau bar(x, y ) – care
trasează un grafic de bare cu elementele vectorului y la locaţiile specificate de vectorul x, adică
y=y(x). Această funcţie creează un grafic de bare vertical, în care valorile vectorului y sunt
utilizate pt. a determina înălţimea barei, iar valorile vectorului x sunt folosite pt. a eticheta fiecare
bară.
Reprezentarea grafică a semnalelor discrete se face cu funcţia stem, sub forma unor linii
terminate cu cerculeţ la extremitatea opusă axei. Se apelează cu sintaxa stem(y) sau stem(x, y).
Graficele în trepte sunt utilizate la reprezentarea diagramelor sistemelor numerice de
eşantionare şi prelucrare a datelor. Reprezentarea grafică în trepte se face cu funcţia stairs, care
se apelează cu una din sintaxele stairs(y) sau stairs(x, y).
Calculul şi reprezentarea grafică a histogramelor se face cu funcţia hist, şi se apelează
cu una dintre sintaxele: hist(x) – calculează şi trasează histograma cu 10 segmente a datelor
vectorului x, hist(x, n) – calculează şi trasează histograma cu n segmente a datelor vectorului x şi
hist(x, y) – calculează şi trasează grafic histograma datelor vectorului x la abscisele specificate de
valorile vectorului y.
Funcţia compass reprezintă grafic vectori cu centrul de coordonate în originea sistemului
de coordonate. Se apelează cu una din sintaxele: compass(z) sau compass(x, y), unde z este
numărul complex:
z = x + iy, iar (x) şi (y) sunt numere reale (proiecţia vectorului pe abscisă şi ordonată).
Funcţia fplot generează un grafic cu anumite restricţii între limite specificate. Se
apelează cu una dintre sintaxele următoare:
fplot(’fun’, limite), fplot(’fun’, limite, n), fplot(’fun’, limite, n, unghi).
„Fun” este numele fişierului funcţie (şir de caractere), „limite” reprezintă limitele axei
x pentru care se realizează reprezentarea grafică, n reprezintă numărul de eşantioane ale funcţiei,
iar „unghi” este ceea mai mare modificare a unghiului dintre segmentele adiacente ale graficului.
Funcţiile pentru reprezentările grafice cu axe multiple diferă faţă de celelalte funcţii
24 Calculul grafic. Reprezentări şi funcţii grafice - 2
grafice prin modalităţile de scalare a axelor.
Funcţia MATLAB
plotyy
generează un grafic cu 2 axe y (pe ambele părţi), şi se apelează cu una din sintaxele:
plotyy(x1, y1, x2, y2) sau plotyy(x1, y1, x2, y2, ’function1’, ’function2’)
în care şirul de caractere function, poate fi înlocuit cu orice funcţie MATLAB ce acceptă sintaxa
h = function(x, y)
cum ar fi funcţiile, care generează reprezentări grafice: plot, semilogx, semilogy, loglog sau stem.
Comanda plotyy(x1, y1, x2, y2) reprezintă grafic vectorul (matricea) x1 funcţie de y1, cu
axa y inscripţionatǎ pe partea stângă, şi x2 funcţie de y2 cu axa y pe partea dreaptă.
Comanda plotyy(x1, y1, x2, y2, ’function1’, ’function2’) utilizează funcţia function1(x1, y1)
pentru a reprezenta grafic setul de date pentru axa din partea stângă a ferestrei şi funcţia
function2(x2, y2) pentru a trasa grafic setul de date pentru axele din partea dreaptă.
Cu funcţia plotyy se poate reprezenta pe acelaşi grafic, pentru acelaşi set de date, o
scalare logaritmică pentru comparaţie, de exemplu, cu una liniară.
De asemenea, se pot genera grafice cu axe multiple, cu două axe x şi cu două axe y (axe
duble), independente. Cu această facilitate se pot reprezenta pe acelaşi grafic mai multe seturi de
date, având domenii diferite, utilizând o scalare proprie pentru fiecare axă.
Utilizând comenzile XaxisLocation şi YaxisLocation, se pot crea grafice scalate diferit
pentru fiecare set de date, utilizând partea dreaptă şi cea de sus a graficului, pentru o pereche de
axe x-y şi partea stângă şi cea de jos, pentru cealaltă pereche de axe x-y.
Funcţia MATLAB plot3 este o funcţie analoagă funcţiei plot, cu diferenţa că reprezintă
grafic linii şi puncte într-un spaţiu tridimensional (3D).
Dacă x, y şi z sunt trei vectori de aceeaşi lungime, funcţia plot3(x, y, z) generează o linie
reprezentată tridimensional prin punctele ale căror coordonate sunt elementele celor trei vectori.
Dacă X, Y şi Z sunt trei matrice coloană de aceeaşi dimensiune, atunci funcţia plot3(X,
Y, Z) va genera un grafic de linii tridimensionale obţinute din cele trei coloane ale matricei
respective.
Funcţia mesh reprezintă grafic suprafeţe 3D sub forma unor reţele, funcţia meshc
reprezintă grafic combinaţia suprafaţa 3D / linii de contur, reprezentate sub suprafaţa respectivă
ca proiecţii în planul bazei, iar funcţia meshz reprezintă grafic suprafeţe tridimensionale cu plan
de referinţa la cota zero.
Reprezentarea grafică a suprafeţelor se realizează utilizând comanda surf, în timp ce
funcţia surfc generează un grafic tridimensional cu liniile de nivel proiectate pe planul bazei.
Aceste reprezentări grafice sunt utile, în special, pentru vizualizarea matricelor, care sunt prea
mari pentru a putea fi reprezentate sub formă numerică, şi pentru funcţiile grafice de două
variabile.
Graficele generate cu funcţia surf afişează în acelaşi timp liniile conectate şi conturul
suprafeţelor colorate. Se apelează cu una din sintaxele următoare:
Exemplul 2.1: Să se reprezinte pe acelaşi grafic tensiunea - u(t) şi curentul - i(t) unui
circuit RL, pe intervalul de timp t=(0-20) ms, ştiind că u(t)=10cos(377t) şi i(t)=5cos(377t+60 0).
26 Calculul grafic. Reprezentări şi funcţii grafice - 2
Soluţie: Se scrie un fişier MATLAB-script cu următoarele secvenţe de comenzi:
Fig. 2.2. Reprezentarea grafică a tensiunii şi curentului unui circuit RL în regim staţionar sinusoidal.
Exemplul 2.2: Se dă fişierul de date din tabelul 2.1, care reprezintă frecvenţa funcţie de
factorul de amplificare (gain) a unui amplificator operaţional. Se cere să se reprezinte grafic în
coordonate semilogaritmice, frecvenţa versus factorul de amplificare (scală logaritmică pentru
frecvenţă şi liniară pentru factorul de amplificare). Să se tipărească titlul graficului şi mărimile
celor două axe reprezentate.
Tabelul 2.1: Frecvenţa funcţie de factorul de amplificare (gain) pentru un amplificator operaţional
80 30 8000 34
100 32 10 000 32
120 34 12 000 30
f=[20 40 80 100 120 2000 5000 8000 10000 12000 15000 20000];
g=[5 10 30 32 34 34 34 34 32 30 10 5]; semilogx(f, g)
title(’Digrama Bode pt. un amplificator’), xlabel(’Frecventa (Hz)’), ylabel(’Gain (dB)’)
Fig. 2.3. Diagrama frecvenţei funcţie de factorul de amplificare (gain) pentru un amplificator.
Exemplul 2.3: Să se scrie un fişier function care să reprezinte grafic funcţia y=sin(x) / x
între limitele [-20, 20] cu n=50 de eşantioane, utilizând funcţia MATLABului de reprezentare
grafică fplot.
Exemplul 2.4: Să se reprezinte pe acelaşi grafic, tipărind axa y pe ambele părţi, două
funcţii matematice (exp şi sin) utilizând comanda plot ca funcţie grafică.
Fig. 2.5. Reprezentarea grafică obţinută cu funcţia plotyy pentru etichetarea ambelor axe y.
2.3 – Desfăşurarea lucrării şi modul de lucru 29
x = linspace(0, 2*pi, 50); %funcţia linspace generează un vector linie cu 50 de puncte intre (0 - 2π)
y = sin(x); z = cos(x), w = tan(x);
subplot(2, 2, 1), plot(x, y); %generează o figura cu patru ferestre şi crează prima fereastră cu funcţia
%sin(x)
subplot(2, 2, 2), plot(x, z); % creaza a doua fereastra pentru funcţia cos(x) pe prima linie şi a doua
%coloana
subplot(2, 2, 3), plot(x, w) % creaza a treia fereastra pentru funcţia tan(x) pe a doua linie şi prima
%coloana
Fig. 2.7. Împărţirea unui grafic în patru ferestre utilizând funcţia subplot.
T.A.