You are on page 1of 57

Chöông 3 : Xöû Lyù Ñoà Hoïa Trong Matlab

3.1) Ñoà Hoïa Hai Chieàu (2_D graph) :


 Haøm plot : haøm duøng ñeå veõ ñoà thò y theo x trong heä truïc toïa ñoä
x-y. Haøm coù cuù phaùp toång quaùt laø
plot(x,y,’LineWidth’, <ñoäroäng>, ’LineStyle’,’<neùtñöôøng’,’Color’,’maøu’);
Trong ñoù,
 x : vector ñieåm bieåu dieãn toïa ñoä truïc hoøanh.
 y : vector ñieåm bieåu dieãn toïa ñoä truïc tung.
 LineWidth : töø khoùa cho pheùp thay ñoåi ñoä roäng cuûa neùt ñöôøng. Maëc
ñònh, beà roäng cuûa neùt ñöôøng veõ laø 0.5 points.
 LineStyle : töø khoùa cho pheùp thay ñoåi neùt ñöôøng veõ. Kieåu neùt ñöôøng
veõ ñöôïc lieät keâ laø
 point : neùt kieåu point ñöôïc kyù hieäu laø daáu chaám ‘.’
 circle : neùt ñöôøng kieåu circle ñöôïc kyù hieäu laø ‘o’
1
x-mark : neùt ñöôøng kieåu x-mark ñöôïc kyù hieäu laø ‘x’
 square : neùt ñöôøng kieåu square ñöôïc kyù hieäu laø ‘s’
 diamond : neùt ñöôøng kieåu diamond ñöôïc kyù hieäu laø ‘d’
 solid : neùt ñöôøng kieåu solid (lieân nhau ) ñöôïc kyù hieäu laø ‘-’
 dotted : neùt ñöôøng kieåu dotted(neùt chaám) ñöôïc kyù hieäu laø ‘:’
 dashdot : neùt ñöôøng kieåu gaïch chaám ñöôïc kyù hieäu laø ‘-.’
 Color : töø khoùa cho pheùp thay ñoåi maøu cuûa neùt veõ. Maøu cuûa caùc neùt
ñöôøng veõ ñöôïc lieät keâ laø
 blue : ñöôïc kyù hieäu laø ‘b’
 green : ñöôïc kyù hieäu laø ‘g’
 red : ñöôïc kyù hieäu laø ‘r’
 cy : ñöôïc kyù hieäu laø ‘c’
 yellow : ñöôïc kyù hieäu laø ‘y’
 black : ñöôïc kyù hieäu laø ‘k’
 Haøm xlabel : taïo nhaõn cho truïc hoøanh vôùi cuù phaùp laø
xlabel(‘Text’); 2
 Haøm ylabel : taïo nhaõn cho truïc tung vôùi cuù phaùp laø
ylabel(‘Text’);
 Haøm title : taïo tieâu ñeà cho ñoà thò vôùi cuù phaùp laø
title(‘Text’);
 Haøm legend : haøm hieån thò maøu vaø teân caùc ñoà thò töông öùng.
Haøm coù cuù phaùp laø
legend(‘String1’,’String2’, Tuøy choïn);
Trong ñoù,
 String1 : nhaõn ñoà thò thöù nhaát
 String2 : nhaõn ñoà thò thöù hai.
 Tuøy choïn -1 : ñaët legend ngoøai heä truïc toïa ñoä goùc treân beân traùi.
 Tuøy choïn 0 : maëc ñònh ñaët legend beân trong heä truïc toïa ñoä.
 Tuøy choïn 1 : ñaët legend beân trong heä truïc toïa ñoä goùc treân beân traùi.
 Tuøy choïn 2 : ñaët legend beân trong heä truïc toïa ñoä goùc treân beân phaûi.
 Tuøy choïn 3 : ñaët legend beân trong heä truïc toïa ñoä goùc döôùi beân phaûi.
 Tuøy choïn 4 : ñaët legend beân trong heä truïc toïa ñoä goùc döôùi beân traùi.
3
 Haøm axis : thieát laäp tæ leä cho truïc hoøanh vaø truïc tung cuûa heä
truïc toïa ñoä vôùi cuù phaùp laø
axis([xmin xmax ymin ymax]);
Trong ñoù,
 xmin : giaù trò nhoû nhaát treân truïc hoøanh x
 xmax : giaù trò lôùn nhaát treân truïc hoøanh x
 ymin : giaù trò nhoû nhaát treân truïc tung y
 ymax : giaù trò lôùn nhaát treân truïc tung y.
 axis off : taét hieån thò heä truïc toïa ñoä.
 axis on : môû hieån thò heä truïc toïa ñoä.
 Leänh grid : taïo maûng keû löôùi treân heä truïc toïa ñoä.
