Documente Academic
Documente Profesional
Documente Cultură
Scopul lucrării
Aparatura necesară
Consideraţii teoretice
x=imread('poza.jpg');
image(x);
grid on;
Grafica 2D
Functia Proprietatea
ezplot('x.^2/4+y.^2/5=15',[-15 15]);
grid;
Fig. 1
Functia plot, este una din cele mai uzuale functii de plotare intr-un sistem 2D.
Aceasta functie poate sa reprezinte grafic un rezultat in functie de cele 2 coordonate,
X,Y.
Fig. 2
Fig. 3
In acest moment pe axa x avem exact intervalul pe care l-am stabilit initial. Se
observa ca, curbele grafice sunt identice doar ca in reprezentarea a doua indeplineste
conditiile initiale impuse.
Daca adaugam comenzilor anterioare si comanda de caroiaj vom obtine un grafic
usor de citit si interpretat.
grid on; %caroiaj
Fig. 4
De asemenea un grafic este usor interpretabil daca are un titlu, are specificatiile
celor 2 axe, o legenda a graficelor in cazul in care in aceasi fereastra se suprapun mai
multe astfel de grafice, punctele de conjunctie ale functiei sunt vizibile, daca graficele au
culori diferite sau alte elemente care pot usura vizualizarea unui asemenea grafic.
Pentru toate aceste detali MatLab-ul ofera o serie de proprietati ale acestor functii
de reprezentare grafica.
Functia Proprietatea
albastru blue b
Verde Green g
Rosu Red r
Galben Yellow y
Cyan Cyan c
Purpuriu Magenta m
Negru Black k
Alb White w
Tabel 3
Pentru tipul liniei cu care realizam afisarea grafica putem sa alegem din tabelul
urmator una din liniile recunoscute de functiile de plotare.
. Punct
o Cerculet
x X
+ Plus
* Steluta
s Patrat
d Romb
v Triunghi sus
^ Triunghi jos
< Triunghi stanga
> Triunghi dreapta
p Stea cu 5 varfuri
h Stea cu 6 varfuri
Tabel 5
Folosind fuctiile enumerate mai sus sa reprezentam grafic in acesasi sistem de axe
3 semnale sinusoidale defazate intre ele.
0.4
0.2
Amplitudine [V]
-0.2
-0.4
-0.6
-0.8
-1
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
timp [s]
Fig. 5
Se observa in aceasta figura ca fiecare din cele 3 sinusuri au culorile diferite asa
cum s-au setat, punctele de conjunctie apar clar pe grafic, este pus un titlu, specificatii pe
cele 2 axe si o legenda. In codul scris apare functia hold on care are proprietatea de a
mentine un grafic atunci cand un altul urmeaza sa fie plotat.
Putea scrie cele trei sinusuri in aceasi functie plot deoarece baza de timp ale acestora este
aceasi.
plot(t,x,'-or',t,x1,':db',t,x2,'--Xg');
grid on;
Putem spune ca afisarea unui grafic cu ajutorul functiei plot este simpla indiferent
daca datele de intrare sunt de forma unor vectori sau a unor matrici daca tinem cont de
cateva reguli simple :
plot(x) – daca x este un vector atunci vom genera un grafic in
functie de valoarea lui x si pozitia acestuia in vector
Daca o reprezentam grafic cele 2 functi cu ajutorul plot vom obtine rezultatul din figura
urmatoare:
Fig. 6
Nu pare deloc un grafic concludent, de aceea vom folosi functia plopyy, o functie
cu ajutorul careia vom avea 2 axe y pentru reprezentare.
[axeshandles,line1handle,line2handle]=plotyy(x1,y1,x2,y2);
set(line1handle,'linestyle','-','color','red');
set(line2handle,'linestyle','--','color','g');
grid;
title('y1 is the blue line, y2 is the green dashed line');
axes(axeshandles(1));
ylabel('y1=x.*sin(x)');
axes(axeshandles(2));
ylabel('y2=50*x','color','k');
xlabel('x');
15 1200
10 1100
5 1000
y1=x.*sin(x)
y2=50*x
0 900
-5 800
-10 700
-15 600
-20 500
0 5 10 15 20 25
x
Fig. 7
In analiza circuitelor electronice de multe ori v-a trebui sa reprezentam logaritmic
rezultatele obtinute. Daca ne gandim la un filtru castigul e exprimat de tensiunea de iesire
pe tensiunea de intrare in functie de frecventa.
Fig. 8
Reprezentarea logaritmica are la baza trei functii cu ajutorul carora putem realiza logarea
axelor:
semilogx(x,y): - genereaza un grafic de log10(x) versus axa y liniara
semilogy(x,y): - genereaza un grafic cu axa x liniara versus log10(y)
loglog(x,y): - genereaza un grafic de log10(x) versus log10(y)
x=1:3:33;
y=[66 56 50 3 89 5 78 65 4 25 99];
bar(x,y);
grid on;
Fig. 10
Daca am folosi functia barh am obtine:
Fig. 11
MatLab-ul permite de asemenea afisarea mai multor ferestre de grafice in aceasi figura.
Pentru aceasta vom folosi functia subplot. Aceasta functie se caracterizeaza prin 3 valori
pe care utilizatorul le poate alege dupa dorinta sa.
Fig. 12
Fig. 13
In figura anterioara am pozitionat 9 astfel de sisteme de axe pentru reprezentari
grafice.
Un alt exemplu:
Fig. 14
Grafica 3D
Un alt tip de reprezentare este cel in grafica 3D. Acum vom avea un sistem de 3
axe X,Y,Z, deci v-a fi nevoie de 3 parametri ai unei fucntii. Una din functiile care
reprezinta grafica 3D este functia plot3.
t = 0:pi/50:10*pi;
subplot(221)
plot(t,sin(t),'-r'); %reprezint 2D sinus
grid on;
subplot(223)
plot(t,cos(t),'-g') %reprezint 2D cosinus
subplot(122)
plot3(sin(t),cos(t),t,':pb'); %reprezint 3D
Fig. 15
In figura 15 se observa reprezentarea 3D a funcitiilor sinus si cosinus pe un
interval de timp. La fel ca si functia plot, plot3 permite anumite setari ale graficului
reprezentat, legat de modul de aparitie.
De cele mai multe ori prin grafica 3D se doreste sa se reprezinte grafic suprafete,
mai mult decat simple curbe.In acest scop, Matlab ne-a pus la dispozitie doua functii
speciale: surf si mesh.
Mesh aceasta functie realizeaza un schelet al unei suprafete data de coordonatele
x, y si z.
[X, Y] = meshgrid(-pi:pi/10:pi);
Z = sin (X) .* sin (Y);
mesh (Z);
Fig. 16
[X, Y] = meshgrid(-pi:pi/10:pi);
Z = sin (X) .* sin (Y);
surf (Z);
Fig. 17
Meshgrid realizeaza o transformare a domeniului specificat de vectorii x, y in
doua sau mai multe matrici, in functie de cati parametrii trebuie sa returneze, in acest caz
x, y, care va fi folosita la reprezentarea acestora in grafica 3D.Liniile matricii de iesire
vor fi copii ale vectorului x, iar coloanele matricii y vor fii copii ale vectorului y.
Tema
x 3
f x , pentru x [-5,5]
x2 5
m(t)=4cos(120pi*t)+ 2cos(240pi*t)
c(t)= 10cos(10000pi*t)
s(t)=m(t)*c(t)