Laborator 2-Reprezentari grafice in Matlab Daniel N.Pop Universitatea Lucian Blaga Sibiu Facultatea de Inginerie-Departament Calculatoare si inginerie Electrica 1 Grafica bidimensionala in Matlab Sistemul Matlab dispune de o larga gama de instructiuni sau proceduri (functii)pentru reprezentarea grafica in plan. 1.1 Instructiunea plot Formele acceptate: plot(y) plot(x1,y1,...,xn,yn) plot(x1,y1,linespec,...,xn,yn,linespec) plot(..., PropertyName,PropertyValue,...) plot(axes_handle,...) h = plot(...) In cazul primei forme daca Y este un vector de lungime m se reprezinta grafic linia poligonala ce trece prin punctele de coordonate (i, y i ), i = 1, m Example 1 Sa se scrie un program *.m care reprezinta grafic linia poligonala ce uneste punctele de coordonate (i,y i ), i = 1,...m unde y reprezinta elementele diagonalei unei matrici magice de ordin m y=diag(magic(m)); plot(y) Apoi salvam si selectam Run iar in linia de comanada dam 1
>>m=5 Example 2 Sa se scrie un program *.m care reprezinta functia complexa z = x cos(2πx) + i sin(2πx), x [0, 1] h=1/m; x=0:h:1; z=x.*cos(2*pi*x)+1i*x.^2.*sin(2*pi*x); plot(z) >>m=200 Example 3 Sa se reprezinte pe acelasi grafic functiile sin(2πx) si cos(2πx) pe intervalul [0,1] prima functie prin linie dreapta, iar a doua linie intrerupta, iar punctele de pe cele doua curbe care au abscisle multiplii de 1/6 sa fie marcate prin cerculete, respectiv stelute. h=1/m; x=0:h:1; y=2*pi*x; y=[sin(y) cos(y) ]; p=0:1/6:1; pp=2*pi*p; plot(x,y,p,sin(pp), o,p,cos(pp), * ) grid on >>m=200 2
1.2 Instructiunile polar si ezpolar Instructiunea polar este similara cu plot dar reprezentarea curbei se face in coordonate polare, iar instructiunea ezpolar are sintaxa ezpolar( f,[a,b]) Al doilea argument este optional valoarea implicita este [0,2π] Tastam in linia de comanda: >>t=0:0.1:pi; >> r=sin(3*t).*exp(-0.3*t); >> polar(t,r, k- ) Un simplu exemplu de utilizare a instrutiunii ezpolar este: >>ezpolar( 1+cos(theta) ) 1.3 Instructiunile bar, barh, subplot Forme utilizate: bar(y) bar(x,y) bar(...,width) bar(..., style ) bar(..., bar_color ) bar(..., PropertyName,PropertyValue,...) bar(axes_handle,...) h = bar(...) Diferenta dintre bar si barh este ca reprezentarea grafica se face cu bare orizontale Forme utilizate : barh(y) barh(x,y) barh(...,width) barh(..., style ) barh(..., bar_color ) barh(..., PropertyName,PropertyValue,...) barh(axes_handle,...) h = barh(...) Sistemul Matlab are posibilitatea de a impartii o fereastra pentru reprezentarea grafica in m n ferestre cu ajutorul instructiunii 3
subplot(m,n,p) Example 4 Fiind data o matrice magica de ordin m sa se reprezinte in patru ferestre de tipul 2 2 prin bare verticale grupate si prin bare verticale stivuite, valorile primelor doua coloane ale matricei. respectiv prin bare orizontale grupate si prin bare orizontale stivuitevalorile ultimelor doua coloane. Reprezentarea grafica se face in 3D. A=magic(m); subplot (221),bar3(A(:,[1 2]), detached ) title ( Primele doua coloane grupate ) subplot (222),bar3(A(:,[1 2]), stacked ) title ( Primele doua coloane stivuite ) subplot(223),bar3h(a(:,[m-2 m]), stacked ) title( Ultimele doua coloane grupate ) subplot(224),bar3h(a(:,[m-2 m]), detached ) title( Ultimele doua coloane stivuite ) colormap summer >>m=4 1.4 Instructiunea fill Este folosita pentru umbrirea interiorului unui poligon specificat prin varfurile sale: fill (x,y,c) Example 5 Sa se scrie un program care sa umbreasca aria cuprinsa intre axa absciselor, curba lui Gauss si dreptele perpendiculare pe axa absciselor in punctele a si b (-3<a<b<3). Curba lui Gauss este data de: f(x) = 1 2π exp( x2 2 ), x R 4
a=input( a= ); b=input( b= ); xmin=-3;xmax=3; fplot( 1/sqrt(2*pi)*exp(-x^2/2),[xmin,xmax]) x=a; y=0; t=a:0.01:b; x=[x,t];y=[y,1/sqrt(2*pi)*exp(-t.^2/2)]; x=[x,b];y=[y,0]; fill(x,y, c ) >>a=-2 >>b=2 1.5 Reprezentarea prin pie Deschidem un fisier...m Introducem codul x = [1 3 0.5 2.5 2]; explode = [0 1 0 0 0]; pie(x,explode) colormap jet Salvam si lansam in executie 5