Ví duï : Chöông trình sau laø moät ví duï minh chöùng.
% Beginning of program
x = 0:pi/100:2*pi;
y = sin(x);
z = cos(x); 4
plot(x,y,'b',x,z,'r','Linestyle','-.','LineWidth',1.5),grid
xlabel('X'),ylabel('Y')
legend('sin(x)','cos(x)',-1)
title('Graph sin(x) and cos(x)')
axis([0 7 -1.2 1.2])
% End of program
Chaïy chöông trình cho keát quaû nhö hình

5
 Haøm subplot : Haøm taïo nhieàu khung chöùa nhieàu ñoà thò treân
cuøng moät cöûa soå. Haøm coù cuù phaùp laø
subplot(m, n, p)
Trong ñoù,
 m : laø soá haøng taïo ra caùc khung treân cöûa soå figure
 n : laø soà coät taïo ra caùc khung treân cöûa soå figure
 p : soá thöù töï cuûa caùc khung treân cöûa soå figure tính theo thöù töï töø traùi
sang phaûi vaø töø treân xuoáng döôùi.
Ví duï : Chöông trình veõ ñoà thò cuûa haøm y = x/(1 – x2) theo soá ñieåm khaùc nhau
chöùa trong moãi subplot laø moät ví duï minh chöùng.
% Begining of program
k = 0;
for n = 1:3:10
n10 = 10*n;
x = linspace(-2,2,n10);
y = x./(1 + x.^2);
k = k +1;
subplot(2,2,k)
plot(x,y,'r','LineWidth',2.0,'LineStyle','--')
6
xlabel('X'),ylabel('Y')
title('y = x/(1 + x^2)')
axis([-2 2 -0.8 0.8])
grid
pause(3);
end
% End of program

7
 Haøm get vaø haøm set :
 Haøm get : laáy thuoäc tính cuûa moät ñoái töôïng ñoà hoïa vôùi cuù phaùp laø
get(h, ‘propertyname’);
 Haøm set : thieát laäp thuoäc tính cuûa ñoái töôïng ñoà hoïa vôùi cuù phaùp laø
set(h, ‘propertyname’, propertyValue);
Trong ñoù,
 propertyname : teân thuoäc tính cuûa ñoái töôïng ñoà hoïa h.
 h = gca: ñoái töôïng ñoà hoïa laø heä truïc toïa ñoä xy, trong ñoù caùc thuoäc
tính cuûa noù laø caùc thaønh phaàn cuûa heä truïc toïa ñoä nhö xlabel,
ylabel, vaân vaø vaân vaân.
 h = gcf : ñoái töôïng ñoà hoïa laø cöûa soå figure vôùi caùc thuoäc tính cuûa
noù laø caùc thaønh phaàn cuûa cöûa soå.
Ví duï : taïo ñoà thò hình sin vôùi caùc leänh laø
>>x = 0:pi/100:2*pi;
>>y = sin(x);
>>plot(x,y,’r’),xlabel(‘X’),ylabel(‘Y’)
8
 Laáy thuoäc tính xlabel cuûa ñoái töôïng ñoà hoïa heä truïc toïa ñoä x-y
vôùi leänh laø
>>h = get(gca,’xlabel’);
 Thieát laäp thuoäc tính cuûa ñoái töôïng ñoà hoïa h naøy laø FontSize
coù côû chöõ laø 16 vôùi leänh laø
>>set(h,’FontSize’,16)
 Laáy thuoäc tính ylabel cuûa ñoái töôïng ñoà hoïa heä truïc toïa ñoä
x_y vôùi leänh laø
>>h = get(gca,’ylabel’);
 Thieát laäp thuoäc tính cuûa ñoái töôïng ñoà hoïa naøy laø FontSize coù
