You are on page 1of 45

Графика во MATLAB

ƒ Во MATLAB постојат вградени функции за графички


приказ на вектори, матрици и функции.
ƒ Постои можност за 2D и 3D приказ, бар-површина-
пита графикони, контурен или површински приказ,
векторски прикази на брзина, прикази на дискретни
податоци, хистограми, полигони и површини, функции.
ƒ Праваголен или цилиндричен координатен систем.
ƒ Различни варијанти на линии со различни дебелини,
маркери и сл.
ƒ Анимација и др.

1
Основни функции на графиката
ƒ x-y и x-y-z графикони.
ƒ Ознаки на оски, лабели, текст.
ƒ Логаритамски скалирање.
ƒ Приказ во поларен координатен систем.
ƒ Контрола на приказ на екранот.

2
Функција plot
plot(x), plot(x,y), plot(x1,y1,x2,y2,…,xn,yn)

35
>> x=[1 2 4 8 16 32];
>> plot(x) 30

25

Ако аргументот е
20
вектор, приказот
претставува линија 15

добиена со поврзување на
10
вредностите од
елементите каде 5

независно променливата
претставува реден број 0
1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6

на елементот.
3
Функција plot
plot(x), plot(x,y), plot(x1,y1,x2,y2,…,xn,yn)

10
>> q = [1 1 1;
9
2 3 4;
8
3 5 7;
7
4 7 10];
6

>> plot(q) 5

Ако аргументот е матрица, 4


приказот претставува 3
мноштво линии, секоја
2
линија се дефинира според
вредности од соодветната 1
1 1.5 2 2.5 3 3.5 4

колона.
4
Функција plot
plot(x), plot(x,y), plot(x1,y1,x2,y2,…,xn,yn)

35
>> x=[1 2 4 8 16 32];
>> t=0.1:0.1:0.6; 30

%t=[0.1 0.2 0.3... 25

%0.4 0.5 0.6]; 20

>> plot(t,x) 15

Приказот претставува
график на функцијата x(t) 10

каде првиот векотр (x) е 5

вредност на фуnкцијата за
соодветните вредности на 0
0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6

аргументите t.
5
Функција plot
plot(x), plot(x,y), plot(x1,y1,x2,y2,…,xn,yn)

1
>> t=linspace(0.,2*pi,36);
0.8
>> y=sin(t);
0.6

>> plot(t,y); 0.4

0.2

linspace(a,b,n) 0

-0.2
Приказот претставува
-0.4
вредности на функцијата
-0.6
y=x(t) во точки
дефинирани со независно -0.8

промеnливата – -1
0 1 2 3 4 5 6 7

векторот t
6
LINSPACE(X1, X2, N) генерира N точки меѓу X1 and X2.
Функција plot
plot(x), plot(x,y), plot(x1,y1,x2,y2,…,xn,yn)

10
>> q = [1 1 1; 2 3 4;
9
3 5 7; 4 7 10];
8
>> x = [0 1 3 6];
7
>> plot(x,q)
6

>> grid 5

Независно променливата е 3
вектор 2
а зависно променливата е
1
матрица. 0 1 2 3 4 5 6

7
Функција plot
plot(x), plot(x,y), plot(x1,y1,x2,y2,…,xn,yn)
>> q = [1 1 1;
6
2 3 4;
3 5 7; 5

4 7 10];
4

>> x = [0 1 3 6];
3
>> plot(q,x)
>> grid 2

Независно променливата е 1
матрица
а зависно променливата е 0
1 2 3 4 5 6 7 8 9 10
вектор.

8
Функција plot
plot(x), plot(x,y), plot(x1,y1,x2,y2,…,xn,yn)

3
>> x1=-1:0.2:1;
2.5
>> y1=x1.^2;
2
>> x2=-0.3:0.1:1;
1.5
>> y2=x2.*exp(x2);
1
>> x3 = -pi/4:pi/50:pi/4;
0.5
>> y3 = sin(3*x3);
0
>> plot(x1,y1,x2,y2,x3,y3)
-0.5

Приказ на повеќе линии -1


-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
на ист график.

9
Видови на линии и ознаки
LineStyle MarkerSymbol Color

10
Видови на линии и ознаки

