Documente Academic
Documente Profesional
Documente Cultură
Curs6 Matlab
Curs6 Matlab
Instruciuni
1.Pregtirea datelor
x = 0:0.2:12;
y1 = bessel(1,x);
y2 = bessel(2,x);
y3 = bessel(3,x);
2. Selectarea ferestrei
grafice i pozionarea
graficului n fereastr
3. Apelarea unei
funcii elementare de
plotare
4. Selectarea
caracteristicilor liniei i
markerului.
5. Setarea limitelor axelor,
gridare (caroiere)
6. Completarea graficului
cu etichete pe axe,
legend, text
figure(1)
subplot(2,2,1)
7. Export grafice
h = plot(x,y1,x,y2,x,y3);
set(h,'LineWidth',2,{'LineStyle'},{'--';':';'-.'})
set(h,{'Color'},{'r';'g';'b'})
axis([0 12 -0.5 1])
grid on
xlabel('Time')
ylabel('Amplitude')
legend(h,'First','Second','Third')
title('Bessel Functions')
[y,ix] = min(y1);
text(x(ix),y,'First
Min
\rightarrow',...
'HorizontalAlignment','right')
Dac se specific doi vectori ca argumente, plot(x,y) produce graficul lui y versus
x.
Exemplu:
t = 0:pi/100:2*pi;
y = sin(t);
plot(t,y)
grid on
Se pot realiza grafice multiple utiliznd un singur apel al funciei plot. MATLAB-ul
realizeaz automat o reprezentare cu culori diferite pentru a permite distingerea graficelor.
Exemplu:
y2 = sin(t-0.25);
y3 = sin(t-0.5);
plot(t,y,t,y2,t,y3)
Funciile de plotare accept deci argumente de tip caracter care specific stilul liniei,
simbolurile utilizate pentru marker, culoarea etc. Forma general este:
plot(x,y,'linestyle_marker_color')
Exemplu:
x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
plot(x,y,'--rs','LineWidth',2,...
'MarkerEdgeColor','k',...
'MarkerFaceColor','g',...
'MarkerSize',10)
Comand
Descriere
title
Adaug un titlu
Adaug o etichet pe axa x
Adaug o etichet pe axa y
Adaug o etichet pe axa z
Adaug o legend
Afieaz un text la o locaie specificat
Plaseaz textul pe grafic utiliznd mouse-ul
xlabel
ylabel
zlabel
legend
Text
Gtext
Etichetarea axelor
Se pot aduga etichete pe axe cu comenzile xlabel, ylabel, zlabel.
Exemplu:
xlabel('t = 0 to 2\pi','FontSize',16)
ylabel('sin(t)','FontSize',16)
title('\it{Value of the Sine from Zero to Two
Pi}','FontSize',16)
MATLAB-ul interpreteaz caracterele care urmeaz dup backslash "\" ca i comenzi TeX.
Aceste comenzi permit reprezentarea unor simboluri cum ar fi literele greceti sau sgeile.
Adugarea textelor
Prin utilizarea funciei text se poate plasa un text (ir de caractere) oriunde pe grafic.
Exemplu:
text(3*pi/4,sin(3*pi/4),...
'\leftarrowsin(t) = .707',...
'FontSize',16)
text(pi,sin(pi),'\leftarrowsin(t) = 0',...
'FontSize',16)
text(5*pi/4,sin(5*pi/4),'sin(t)=-.707\rightarrow',...
'HorizontalAlignment','right',...
'FontSize',16)
fiecare element dintr-o coloan desenat la alt locaie. Toate elementele dintr-o linie sunt
reprezentate grupat la aceeai locaie pe axa x.
Exemplu:
Y = [5
8
9
5
4
bar(Y)
2
7
8
5
3
1
3
6
5
2];
Grupele de coloane
reprezint linii din
Y.
Ultimul grup de
bare reprezint
ultima linie din Y
22.1
70.3
82.9
54.9
36.3
51.6;
82.4;
90.8;
59.1;
47.0];
Se pot calcula vnzrile pentru fiecare produs n cei 5 ani cu ajutorul funciei:
x = sum(X);
Dac utilizm argumentul de intrare explode putem reprezenta ntr-un mod explodat care
dintre produse a avut o contribuie mai mare la vnzri (de exemplu). Programul are urmtoarea
form:
explode = zeros(size(x));
[c,offset] = max(x);
explode(offset) = 1;
h = pie(x,explode); colormap summer
10
set(h,'LineWidth',2)
title('Twenty Contours of the peaks Function')
Animaie
Se pot crea secvene animate n MATLAB pe dou ci:
Salvarea unui numr de imagini i rularea lor ca pe un film.
tergerea continu i redesenarea unor obiecte pe ecran, fcnd schimbri n mod
incremental la fiecare redesenare.
Filme
Se parcurg trei etape:
Se folosete moviein pentru iniializarea memoriei pentru o matrice suficient de mare.
Se utilizeaz getframe pentru a genera fiecare cadru de film, care este returnat ca un
vector coloan cu care se poate construi o matrice de tip film.
Se folosete movie pentru rularea filmului de un numr specificat de ori cu o vitez
specificat.
tergere i redesenare
Pot fi create diferite efecte prin selectarea unor moduri de tergere. Pentru crearea unei animaii
sunt utile trei moduri de tergere:
none - MATLAB nu terge obiectele.
background - MATLAB terge obiectul i l redeseneaz n background. Acest mod terge
obiectul i tot ce este sub el (linii de grid etc.).
xor Acest mod terge doar obiectul i este cel mai folosit la animaie.
Pentru vizualizarea unor efecte de animaie i construirea unor exemple proprii este indicat
utilizarea facilitii demo a MATLAB-ului.
8.1.3. Plotri tridimensionale (3 D)
Paii tipici care trebuie parcuri pentru trasarea unor grafice tridimensionale sunt prezentai n
continuare.
Etapa
Instruciuni
1.Pregtirea datelor
Z = peaks(20);
2. Selectarea ferestrei
grafice i poziionarea
graficului n fereastr
figure(1)
subplot(2,1,2)
11
h = surf(Z);
light('Position',[-2,2,20])
lighting phong
material([0.4,0.6,0.5,30])
set(h,'FaceColor',[0.7 0.7 0],...
'BackFaceLighting','lit')
view([30,25])
set(gca,'CameraViewAngleMode','Manual')
colormap hot
shading interp
set(h,'EdgeColor','k')
set(gca,'PlotBoxAspectRatio',...
[2.5 2.5 1])
zlabel('Function Value')
title('Peaks')
9. Operaiuni de tiprire
set(gcf,'PaperPositionMode','auto')
print -dps2
Utilizare
mesh, surf
meshc, surfc
meshz
pcolor
surfl
surface
Funcie de nivel sczut pentru crearea unor obiecte tip grafice suprafa
12
Matricea R conine distanele de la centru (originea), iar eps este adugat pentru a evita
mprirea la zero.
Acum se poate forma funcia sinc i se poate realiza plotarea cu mesh.
Z = sin(R)./R;
mesh(Z)
Se poate realiza o mbuntire a reprezentrii grafice n condiiile utilizrii acelorai date, prin
folosirea unor faciliti de iluminare i ajustare a imaginii (daspect, axis, camlight,
view).
Exemplu:
13
surf(X,Y,Z,'FaceColor','interp','EdgeColor','none',...
'FaceLighting','phong')
daspect([5 5 1]);axis tight;view(-50,30);camlight left
Harta culorilor
Fiecare fereastr grafic MATLAB are asociat o hart a culorilor (colormap), care este o
matrice cu trei coloane a cror lungime este egal cu numrul de culori definite. Fiecare linie a
matricii definete o culoare particular prin specificarea a trei valori n domeniul 0 1. Aceste
valori definesc componentele RGB (red, green, blue) (adic intensitile componentelor video rou,
verde i albastru). Funcia colormap fr argumente returneaz harta figurii curente.
Funcia colorbar afieaz n fereastra grafic harta curent a culorilor, sub forma unei bare
aezate lng grafic. Exemplu:
[x,y] = meshgrid([-2:.2:2]);Z = x.*exp(-x.^2-y.^2);
surf(x,y,Z,gradient(Z));colorbar
14