côû chöõ laø 16 vôùi leänh laø
>>set(h,’FontSize’,16);
Ví duï : Chöông trình veõ ñoà thò cuûa hai ellipse vôùi phöông trình
(x-3)^2/36 + (y+2)^2/81 = 1 vaø (x-7)^2/4 + (y-8)^2/36 = 1söû
duïng haøm get vaø set laø moät ví duï minh chöùng.
9
%Beginning of program
t = 0:pi/100:2*pi;
x1 = 3 + 6*cos(t);
y1 = -2 + 9*sin(t);
x2 = 7 + 2*cos(t);
y2 = 8 + 6*sin(t);
set(gcf,'DefaultTextColor','red') % tao mau mac dinh
h1 = plot(x1,y1, 'r',x2,y2,'b');
set(h1,'LineWidth',2.25);
axis('square');
xlabel('X')
h = get(gca,'xlabel');
set(h,'FontSize',16);
set(gca,'XTick',-4:10); % tao 15 diem tren truc hoanh x
ylabel('Y')
h = get(gca,'ylabel');
set(h,'FontSize',16)
set(gca,'YTICK',-12:2:12); % taqo 14 diem tren truc y
title('Graphs of (x-3)^2/36 + (y+2)^2/81 = 1 and (x-7)62/4…
+(y-8)^2/36 = 1')
h = get(gca,'title');
set(h,'FontSize',12);
grid
%End of program
10
11
 Haøm fill vaø text :
 Haøm fill : veõ ña giaùc vôùi cuù phaùp laø
fill(x, y, c);
Trong ñoù,
 x : vector ñieåm treân truïc hoøanh,
 y : vector ñieåm treân truïc tung,
 c : maøu toâ neàn.
 Haøm text : ñaët chuoåi vaên baûn treân heä truïc x_y vôùi cuù
phaùp laø
text(x, y, ‘String’);
Trong ñoù,
 x,y : laø toïa ñoä ñieåm baét ñaàu ñaët chuoåi vaèn baûn treân heä truïc toïa
ñoä,
 String : chuoåi vaên baûn muoán ñaët treân heä truïc toïa ñoä.
Ví duï : caùc leänh sau laø ví duï minh chöùng söû duïng haøm fill vaø
text. 12
>>n = -6:6;
>>x = sin(n*pi/6);
>>y = cos(n*pi/6);
>>fill(x,y,’r’);
>>text(-0.45,0,’What is a name of this object’)

13
Ví duï1 : Chöông trình veõ ñoà thò theo toïa ñoä cöïc söû duïng haøm
polar.
% Beginning of program
theta = [0.0:0.1:10.0];
r1 = theta;
r2 = 5*cos(theta) + 5;
h(1) = polar(theta,r1,'b.');
set(h(1),'Markersize',2*6);
hold on
h(2) = polar(theta,r2,'r.');
set(h(2),'LineWidth',4*0.5)
hold off
title('"polar(theta,r,...)" ')
legend(h,'r = \theta','r = 5cos(\theta) + 5',-1)
%End of program
14
15
Ví duï 2 : Chöông trình veõ ñoà thò theo toïa ñoä cöïc söû duïng haøm
plot.
%Beginning of program
theta = [0.0:0.1:10]; % Angles in Radians
r1 = theta; % Radius value
r2 = 5*cos(theta) + 5;
[x1,y1] = pol2cart(theta,r1);
[x2,y2] = pol2cart(theta,r2);
plot(x1,y1,'r.','Markersize',2.*6)
hold on
plot(x2,y2,'b.','LineWidth',4*0.5)
axis('equal')
title('polar using plot(x,y,...)"')
legend('r = theta','r = 5cos(th) + 5',-1)
%end of program
16
17
3.2) Ñoà Thò Ba Chieàu (3 D graph) :
 Haøm plot3 : haøm veõ ñoà thò ba chieàu z theo x vaø y vôùi cuù phaùp laø
plot3(x,y,z,’LineWidth’,<ñoäroäng>,’LineStyle’,’<neùtveõ>’,’Color’,’<maøu>’)
Ví duï : caùc leänh sau laø ví duï minh chöùng söû duïng haøm plot3.
>>z = 0:pi/50:10*pi;
>> x = sin(z);
>>y = cos(z);
>>plot3(x,y,z,’LineWidth’,3.0,’LineStyle’,’o’,’Color’,’r’)

18
 Haøm meshgrid, surf vaø mesh :
 Haøm meshgrid: haøm taïo hai vector ñieåm x vaø y keát hôïp vôùi haøm surf
vaø mesh ñeå veõ ñoà thò ba chieàu vôùi cuù phaùp laø
[x, y] = meshgrid(x, y);
 Haøm surf : haøm veõ ñoà thò ba chieàu z theo x vaø y vôùi cuù phaùp laø
surf(x, y, z, c);
Trong ñoù, c laø maøu toâ neùt veõ.
 Haøm mesh : haøm veõ ñoà thò ba chieàu nhöng khoâng coù toâ maøu neàn nhö
haøm surf vôùi cuù phaùp laø
mesh(x, y, z, c);
Ví duï : veõ ñoà thò ba chieàu cuûa haøm z = sqrt(x^2 + y^2) duøng haøm
surf vaø haøm mesh vôùi caùc leänh laø
>>[x,y] = meshgrid(-8:0.5:8);
>>z = sqrt(x.^2 + y.^2);
>>surf(x,y,z,’EdgeColor’,’r’),title(‘Ham surf’);
>>mesh(x,y,z,’EdgeColor’),title(‘Ham mesh’); 19
20
 Haøm surfc, leänh view, contour vaø clabel :
 Haøm surfc : haøm veõ ñoà thò ba chieàu z theo x vaø y coù hình chieáu treân maët
phaúng x-y vôùi cuù phaùp laø
surfc(x,y,z);
Ví duï : veõ ñoà thò ba chieàu cuûa haøm z = x^2 + y^2 vôùi caùc leänh laø
>>x = -1:0.05:1;
>>y = x;
>> [x,y] = meshgrid(x,y);
>> z = x.^2 + y.^2;
>> surfc(x,y,z)