11
Функција plot + видови линии
plot(X1,Y1,LineSpec,...)

>> plot(x1,y1,’:b’,...
x2,y2,’*r’,...
x3,y3,’—-g’)

Приказ со различни
видови линии на еден
график.
12
Функција plot + видови линии
plot(X1,Y1,LineSpec,...)

>> x1=[-1:.1:1];... 3

x2=[-1:.1:1];... 2.5

x3=[-1:.1:1];... 2

y1=x1.^2;... 1.5

y2=x1.*exp(x2);... 1

y3=sin(x3.*pi);... 0.5

plot(x1,y1,':b',...
0

x2,y2,‘ *r',...
-0.5 Приказ со различни
x3,y3,'--g') видови линии на еден
-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
график.
13
Функција plot + видови ознаки
plot(x), plot(x,y), plot(x1,y1,x2,y2,…,xn,yn)
>> plot(x1,y1,'--rs',
'LineWidth',2, 3

'MarkerEdgeColor','k',
2.5
'MarkerFaceColor','g',
'MarkerSize',7);hold on 2

>> plot(x2,y2,'g<',
1.5
'LineWidth',1.5,
'MarkerEdgeColor','b', 1

'MarkerFaceColor','y', 0.5
'MarkerSize', 7);hold on
>> plot(x3,y3,‘-d', 0

'LineWidth',1, -0.5
'MarkerEdgeColor','k',
'MarkerFaceColor','m', -1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
'MarkerSize',7)

14
Именување на графици
title, xlabel, ylabel, text

Function x 2
1
plot(x1,y1,'-*r')
xlabel('x') 0.9

ylabel('x^2') 0.8

title('Function x^2') 0.7


text(0.5,0.5^2, 0.6
'\leftarrow x^2',
x2 0.5
'HorizontalAlignment',
'left') 0.4

0.3
← x2
0.2

0.1

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
x

15
Скалирање и tick ознаки
axis([xmin,xmax,ymin,ymax]),
set(gca,'ytick',..), set(gca,'ytick',..)

plot(x3,y3,'--m+', +1
'LineWidth',1.5);
axis([-pi/4,pi/4,-1.1,1.1]);
+0.5

set(gca,'XTick',-pi/4:pi/8:pi/4);
set(gca,'XTickLabel',
0
{'-pi/4','-pi/8','0','pi/8','pi/4'});

set(gca,'YTick',-1:0.5:1); -0.5
set(gca,'YTickLabel',
{'-1','-0.5','0','+0.5','+1'});
-1

-pi/4 -pi/8 0 pi/8 pi/4

16
График со логаритамски оски
semlogx(x,y), semilogy(x,y), loglog(x,y)

