Documente Academic
Documente Profesional
Documente Cultură
Laborator 4
MATLAB. Program pentru calcule tehnice
Utilizarea facilitatilor grafice
Programul MATLAB are facilitati extinse pentru afisarea vectorilor si matricilor sub forma
de reprezentari grafice, precum si notarea si tiparirea acestor grafice. Aceasta lectie descrie unele
dintre cele mai importante functii grafice si ofera exemple ale unor aplicatii tipice.
Exemplul 4.1. Sa se reprezinte grafic în coordonate carteziene punctele P(3,4) si R(2.5, 4). Se
scrie în CW:
>>x1=3; y1=4;
>>plot(x1,y1, ‘*’)
>>x2=2.5; y2=4;
>>plot (x2,y2, ‘o’)
Rezultatul afisat se trece pe foaia cu date experimentale.
Marcarea punctului se poate face cu diferite simboluri ca ‘*’, ‘x’, ‘o’. Toate simbolurile
posibile a fi utilizate se pot observa daca se studiaza din help functia plot. La fiecare comanda plot
se reprezinta noul punct, daca se doreste ca sa ramâna reprezentarea anterioara când se face o noua
reprezentare se va utiliza comanda hold on. Se pot vedea mai multe grafice pe un singur sistem de
coordonate daca se utilizeaza comanda plot multipla de exemplu:
>>plot(x1,y1, ‘*’, x2,y2, ‘o’)
Programul MATLAB va colora diferit fiecare reprezentare grafica. Programul MATLAB
ajusteaza automat scalarea pe cele 2 axe de coordonate pentru a se potrivi cu coordonatele punctului
care se reprezinta grafic. Se poate de asemenea ca axele sa fie specificate manual prin anumite
setari cu comanda:
axis([ xmin xmax ymin ymax])
Evident ca trebuie ca valorile minime sa fie mai mici ca valorile maxime pentru a nu se afisa
semnalul de eroare. Se poate de asemenea sa se schimbe aspectul graficului în fereastra de
reprezentare grafica. În exemplul urmator se va utiliza comanda axis square pentru a se observa un
cerc, fara aceasta comanda cercul va arata ca o elipsa.
Înainte de comanda axis square, pe ecran era un dreptunghi. Daca se doreste sa se revina la
axele normale se va apela la comanda axis normal. Fiecare grafic poate fi etichetat pe cele 2 axe cu
anumite denumiri si i se poate da un titlu cu ajutorul functiilor xlabel, ylabel si title.
Functia plot are diferite forme, depinzând de argumentele de intrare. Daca y este un vector,
plot(y) produce un grafic liniar de elemente din y în functie de indicii elementelor din y. Daca se
specifica 2 vectori ca argumente, plot(x,y) va rezulta un grafic al vectorului y în functie x.
În exemplul de mai sus se genereaza un vector x cu valori între 0 si 2π, se calculeaza sinusul
acestor valori si apoi se reprezinta grafic rezultatul. În continuare sa vor nota cele doua axe si apoi
se adauga un titlu, respectivului grafic. Secventa de caractere “\pi” creeaza simbolul π.
Se observa ce modificari apar pe grafic. Rezulta un grafic care reprezinta, punct cu punct,
sinusul functiei x în functie de variabila x.
Perechile multiple x-y de argumente creeaza grafice printr-o singura apelare a functiei
“plot”. În mod automat, programul MATLAB alege o culoare dintr-o lista predefinita de culori (dar
care poate fi setata de catre utilizator) pentru a permite diferentierea dintre fiecare set de date. În
urmatorul exemplu de program se deseneaza (punct cu punct) 3 functii ale lui x, fiecare curba cu o
alta culoare.
2
MATERIALE PENTRU ELECTRONICA Laborator 4
Se observa graficul functiei sinus pornind din originea axelor, apoi aceiasi functie care
porneste din punctul (0;-0.25), respectiv din punctul (0;-0.5).
Se poate specifica culoarea, tipul liniei si tipul de marker (de exemplu semnul plus sau
cercuri) atunci când se deseneaza un grafic folosind comanda plot. Comanda plot are urmatoarea
sintaxa:
plot(x,y,’color_style_marker’);
Color_style_marker este un sir de caractere continând de la 1 la 4 caractere care reprezinta
o culoare, un tip de linie si un tip de marker:
• Sirurile pentru culoare sunt : c (albastru deschis-bleu ), m (visniu), y (galben), r (rosu), g
(verde), b (albastru), w (alb), k (negru)
• Sirurile pentru tipurile liniei sunt : ”-“ pentru linie continua, “--“ pentru linie întrerupta, “:”
pentru linie punctata, “-.” pentru linie-punct si “none” pentru nici o linie.
• Tipul markerilor poate fi : ”+”, “0”, “*” si “x”, iar tipul umplerii markerilor este “s” pentru
patrat, “d” pentru romb, “^” pentru triunghi sus, “v” pentru triunghi jos, “>” pentru triunghi dreapta,
“<” pentru triunghi stânga, “p” pentru pentagon, “h” pentru hexagon si “none” pentru nici un fel de
umplere a markerului.
Se poate edita culoarea, tipul liniei si markerii în mod interactiv. Se poate studia capitolul de
help “Editarea desenelor” pentru mai multe informatii. Daca se specifica tipul markerului, dar nu si
tipul liniei, programull MATLAB deseneaza doar markerul. De exemplu plot(x,y,’ks’) traseaza
patrate de culoare neagra pentru fiecare punct de date, dar nu conecteaza marker-ii cu o linie.
Linia de comanda plot(x,y,’r :+’) deseneaza, punct cu punct, o linie rosie punctata si
plaseaza markeri de tipul ‘+’ pentru fiecare punct de date. Se poate sa se foloseasca mai putine
puncte de date pentru a desena markerii decât pentru a desena liniile. Urmatorul exemplu deseneaza
datele de 2 ori, folosind un numar diferit de puncte pentru linia punctata si markeri.
3
Utilizarea facilitatilor grafice
4.3. Alte functii si comenzi utilizate pentru reprezentari grafice
Adaugarea de noi reprezentari pe un grafic deja existent
Comanda hold permite sa se adauge desene la un grafic deja existent. Atunci când se scrie
in CW: hold on programul MATLAB nu înlocuieste graficul deja existent la apelarea unei noi
comenzi de desenare; el adauga noile date la graficul curent , realizând o noua scalare a axelor daca
este necesar.
Liniile de program de mai sus creeaza mai întâi un contur al vârfurilor functiei, apoi
suprapune un desen pseudo-colorat al aceleiasi functii. Comanda hold on combina conturul cu
desenul pseudo-colorat într-o singura figura.
Exemplu de calcul.4.11.
>>m=1:10;
>>x=m; y1=2*m+3, y2=4*m+3;
>> subplot(2,1,1)
>>plot (x,y1)
>> subplot(2,1,2)
>>plot (x,y2)
Rezultatul afisat se trece pe foaia cu date experimentale.
4
MATERIALE PENTRU ELECTRONICA Laborator 4
Controlul axelor
Comanda axis are optiuni pentru setarea scalarii, pentru orientare si raportul si aspectul
desenelor. De asemenea, se pot fixa aceste optiuni în mod interactiv. În subcapitolul “Editarea
desenelor” se vor prezenta mai multe informatii.
Exercitiul de mai sus deseneaza o elicoida. Se recomanda sa se rezolve exercitiul de mai sus
fara a apela la bucla for.
Avantajul major al programului MATLAB se refera la reprezentarea în 3 dimensiuni a
suprafetelor. O functie de doua variabile z=f(x,y) reprezinta în 3 dimensiuni o suprafata. De
exemplu z=ax+by+c este un plan care intersecteaza axa z în punctul c. Programul MATLAB
utilizeaza 2 functii pentru reprezentarea suprafetelor si anume functia meshgrid si functia contour.
În cazul ambelor functii se creaza mai întâi o structura 2D de tip suprafata prin utilizarea unor valori
6
MATERIALE PENTRU ELECTRONICA Laborator 4
adecvate pentru x si y. Realizarea unei suprafete 2d se face cu functia meshgrid. Aceasta functie
are sintaxa :
[X Y]= meshgrid(x,y)
Se presupune ca x este un vector cu 4 elemente iar y este un vector cu 5 elemente iar prin
comanda de mai sus se creaza o matrice de valori pentru variabila x formata din 5 rânduri care se
obtin din repetarea de 5 ori a vectorului x si o matrice formata din 4 coloane care se obtin prin
repetarea de 4 ori a vectorului y.
sin c
sin x2 y 2
x2 y 2
si desenata pe domeniul de variatie a lui x si y -8 ...8. Variabila eps este cel mai mic numar utilizat
de program respectiv 2-52, care se introduce în anumite expresii pentru a se evita valoarea 0 si a
înlatura împartirea la 0. Daca se doreste un contur se va utiliza în locul ultimei linii comanda:
cotour(X,Y,Z,50) % Ultimul argument specifica numarul liniilor de contur care trebuie
desenate
Daca se doreste desenarea numai a unui contur situat la un anumit nivel de exemplu la
înaltimea Zo fata de planul x-y se poate utiliza o optiune a functiei contour de tipul :
contour (X,Y,Z,[Zo Zo])
Daca se doreste desenarea simultana a planurilor mesh si a conturului pentru a putea observa
mei bine o anumita suprafata se va utiliza comanda meshc. Aceasta comanda este similara cu mesh
cu deosebirea ca se traseaza si conturul în plus fata de planul desenat cu mesh.
Programul MATLAB defineste o suprafata cu ajutorul punctelor de coordonate z, care se
afla deasupra unei grile situate in planul xy, prin fosirea liniilor drepte pentru a uni punctele
adiacente. Functiile grafica mesh (plasa) si surf (suprafata) afiseaza suprafetele în trei dimensiuni;
mesh produce suprafete în forma de plasa care coloreaza numai liniile ce conecteaza punctele
definite; surf afiseaza si liniile specificate mai sus si fetele suprafetei în culori.
7
Utilizarea facilitatilor grafice
>>polar(th,ro)
Rezultatul afisat se trece pe foaia cu date experimentale (Aproximativ).
9
Utilizarea facilitatilor grafice
4.7. Editarea desenelor în vederea modificarii sau complectarii
Programul MATLAB formateaza un grafic pentru a oferi claritate, fixeaza scala axelor,
include marcarea pentru axe si foloseste diferite culori si tipuri de linie pentru a distinge punctele
dintr-un grafic. În cazul crearii graficelor pentru prezentari, este posibil sa se doreasca schimbarea
acestor optiuni de formatare sau adaugarea etichetelor, titlurilor, legendelor sau altor notatii pentru
explicarea datelor afisate.
MATLAB are 2 moduri de editare a desenelor care au fost create:
• folosind mouse-ul pentru a selecta si edita obiectele interactiv,
• folosind functiile MATLAB în comanda-linie sau într-un fisier M
Editarea interactiva a desenelor
Daca se activeaza modul de editare al desenelor în fereastra de figuri a programului se pot
edita obiectele din grafic prin tehnica “puncteaza si apoi clickeaza”. În acest mod se selecteaza
obiectul sau obiectele care se doresc sa fie editate prin dublu-click pe ele. Aceasta operatie va
deschide Editorul de Proprietati care ofera accesul la proprietatile obiectului si care îi controleaza
aparitia si parametrii de afisare. Se pot obtine mai multe informatii legate de editarea interactiva din
manualele MATLAB sau din help.
Utilizarea functiilor pentru editarea graficelor
11