21
 Leänh Colormap : taïo maøu neàn cho ñoà thò ba chieàu vôùi caùc maøu nhö sau :
 hsv : blue colormap
 hot : black red yellow white colormap
 gray : gray colormap
 copper : copper colormap
 pink : pink colormap
 white : white colormap.
Ví duï : ñoåi maøu neàn cuûa ñoà thò cho treân vôùi leänh
>>Colormap copper

22
 Leänh shading : leänh laøm laùng ñoà thò ba chieàu vôùi moät trong
hai thoâng soá ñoù laø interp vaø flat.
Ví duï : laøm laùng ñoà thò cho treân vôùi leänh
>>shading interp

23
 Haøm contour : haøm veõ caùc ñöôøng cong hình chieáu töông öùng treân maët
phaúng x-y cuûa ñoà thò ba chieàu z theo x vaø y vôùi cuù phaùp laø
[c,h] = contour(z,’s’);
 s : maøu toâ neùt veõ caùc ñöôøng hình chieáu treân maët phaúng x-y.
 Haøm traû veà ma traän ñieåm c treân maët phaúng x-y vaø chieàu cao h.
Ví duï : veõ caùc ñöôøng cong hình chieáu treân maët phaúng x-y cuûa ñoà thò ba chieàu
z cho treân vôùi leänh laø
>>[c,h] = contour(z,’b’);

24
 Leänh clabel : leänh ñaùnh nhaõn chieàu cao z töông öùng treân caùc ñöôøng cong
hình chieáu cuûa maët phaúng x-y vôùi cuù phaùp laø
clabel(c,h)
 c : ma traän ñieåm treân maët phaúng x-y
 h : vector ñieåm chieàu cao z töông öùng ñöôïc thieát laäp töø haøm contour.
Ví duï : ñaùnh nhaõn caùc chieàu cao z töông öùng treân caùc ñöôøng cong hình chieáu
cuûa maët x-y cho treân vôùi leänh
>>clabel(c,h);

25
 Leänh view :leänh hieån thò nghieâng ñoà thò trong khoâng gian ba chieàu.
 view([AZ, EL]) : nhìn nghieâng vôùi moät goùc AZ theo phöông naèm
ngang vaø moät goùc EL theo phöông thaúng ñöùng.
 view([x y z]) : nhìn nghieâng vôùi caùc goùc x, y, z töông öùng vôùi caùc truïc
toïa ñoä x, y, z.
 view(3) : maëc ñònh trong ñoà thò ba chieàu.
 view(2) : maëc ñònh trong ñoà thò hai chieàu.
 Animation :
 getframe : taïo ra moãi frame di chuyeån cuûa ñoái töôïng ñoà hoïa gaùn cho
maûng M.
 movie : di chuyeån caùc frame ñoà hoïa ñöôïc chöùa trong maûng M theo thöù
töï chæ soá taêng daàn.
 Hai leänh naøy ñöôïc keát hôïp vôùi cuù phaùp toång quaùt laø
for k = 1:n
Graphic command;
M(k) = getframe;
end
movie(M,m)
Trong ñoù, m laø soá laàn laëp laïi cuûa M.
26
Ví duï 1 : Chöông trình sau laø moät ví duï minh chöùng.
% Beginning of program
clear
for k = 1:16
plot(fft(eye(k+16)))
M(k) = getframe;
end
movie(M,30)
%end of program

27
Ví duï 2 :Chöông trình sau laø moät ví duï minh chöùng thöù 2.
clear
z = peaks;
surf(z);
axis tight
set(gca,'nextplot','replacechildren');
for j = 1:20
surf(sin(2*pi*j/20)*z,z);
F(j) = getframe;
end
movie(F,20)

28
 Animation vôùi EraseMode : Erasemode laø thuoäc tính loïai boû ñoái töôïng
ñoà hoïa khi ñöôïc dòch chuyeån. Vôùi thoâng soá ‘none’, thuoäc tính naøy khoâng
loïai boû ñoái töôïng khi noù dòch chuyeån. Lôïi duïng yeáu toá naøy, ñoà thò coù theå
ñöôïc veõ chaïy theo daõy nhieàu ñieåm noái tieáp.
Ví duï 1 : Cho dy/dt = Ay, trong ñoù A(y) = [-8/3 0 –y(2);0 -10 10;-y(2) 28 -
1]. Nghieäm quó ñaïo chuyeån ñoäng cuûa phöông trình vi phaân naøy coù theå ñöôïc
tìm baèng phöông phaùp Euler. Chöông trình sau laø moät ví duï minh chöùng.
clear
A = [-8/3 0 0;0 -10 10;0 28 -1];
y = [35 -10 -7]';
h = 0.01;
p = plot3(y(1),y(2),y(3),'.','EraseMode','none','MarkerSize',5);
axis([0 50 -25 25 -25 25]),grid
hold on
for i = 1:4000
A(1,3) = y(2);
A(3,1) = -y(2);
ydot = A*y;
y = y + h*ydot;
set(p,'XData',y(1),'YData',y(2),'ZData',y(3))
pause(0.01)
drawnow
i = i +1;
end
29
 Chaïy chöông trình cho ñoà thò veõ quó ñaïo nghieäm chaïy theo