Function exp(x)
x = logspace(-1,2); 50
10
loglog(x,exp(x),
‘-o','MarkerFaceColor','y'); 40
10
xlabel('x - log axis');
ylabel('exp(x) - log axis');
30
title('Function exp(x)');
exp(x) - log axis
10

grid on;
logspace(a,b,n) 10
20

генерира n точки
меѓу а и b 10
10

loglog(...) исто како


0
plot(...), само што се10 10 -1 0
10
1
10 10
2

користи логаритамска x - log axis

17
скала за x и y оските
График во поларен систем
polar(theta,rho), polar(theta,rho,LineSpec)

Polar Plot
t = 0:.01:2*pi; 90
1 sin(t/2)
120 60
polar(t,sin(t*0.5),'-r'); 0.8 sin(t)
sin(2*t)
hold on; 0.6
150 30
polar(t,sin(t),'-g'); 0.4
hold on 0.2
polar(t,sin(2*t),'-b');
180 0
grid
title('Polar Plot')
legend('sin(t/2)','sin(t)','sin(2*t)'); 210 330

legend('string1',...) 240 300


270

18
Графици
Графички да се прикаже Zab за колото од сликата
за w=0 до 2000 rad/s

19
Графици
>> w= [0:10:2000];...
w=w+eps;...
z1=10;...
z2=10+0.1.*w*i;...
z3=1./w/10e-6/i;...
z=z1+(z2.*z3)./(z2+z3);...
real_part=real(z);...
imag_part=imag(z);...
plot(w,real_part);

20
Графици
>> w= [0:10:2000];...
w=w+eps;...
z1=10;...
z2=10+0.1.*w*i;...
z3=1./w/10e-6/i;...
z=z1+(z2.*z3)./(z2+z3);...
real_part=real(z);...
imag_part=imag(z);...
plot(w,imag_part);

21
Графици
>> w= [0:10:2000];...
w=w+eps;...
z1=10;...
z2=10+0.1.*w*i;...
z3=1./w/10e-6/i;...
z=z1+(z2.*z3)./(z2+z3);...
real_part=real(z);...
imag_part=imag(z);...
plot(w,real_part,w,imag_part);

22
Графици
>> w= [0:10:2000];...
w=w+eps;...
z1=10;...
z2=10+0.1.*w*i;...
z3=1./w/10e-6/i;...
z=z1+(z2.*z3)./(z2+z3);...
real_part=real(z);...
imag_part=imag(z);...
plot(w,real_part,w,imag_part);
mag=abs(z
rndz=round(abs(z
theta=angle(z);%
polar(theta,rndz
grid;
ylabel('Polar Plot of Z');

23
Графици
Во колото на сликата напонот VS на генераторот останува константетн а
може да се менува неговата кружна фреквенција w. При тоа со мерења е
пополнета следната табела на зависноста на напонот на кондензаторот
од кружната фреквенција

Да се нацрта зависноста на напонот на кондензаторот (во dB скала) од


кружната фреквенција (во логаритамска скала) и да се испишат лабели
за оските и наслов. Сите инструкции да се запишат во .m file.

24
Графици
>> w=[5 6 7 8 9 10 11 12 13 14 15
16]*100;...
Vc=[88.9 98.5 103 104.9 105.3 104.8
103.8 ...
102.4 100.7 98.9 96.5 94.9];...
dB=20*log10(Vc); semilogx(w,dB);...
grid; title('Magnitude of Vc vs. w');...
xlabel('w in rads/sec');...
ylabel('|Vc| in volts');

25
Примена во електротехника
За колото од сликата да се пресметаат означените
контурни струи (сите инструкции да се сместат во .m file)

26
Примена во електротехника
Матричните равенки за контурни струи за
овa коло гласат
RI=V од кои се определува I=R\V

27
Примена во електротехника
За колото од сликата да се напише .m file за
пресметаат струјата Ix. Препорачано користење на
метод на јазлови потенцијали

28
Примена во електротехника
z1=85;
z2=-100j;
z3=100;
z4=200j;
z5=50;
y(1,1)=1/z1+1/z3+1/z4;
y(2,2)=1/z2+1/z3+1/z5;
y(1,2)=-1/z3;
y(2,1)=y(1,2);
y(3,3)=1;
Y(3,1)=0;
Y(3,2)=0;
V(3)=170;
% yV=I
I=[2,1.7j,170]';
V=y\I
Ix=(V(1)-V(2))/z3 29
Корени на полином

Наоѓањето на корени на полином во Matlab е сосема


поедноставено и се одвива во два чекори и тоа :
>> p1=[1 10 35 50 24] % Спецификација на
коефициеннтите на p1(x)
p1 =
1-10 35 -50 24
>> roots_ p1=roots(p1) % Наоѓање на корените наf p1(x)
roots_p1 =
4.0000
3.0000
2.0000
1.0000
30
Корени на полином

>> p2=[1 -7 0 16 25 52]


p2 =
1 -7 0 16 25 52
>> roots_p2=roots(p2)
roots_ p2 =
6.5014
2.7428
-1.5711
-0.3366 + 1.3202i
-0.3366 - 1.3202i

31
Полиномна конструкција за
познати корени на полином
>> r3=[1 2 3 4] % Спецификација на корените на
полиномот
>> r3 =
1 2 3 4
>> poly_r3=poly(r3) % Наоѓање на коефициентите на
полиномот poly_r3
>>poly_r3 =
1 -10 35 -50 24

32
Полиномна конструкција за
познати корени на полином
>> r4=[ -1 -2 -3 -4+5j -4-5j ]
r4 =
Columns 1 through 4
-1.0000 -2.0000 -3.0000 -4.0000 + 5.0000i
Column 5
-4.0000 - 5.0000i
>> poly_r4=poly(r4)
poly_r4 =
1 14 100 340 499 246

33
Евалуација на полином за
зададена вредност

>> p5=[1 -3 0 5 -4 3 2]; % These are the coefficients


% The semicolon (;) after the right bracket suppresses the
display of the row vector
% that contains the coefficients of p5.
%
>> val_minus3=polyval(p5, -3)% Evaluate p5 at x= -3. No
semicolon is used here
% because we want the answer to be displayed
val_minus3 =
1280 34
Множење на два полиномиост
conv(a,b)

>> p1=[1 -3 0 5 7 9];


p2=[2 0 -8 0 4 10 12];
p1p2=conv(p1,p2)
p1p2 =
2 -6 -8 34 18 -24 -74 -88 78 166 174 108

35
Делење на два полиномиост
deconv(a,b)

>> p3=[1 0 -3 0 5 0 7 9]; p4=[2 -8 0 0 4 10 12];


>> [q,r]=deconv(p3,p4)
q=
0.5000
r=
0 4 -3 0 3 2 3

36
Извод на полином polyder(p)

>> p5=[2 0 -8 0 4 10 12];


>> der_p5=polyder(p5)
der_p5 =
12 0 -32 0 8 10

37
Функции со две променливи

ƒ Функциите од типот
z=f(x,y)
можат да се прикажат графички на два начини:
¾ Како 3D графици (мрежа, површина, контури)
¾ Како 2D графици (контури, површини)

38
График 3D со мрежа
mesh(z), mesh(x,y,z), meshc(z), meshz(z)

[x,y]=meshgrid(-pi:pi/10:pi,...
-pi:pi/10:pi); 1
z=sin(x.^2+y.^2+eps)./ ...
(x.^2+y.^2+eps); 0.5
mesh(z);
0
>> eps
ans = 2.2204e-016 -0.5
30
25
20
20
meshgrid(xmin:stepx:xmax, 10
15
10
ymin:stepy:ymax, ) 0
5
0

39
3D поглед
mesh(z), mesh(x,y,z), meshc(z), meshz(z)

0
0
5
>> mesh(z); ... 5
10
view([-40,110]); 15 10

20 15

25 20

25
1

-1
view([az,el])
Предефинирано
view([az,el])
az=-37.50 el=300

40
3D график со контури и z линии
mesh(z), mesh(x,y,z), meshc(z), meshz(z)

>> meshc(z); >> meshz(z);


MESHC Combination mesh/contour plot

1 1

0.5 0.5

0 0

-0.5
-0.5
30
20
25
20 15 20
20
15 10 15
10 10 10
5 5 5
0 0
0 0

41
3D графици
plot3(x,y,z), waterfall(z)
WATERFALL(...) исто како MESH(...) но без цртање на колумн линиите

>> plot3(z); >> waterfall(z);


>> axis off;

0.5

-0.5
30
25
20
20
15
10 10
5
0 0

42
3D графици
surf(z), surf(x,y,z), surfl(z)

>> surf(z); >> surfl(z);


>> axis on; >> shading flat;

1 1

0.5 0.5

0 0

-0.5 -0.5
30 30
25 25
20 20
20 20
15 15
10 10 10 10
5 5
0 0 0 0

43
Контурни графици
contour(z), contourf(z), contour3(z)

>> contour3(z); axis off;

>> contour(z) >> contourf(z)

20 20

18 18

16 16

14 14

12 12

10 10

8 8

6 6

4 4

2 2

2 4 6 8 10 12 14 16 18 20 2 4 6 8 10 12 14 16 18 20

44
Контрола на екранот
shg, clg, subplot(i,j,k)
y=x y = x2
x = -4:0.5:4; 4 20

y = x.^2; 2 15

z = x.^3; 0 10
w = x.^4;
-2 5
subplot(221), plot(x,x),
title('y = x') -4
-4 -2 0 2 4
0
-4 -2 0 2 4
subplot(222), plot(x,y),
y = x3 y = x4
title('y = x^2') 100 300
subplot(223), plot(x,z),
50
title('y = x^3') 200
0
subplot(224), plot(x,w),
100
title('y = x^4') -50

-100 0
-4 -2 0 2 4 -4 -2 0 2 4

45

You might also like