ñieåm nhö hình

30
Ví duï 2 : Chöông trình sau laø moät ví duï veõ ñoà thò sin theo ñieåm.
x = 0;
y = sin(x);
h = 0.01;
p = plot(x,y,'.','EraseMode','none','MarkerSize',5);
axis([0 16 -1 1]),grid
hold on
for x = 0:pi/100:5*pi
y = sin(x);
set(p,'XData',x,'YData',y)
drawnow
pause(0.1)
i = i +1;
end

31
 Hình caàu vaø hình truï :
 Hình caàu : coù cuù phaùp laø
[x, y, z] = sphere(n)
Ví duï : veõ hình caàu coù taâm taïi truïc toïa ñoä goùc vôùi n = 20 ñieåm
duøng leänh
>>sphere(20)

32
Ví duï : Veõ hình caàu coù taâm taïi toïa ñoä (x =2, y = -1, z =1) vôùi
caùc leänh laø
>>sphere(30)
>>surf(x+2,y-1,z+1)

33
 Hình truï : coù cuù phaùp laø
cylinder(r,n)
Trong ñoù, r laø vector baùn kính vaø n laø soá ñieåm.
Ví duï 1 : Veõ hình truï coù baùn kính ñaùy döôùi laø 2 vaø baùn kính ñaùy
treân laø 1 vôùi leänh
>>cylinder([2 1])

34
3.3) Taïo Giao Dieän Ngöôøi Söû Duïng :
1) Taïo giao dieän ngöôøi söû duïng baèng cuù phaùp leänh :
 Ñoái töôïng ñoà trong Matlab cho pheùp taïo giao dieän
ngöôøi söû duïng baèng M-file ñöôïc phaân caáp nhö hình

Root

Figure

Axes Uicontrol Uimenu Uicontextmenu

35
 Root : maøn hình goác ñoù laø muùc cao nhaát.
 Figure : möùc cho pheùp taïo cöûa soå figure.
 Axes : laø con cuûa figure cho pheùp taïo heä truïc toïa ñoä chöùa
ñoà thò.
 Uicontrol : laø con cuûa figure cho pheùp taïo caùc nuùt ñieàu
khieàu khieån trong cöûa soå figure.
 Uimenu : laø con cuûa figure cho pheùp taïo heä thöïc ñôn
ngang vaø doïc trong cöûa soå figure.
 Uicontextmenu : laø con cuûa figure cho pheùp taïo thöïc ñôn
ngöõ caûnh ngöôøi öû duïng trong cöûa soå figure.
 Taïo cöûa soå giao dieän ngöôøi söû duïng figure :
Cuù phaùp leänh toång quaùt taïo cöûa soå giao dieän ngöôøi
söû duïng laø
figure(‘Propertyname’, propertyvalue, . . .);
36
Trong ñoù, Propetryname laø thuoäc tính ñoù laø teân thaønh phaàn cuûa
cöûa soå vaø propertyvalue laø giaù trò cuûa thuoäc tính. Caùc thuoäc
tính vaø caùc giaù trò cuûa caùc thuoäc tính ñöôïc lieät keâ nhö sau :
 ‘Position’ : laø teân thuoäc tính vò trí ñònh vò cöûa soå treân maøn hình vôùi giaù
trò cuûa noù laø [left bottom width height].
 left : vò trí baét ñaàu ñònh vò cöûa soå treân maøn hình tính töø traùi sang
phaûi.
 bottom : vò trí baét ñaàu ñònh vò cöûa soå treân maøn hình tính töø treân
xuoáng döôùi.
 width : laø beà roäng cuûa cöûa soå.
 height : chieàu cao cuûa cöûa soå.
 ‘Units’ : laø thuoäc tính ñôn vò ño cuûa cöûa soå vôùi caùc giaù trò laø
‘centimeter’ : ñôn vò ño laø centimet.
 ‘points’ : ñôn vò ño laø ñieåm
 ‘pixels’ : ñôn vò ño laø pixel.
 ‘inches’ : ñôn vò ño laø inche.
 ‘Color’ : laø thuoäc tính maøu neàn cuûa cöûa soå vôùi caùc giaù trò maøu nö ‘y’,
‘r’, vaân vaân.
37
 ‘MenuBar’ : laø thuoäc tính taét hoaëc môû thanh thöïc ñôn ngang treân
cöûa soå figure. Maëc ñònh laø môû vaø ‘none’ laø taét.
 ‘NumberTitle’ : laø thuoäc tính taét hoaëc môû soá cöûa soå figure hieån
thò treân maøn hình cuûa cöûa cöûa soå figure. Maëc ñònh laø môû vaø taét
vôùi giaù trò laø ‘off’.
 ‘Name’ : laø thuoäc tính ñaët teân cöûa soå giao dieän figure vôùi giaù trò
cuûa noù laø chuoåi kyù töï.
Ví duï : Taïo cöûa soå giao dieän ngöôøi söû duïng figure nhö hình

38
Duøng leänh
>>figure('MenuBar','none','NumberTitle','off','Name',…
'Luan Van Tot Nghiep','Position',[100 100 250 250],'Color','y')
 Taïo cöûa soå heä truïc toïa ñoä trong cöûa soå figure chöùa
ñoà thò :
Cuù phaùp leänh toång quaùt taïo cöûa soå heä truïc toïa ñoä laø
axes(‘Propertyname’,’propertyvalue’, . . .)
Trong ñoù, Propertyname laø teân thuoäc tính cuûa cöûa soå vaø
propertyvalue laø giaù trò cuûa thuoäc tính. Caùc thuoäc tính cuûa cöûa
soå heä truïc toïa ñoä ñöôïc lieät keâ laø
 ‘Parent’ : laø thuoäc tính cha vôùi giaù trò cuûa noù laø cöûa soå figure.
 ‘Box’ : laø thuoäc tính hình hôïp ñoùng khung heä truïc toïa ñoä. Maëc ñònh laø
môû hieån thò, taét hieån thò hình hôïp vôùi giaù trò cuûa noù laø ‘off’.
 ‘LineWidth’ : laø thuoäc tính taïo neùt roäng cuûa heä truïc toïa ñoä vôùi giaù trò
cuûa noù laø soá ñieåm. Maëc ñònh laø 0.5 points.
 ‘TickDir’ : laø thuoäc tính khaéc daáu treân heä truïc toïa ñoä vôùi hai giaù trò cuûa
noù laø ‘in’ vaø ‘out’. ‘in’ laø höôùng khaéc daáu hieån thò beân trong heä truïc toïa
ñoä vaø ‘out’ laø höôùng khaéc daáu hieån thò beân ngoøai heä truïc toïa ñoä. 39
 ‘TickLength’ : laø thuoäc tính chieàu daøi khaéc daáu treân heä truïc toïa ñoä
vôùi giaù trò cuûa noù laø [0.01 0.02].
 ‘Visible’ : laø thuoäc tính hieån thò truïc toïa ñoä. Maëc ñònh laø hieån thò vaø taét
hieån thò vôùi giaù trò laø ‘off’.
 ‘xGrid’ : laø thuoäc tính taét môû caùc ñöôøng keû löôùi treân truïc toïa ñoä x vôùi
caùc giaù trò cuûa noù laø ‘on’ vaø ‘off’.
 ‘yGrid’ : laø thuoäc tính taét môû caùc ñöôøng keû löôùi treân truïc toïa ñoä y vôùi
caùc giaù trò cuûa noù laø ‘on’ vaø ‘off’.
 ‘Children’ : laø thuoäc tính con cuûa cöûa soå heä truïc toïa ñoä.
 ‘Position’ : laø thuoäc tính vò trí ñònh vò cöûa soå heä truïc toïa ñoä treân cöûa soå
cha figure vôùi giaù trò laø [left bottom width height]. Maëc ñònh giaù trò laø
[0.13 0.11 0.775 0.815].
Ví duï : taïo cöûa soå figure vôùi teân cöûa soå laø Do thi sine chöùa cöûa
soå heä truïc toïa ñoä vôùi ñoà thò hình sine nhö hình

40
>> h = figure('Position',[100 100 450 450],'Name',…
'Do Thi Sine','MenuBar','none','NumberTitle','off')
>> axes('Parent',h,'Position',[0.1 0.2 0.8 0.6])
>> x = 0:pi/100:2*pi;
>> plot(x,sin(x),'r')
>> plot(x,sin(x),'r'),grid
41
 Taïo heä thoáng nuùt ñieàu khieån trong cöûa soå giao
dieän figure duøng leänh uicontrol:
Cuù phaùp leänh toång quaùt laø
uicontrol(‘Propertyname’, propertyvalue, . . . )
 ‘ Style’ : laø thuoäc tính kieåu nuùt ñieàu khieån.
 uicontrol(‘Style’,’Frame’) : taïo nuùt ñieàu khieån frame.
 uicontrol(‘Style’,’Text’) : taïo nuùt ñieàu khieån vaên baûn.
 uicontrol(‘Style’,’Edit’) : taïo nuùt ñieàu khieån soïan thaûo.
 uicontrol(‘Style’,’Popupmenu’) : taïo nuùt ñieàu khieån popup.
 uicontrol(‘Style’,’Slider’) : taïo nuùt ñieàu khieån tröôït.
 uicontrol(“Style’,’Listbox’) : taïo nuùt ñieàu khieån hôïp danh saùch.
 uicontrol(‘Style’,’Radiobutton’) : taïo nuùt ñieàu khieån nhaõn nuùt.
 uicontrol(“style’,’Checkbox’) : taïo nuùt ñieàu khieån hôïp kieåm tra.
 uicontroll(‘Style’,’Pushbutton’) : taïo nuùt ñieàu khieån push.
 ‘BackgroundColor’ : laø thuoäc tính taïo maøu neàn cho caùc nuùt ñieàu
khieån vôùi caùc giaù trò laø ‘y’, ‘r’, ‘b’ vaân vaân.
 ‘ForegroundColor’ : laø thuoäc tính taïo maøu vaên baûn cho caùc nuùt
ñieàu khieån vôùi caùc giaù trò laø ‘y’, ‘r’, ‘b’, vaân vaân.
42
 ‘SelectHighlight’ : laø thuoäc tính taét hoaëc môû aùnh saùng treân nu81t ñieàu
khieån khi choïn. Maëc ñònh laø môû vaø taét vôùi giaù trò laø ‘off’.
 ‘Visible’ : laø thuoäc tính hieån thò vôùi hai giaù trò laø ‘on’ vaø ‘off’.
 ‘Parent’ : laø thuoäc tính cha ñoù laø cöûa soå giao dieän figure.
 ‘Position’ : laø thuoäc tính vò trí ñònh vò cuûa nuùt ñieàu khieån trong cöûa soå
cha figure vôùi giaù trò laø [left bottom width height].
 ‘Callback’ : laø thuoäc tính goïi caùc chöông trình öùng duïng vôùi giaù trò laø
teân cuûa chöông trình.
Ví duï : Chöông trình sau laø moät ví duï minh chöùng.
% Beginning of program
h = figure('Position',[100 100 450 350],'MenuBar','none',...
'NumberTitle','off');
axes('Parent',h,'Position',[0.1 0.2 0.8 0.6]);
uicontrol('Parent',h,'Style','Pushbutton','String','Chay',...
'Position',[20 320 110 50],'Callback','move4')
%End of program
43
44
Ví duï : Taïo cöûa soå giao dieän ngöôøi söû duïng nhö hình

45
%Beginning of program
h = figure('Position',[100 100 450 450],...
'MenuBar','none','NumberTitle','off',...
'Name','Change Fahrenheit to Ceilus');
set(h,'DefaultUicontrolUnits','Normalized');
frame_1 = uicontrol('Parent',h,'Style','Frame',...
'Position',[0.1 0.1 0.8 0.3]);
frame_2 = uicontrol('Parent',h,'Style','Frame',...
'Position',[0.1 0.6 0.8 0.3]);
set(frame_1,'BackgroundColor',[0.5 0.5 0.5]);
set(frame_2,'BackgroundColor',[0.5 0.5 0.5]);
text_f = uicontrol('Parent',h,'Style','Text',...
'String','Fahrenheit :','Position',...
[0.3 0.7 0.2 0.05],'HorizontalAlignment','left');
edit_f = uicontrol('Parent',h,'Style','Edit','String',...
'68.0','Position',[0.6 0.7 0.1 0.05],...
'HorizontalAlignment','right','Callback','fc'); 46
text_c1 = uicontrol('Parent',h,'Style','Text',...
'String','Celsius :','Position',[0.3 0.3 0.2 0.05],...
'HorizontalAlignment','left');
text_c2 = uicontrol('Parent',h,'Style','Text','String','20.0',...
'Position',[0.6 0.3 0.1 0.05],'HorizontalAlignment','right');
slider_f = uicontrol('Parent',h,'Style','slider','Min',32.0,...
'Max',212.0,'Value',68.0,'Position',[0.6 0.8 0.2 0.05],...
'Callback','fc_slider;fc');
set(edit_f,'Callback','fc_slider;fc');
%End of program
%Beginning of function with m_file fc.m
f = get(edit_f,'String');
f = str2num(f);
c = (f - 32)*5/9;
c = num2str(c);
set(text_c2,'String',c);
%End of function 47
%Beginning of function with m-file fc_slider.m
f = get(slider_f,'Value');
f = num2str(f);
set(edit_f,'String',f);
%end of function
%Beginning of program with m-file fc_edit.m
f = get(edit_f,'String');
f = str2num(f);
set(slider_f,'Value',f);
%end of function
 Taïo heä thoáng thöïc ñôn trong cöûa soå giao dieän
ngöôøi söû duïng figure vôùi leänh uimenu :
Cuù phaùp toång quaùt cuûa leänh laø
uimenu(“Propertyname’, propertyvalue, . . . )
Vôùi caùc thuoäc tính ñöôïc lieät keâ nhö sau :
48
 ‘ForegroundColor’ : laø thuoäc tính toâ maøu vaên baûn.
 ‘Label’ : laø thuoäc tính taïo nhaõn teân caùc thöïc ñôn nhö file, edit.
 ‘SelectionHighlight’ ; laø thuoäc tính choïn thöïc ñôn aùnh saùng hieän leän
vôùi hai giaù trò laø ‘on’ vaø ‘off’.
 ‘Visible’ : laø thuoäc tính hieån thò thanh thöïc ñôn. Maëc ñònh laø on hieån
thò maët khaùc laø ‘off’.
 ‘Children’ : laø thuoäc tính con cuûa ñoái töôïng iumenu.
 ‘Parent’ : laø thuoäc tính cha cuûa ñoái töôïng uimenu.
 ‘Position’ : laø thuoäc tính vò trí, maëc ñònh laø [1]; maët khaùc giaù trò laø ñaïi
löôïng voâ höôùng.
 ‘Callback’ : laø thuoäc tính goïi chöông trình öùng duïng vôùi giaù trò laø
chuoåi teân chöông trình.
Ví duï : Taïo moät heä thoáng thöïc ñôn ngang vaø doïc treân cöûa soå
giao dieän figure nhö hình

49
50
%Beginning of program
h = figure('Position',[100 100 450350],'MenuBar','none',...
'NumberTitle','off');
axes('Parent',h,'Position',[0.1 0.2 0.8 0.6]);
h0 = uimenu('Parent',h,'Label','File');
uimenu('Parent',h0,'Label','Run','Callback','move4');
uimenu('Parent',h0,'Label','Close','Callback','close');
h1 = uimenu('Parent',h,'Label','Edit');
uimenu('Parent',h1,'Label','Clear','Callback','clc');
uimenu('Parent',h1,'Label','Close','Callback','close');
%End of program
 Tao thöïc ñôn ngöõ caûnh trong cöûa soå giaùo dieän
vôùi leänh uicontextmenu :
Cuù phaùp leänh toång quaùt laø
uicontextmenu(‘Propertyname’, propertyvalue, . . .)
51
 ‘Visible’ : laø thuoäc tính hieån thò on hoaëc off.
 ‘Position’ : laø thuoäc tính vò trí; maëc ñònh laø [0 0]; maët khaùc giaù trò laø
vector haøng hai phaàn töû.
 ‘Parent’ : laø thuoäc tính cha.
 ‘Callback’ : laø thuoäc tính goïi caùc chöông trình öùng duïng.
Ví duï : Taïo ñoái töôïng ñoà thò hình sin vaø sau ñoù ngöôøi söû duïng coù theå thay
ñoåi kieåu neùt veõ baèng click chuoät phaûi nhö hình.

52
%Beginning of program
clear
h = figure('Position',[100 100 450 350],'MenuBar','none',...
'NumberTitle','off');
axes('Parent',h,'Position',[0.1 0.2 0.8 0.6]);
Cmenu = uicontextmenu;
x = 0:pi/100:2*pi;
hline = plot(x,sin(x),'LineWidth',2.6,'UIContextMenu',Cmenu);
grid
cb1 = ['set(hline,''LineStyle'',''--'')'];
cb2 = ['set(hline,''LineStyle'','':'')'];
cb3 = ['set(hline,''LineStyle'',''-'')'];
item1 = uimenu(Cmenu,'Label','dashed','Callback',cb1);
item2 = uimenu(Cmenu,'Label','dotted','Callback',cb2);
item3 = uimenu(Cmenu,'Label','solid','Callback',cb3);
%end of program

53
2) Taïo giao dieän ngöôøi söû duïng söû duïng Guide :
 Muoán taïo giao dieän ngöôøi söû duïng söû duïng coâng cuï guide, goû leänh guide
tröôùc daáu nhaéc cuûa cöûa soå leänh
>>guide
Cöûa soå guide xuaát hieän nhö hình

54
 Choïn Blank guide vaø click Ok, cöûa soå soïan thaûo guide
xuaát hieän

55
 Treân baûng nuùt ñieàu khieån coù caùc nuùt ñieàu khieån laø
 Push button, Slider , Radio button ,Check box , Edit text, Static text,
Pop up menu, List box, Toggle button, Axes .
 Choïn nuùt ñieàu khieån nhö mong muoán, ñöa ra maøn hình soïan thaûo vaø
double click leân nuùt, cöûa soå property inspector xuaát hieän nhö hình.

56
 Choïn caùc chöùc naêng trong cöûa soå property inspector soïan thaûo nuùt
ñieàu khieån.
 Löu giao dieän vôùi m-file nhö teân mong muoán töø leänh File-Save.
 Chaïy giao dieän vôùi teân m-file ñaõ löu.

57

You might also like