You are on page 1of 17

Khi c qua ti liu ny, nu pht hin sai st hoc ni dung km cht lng

xin hy thng bo chng ti sa cha hoc thay th bng mt ti liu


cng ch ca tc gi khc.
Bn c th tham kho ngun ti liu c dch t ting Anh ti y:
http://mientayvn.com/Tai_lieu_da_dich.html
Thng tin lin h:
Yahoo mail: thanhlam1910_2006@yahoo.com
Gmail: frbwrthes@gmail.com

Chng 4 : ha vi MATLAB

Chng 4

HA VI MATLAB
4.1. im v ng
4.1.1. Hm Plot - V cc im v ng trong mt phng (2D)
Phn ln cc cu lnh v th trong mt phng u l lnh plot. Lnh plot v
th ca mt mng d liu trong mt h trc thch hp v ni cc im bng ng
thng.
V d:
>>x=linspace(0,2*pi,30);
>> y=sin(x);
>> plot(x,y)
Lnh plot m ra ca s ha gi l ca s figure:
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

Trong ca s ny n s to ra chia ph hp vi d liu, v th qua cc


im, v th c to thnh bi vic ni cc im ny bng ng nt lin.
C th v nhiu hn mt th trn cng mt hnh v bng cch a thm vo
plot mt cp i s, plot t ng v th th hai bng mu khc trn mn hnh. Nhiu
ng cong c th cng v mt lc nu nh cung cp cp i s cho lnh plot.
V d: ta cng c th s dng cng h trc ca v d trn v thm th cosx
>>z=cos(x);

55

Chng 4 : ha vi MATLAB

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

Nu nh ta thay i trt t cc i s th th s xoay mt gc bng 90o.


>> plot(y,x,z,x)
7

0
-1

-0.8

-0.6

-0.4

-0.2

0.2

0.4

0.6

0.8

4.1.4. Kiu ng, nh du v mu sc


MATLAB mc nh ng v l ng lin, khng nh du, mu xanh da tri.
Ta c th thay i kiu ng v v nh du ln th bng cch a vo mt i s
th ba. Cc i s ty chn ny l mt xu k t, c th cha mt hoc nhiu hn theo
bng di y.
Nu mt mu, du v kiu ng tt c u cha trong mt xu, th kiu mu
chung cho c du v kiu nt v. khai bo mu khc cho du, ta phi v cng mt d
liu vi cc kiu khai bo chui khc nhau.
Biu
Mu
Biu
nh du
Biu
Kiu nt v
tng
tng
tng
b
xanh da tri
.
chm
nt lin
g
xanh l cy
o
vng trn
:
nt chm
56

Chng 4 : ha vi MATLAB
r
c
m
y
k
w

xanh da tri nht


tm
vng
en
trng

x
+
*
s
d

du x
du +
du hoa th
hnh vung
hnh thoi
tam gic hng xung

tam gic hng ln

<

tam gic hng phi

>
p
h

tam gic hng tri

-.
--

nt gch - chm
nt t

sao nm cnh
sao su cnh

V d:
>>plot(x,y,'m*',x,y,'b--')
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

rng ca ng v (lines) c xc nh km vi m t Linewidth trong lnh


plot. rng ng v c mc nh l 0.5 point 1/72 inch.
Chiu cao ca du (marker) c xc nh km vi m t Markersize trong lnh
plot. Chiu cao ca du c mc nh l 6 point.
V d:
>>plot(x,y,'p-','linewidth',4,'markersize',6)

57

Chng 4 : ha vi MATLAB
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

Ngoi ra, xem th t cc mu trong MATLAB, ta g lnh:


>> get(gca,'colororder')
ans =
0
0 1.0000
0 0.5000
0
1.0000
0
0
0 0.7500 0.7500
0.7500
0 0.7500
0.7500 0.7500
0
0.2500 0.2500 0.2500
Theo th t trn th:
0
0
1 :
mu xanh da tri (b)
0
0.5 0 :
mu xanh l cy (g)
1
0
0 :
mu (r)
0
0.75 0.75
:
mu xanh da tri nht (c)
0.75 0
0.75
:
mu hng nht (m)
0.75 0.75 0 :
mu vng (y)
0.25 0.25 0.25
:
mu xm
Ngoi 7 mu trn, ta c th s dng thm 2 mu c bn l mu en v mu trng
0
0
0 :
mu en (k)
1
1
1 :
mu trng (w)
Thay i gi tr cc s m mu ta c th c nhiu mu khc na.
V d:
0.4
0
0 :
mu m
0.5
0.5 0.5 :
mu xm va phi

4.1.3. th li, hp cha trc, nhn v li ch gii


Lnh grid on s thm ng li vo th hin ti. Lnh grid off xa b cc
nt ny.
58

Chng 4 : ha vi MATLAB
Ta c th a tn trc x, y v tn ca th vo hnh v nh cc lnh xlabel v
ylabel. Lnh title s thm vo th tiu nh.
Dng ghi ch c a vo th nh hm legend. Trong legend th mu v
kiu ca mi loi ng ph hp vi cc ng trn th.
V d:
>> x=linspace(0,2*pi,30);
>> y=sin(x);
>> z=cos(x);
plot(x,y,'mx-',x,z,'bp--')
>> grid on
>> xlabel('x')
>> ylabel('y')
>> title('do thi ham sin va cos')
>> legend ('y = sinx','z = cosx')
do thi ham sin va cos
1
0.8
0.6

y = sinx
z = cosx

0.4

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

4.1.3. Thao tc vi th
Ta c th thm nt v vo th c sn bng cch dng lnh hold. Khi dng
lnh hold on, MATLAB khng b i h trc tn ti trong khi lnh plot mi ang c
thc hin, thay vo , n thm ng cong mi vo h trc hin ti. Tuy nhin, nu d
liu khng ph hp h trc ta c, th trc c chia li. Dng lnh hold off s b i
ca s figure hin ti v thay vo bng mt th mi. Lnh hold khng c i s s bt
tt chc nng ca ch thit lp hold trc .
V d:
>> x=linspace(0,2*pi,30);
>> y=sin(x);
>> z=cos(x);
>>plot(x,y)
>> plot(x,y)
59

Chng 4 : ha vi MATLAB
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

By gi gi nguyn th v thm vo ng cos:


>> hold on
>> plot(x,z,'m')
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

Mt khc, mt ca s figure c th cha nhiu hn mt h trc. Lnh


subplot(m,n,p) chia ca s hin ti thnh mt ma trn m x n khong v th, v
chn p l ca s hot ng. Cc th thnh phn c nh s t tri qua phi, t trn
xung di, sau n hng th hai
V d:
>> subplot(2,2,1)
>> plot(x,y)
>> subplot(2,2,2)
>> plot(y,x)
>> subplot(2,2,3)
>> plot(x,z)
>> subplot(2,2,4)
60

Chng 4 : ha vi MATLAB
>> plot(z,x)
1

0.5

-0.5

-1

0
-1

0.5

-0.5

-1

0
-1

-0.5

0.5

-0.5

0.5

4.1.5. Hm plot3 - V im v ng trong khng gian


Hm plot3 cho php v cc im v ng trong khng gian. Ngoi vic c thm
trc z, cch s dng hm ny ging nh cch s dng hm plot.
V d:
>> t=linspace(0,10*pi);
>> subplot(1,2,1)
helix
>> plot3(sin(t),cos(t),t)
helix
40
>> xlabel('sint')
30
>> ylabel('cost')
40
>> title('helix')
20
30
>> subplot(1,2,2)
10
>> plot3(sin(t),cos(t),t)
1
20
>> view([10,35])
0
0.5
1
10
>> xlabel('sint')
0
1
0
>> ylabel('cost')
0
-0.5
0
-1
cost
>> title('helix')
0
cost
-1
-1 -1
sint
1

sint

Trong tp hp cc lnh trn, chng ta gp lnh:


View([,]): l gc phng v tnh bng ngc chiu kim ng h t pha
m ca trc y. Gi tr mc nh ca l -37.5o. l gc nhn tnh bng xung mt
phng x, y. Gi tr mc nh ca l 30o. Khi thay i cc gi tr v s nhn c
hnh v di cc gc khc nhau.
Vi tp hp lnh trn, khi cho cc gi tr v ln lt l 0o v 90o ta s thy r
hm v 2D l mt trng hp c bit ca hm v 3D.

4.1.6. Cc hm v loglog, semilogx v semilogy v cc ng trong mt phng


- loglog: tng t nh plot nhng thang chia l logarithm cho c hai trc.
61

Chng 4 : ha vi MATLAB
- semilogx: tng t nh plot nhng thang chia ca trc x l logarithm cn thang chia
trc y l tuyn tnh.
- semilogy: tng t nh plot nhng thang chia ca trc y l logarithm cn thang chia
ca trc x l tuyn tnh.
V d:
>> x=[2:4:98];
plot(x,y)
loglog(x,y)
10000
10
>> y=100*x;
9000
>> subplot(1,2,1)
8000
>> plot(x,y,'.')
7000
>> title('plot(x,y)')
6000
>> xlabel('x tuyen tinh')
5000
10
>> ylabel('y tuyen tinh')
4000
>> grid on
3000
>> subplot(1,2,2)
2000
>> loglog(x,y,'.')
>> title('loglog(x,y)')
1000
>> xlabel('x log')
0
10
0
50
100
10
10
10
x tuyen tinh
>> ylabel('y log')
x log
>> grid on
y log

y tuyen tinh

semilogx(x,y)

semilogy(x,y)

10000

10

9000
8000
7000
6000
y log

y tuyen tinh

>> x=[2:4:98];
>> y=100*x;
>> subplot(1,2,1)
>>semilogx(x,y,'.')
>>title('semilogx(x,y)')
>>xlabel('x log')
>>ylabel('y tuyen tinh')
>>grid on
>> subplot(1,2,2)
>>semilogy(x,y,'.')
>>title('semilogy(x,y)')
>>xlabel('x tuyen tinh')
>>ylabel('y log')
>>grid on

5000

10

4000
3000
2000
1000
0
0
10

10
x log

10

10

50
x tuyen tinh

100

MATLAB khng c cc hm v tng ng vi loglog, semilogx, semilogy trong


khng gian. V vy, mun v vi h ta logarithm trong khng gian 3D, ta phi s
dng hm plot3. Ch tuyn tnh lun c mc nh. thay i t l trn cc trc
sang t l logarithm, ta dng lnh:
set(gca,Xscale,log)
V d:
62

Chng 4 : ha vi MATLAB

Ve 3D voi truc z logarith

Ve 3D voi truc z tuyen tinh

10

0.8

z log

0.6
z

>> t=[0.01:0.005:0.99];
>> x=cos(20*pi*t);
>> y=sin(20*pi*t);
>> z=t;
>> subplot(1,2,1)
>>plot3(x,y,z)
>>set(gca,'Zscale','linear')
>>title('Ve 3D voi truc z
tuyen tinh')
>>xlabel('x')
>>ylabel('y')
>>zlabel('z')
>> grid on
>>subplot(1,2,2)
>>plot3(x,y,z)
>>set(gca,'Zscale','log')
>>title('Ve 3D voi truc z
logarith')
>>xlabel('x')
>>ylabel('y')
>>zlabel('z log')
>> grid on

0.4

-1

10

0.2
-2

0
1

10
1
1
0
y

1
0

0
-1 -1

0
-1 -1

4.1.7. th bnh (pie) v th ct (bar)


4.1.7.1. th bnh
v th bnh trong mt phng ta dng hm pie, cn mun v trong khng
gian, ta dng hm pie3. V mt c php hai hm pie v pie3 ging nhau. C php c
dng:
pie(V)
Trong V l vect cha cc phn t c th hin trn th bnh. Nu tng
cc phn t trong vect nh hn hoc bng 1 th th bnh s th hin cc phn t nh
l thnh phn phn trm. Nu tng cc phn t ln hn 1, th mi phn t c chia cho
tng xc nh phn chia trn th bnh ng vi mi phn t.
Th t phn chia trn th bnh theo ng th t phn t m t trong vect.
ng chia u tin l ng ni tm v im cao nht trn ng trn, cc ng k
tip c phn chia theo th t ngc chiu kim ng h.
Mun tch phn chia no ra khi th th ta thm vo hm pie mt vect na
c cng kch thc vi vect c m t trn. Phn t ca vect ny tng ng vi
phn cn tch ra khi th th ta cho gi tr khc 0, phn t tng ng vi phn khng
tch ra ta cho gi tr bng 0.
Cc mu ca tng phn trong th bnh c MATLAB la chn khng trng
nhau v rt d phn bit.
63

Chng 4 : ha vi MATLAB
V d:
Trong mt sn phm hon thin c 5 chi tit ca phn xng A, 12 chi tit ca phn
xng B, 15 chi tit ca phn xng C v 20 chi tit ca phn xng D. Ta th hin s
phn trm chi tit ca mi phn xng trong sn phm hon thin trn th bnh
bng hm pie nh sau:
>> subplot(2,1,1)
>> pie([5 12 15 20])
>> subplot(2,1,2)
>> pie([5 12 15 20],[0 0 0 1])
>> pie([5 12 15 20],{'xuong A','xuong B','xuong C','xuong D'})
10%

10%
38%

23%

29%

38%

23%

29%

xuong A

xuong D

xuong B

xuong C

4.1.7.4. th ct (bar)
Hm bar v bar3 cho php v th trong mt phng v trong khng gian.
Hm barh v hm barh3 cho php v th ct nm ngang trong mt phng v
trong khng gian.
C php:
bar(Vx, Vy, kch thc)
Trong Vx v Vy l nhng vect c cng kch thc, cc gi tr cao ca ct
trong Vy s tng ng vi cc gi tr trn trc ngang ca Vx, iu ch quan trng l cc
gi tr trong Vx phi n iu tng hoc gim. Tham s kch thc xc nh b rng ca
ct.
V d: V th ct vi cc s liu:
X
Y
2
7.5
3
5.2
4
3
>> bar([2 3 4],[7.5 5.2 3],0.4)

64

Chng 4 : ha vi MATLAB
8
7
6
5
4
3
2
1
0

Nu ta khng a vo cc gi tr ca X, ngha l trong hm bar va s dng ta b [2


3 4], th MATLAB s mc nh cc gi tr ca X l [1 2 3]. Trong trng hp Vy l ma trn
th s nhm ct chnh bng kch thc ca vect Vx.
V d: th hin th ct vi cc s liu sau:
X
Y
1
7.5
6
4
3
5.2
3
5
>> bar([1 3],[7.5 6 4;5.2 3 5],0.4)
8
7
6
5
4
3
2
1
0

65

Chng 4 : ha vi MATLAB

4.4. V cc mt
4.4.1. V cc mt t mt ma trn bng cc lnh mesh, meshz, meshc, waterfall
MATLAB nh ngha b mt li bng cc im theo hng trc z trn ng k
hnh vung trn mt phng x - y. N to ln mu mt th bng cch ghp cc im gn
k vi cc ng thng. Kt qu l n trng nh mt mng li nh c vi cc mc li l
cc im d liu. th li ny thng c s dng quan st nhng ma trn ln hoc
v nhng hm c hai bin.
Bc u tin l a ra th li ca hm hai bin z = f(x,y), tng ng vi ma
trn X v Y cha cc hng v cc ct lp i lp li, MATLAB cung cp hm meshgrid cho
mc ch ny:
[X,Y] = meshgrid (x,y): to mt ma trn X, m cc hng ca n l bn sao ca vet
x, v ma trn Y c cc ct ca n l bn sao ca vect y. Cp ma trn ny sau c s
dng c lng hm hai bin s dng c tnh ton hc v mng ca MATLAB.
v b mt ta s dng cc hm:
mesh (X,Y,Z): ni cc im vi nhau trong mt li ch nht.
meshc (X,Y,Z): v cc ng contour bn di th.
meshz (X,Y,Z): v cc ng thng ng vin quanh th.
waterfall X,Y,Z): v mt vi hiu ng nh thc .
V d: V mt xc nh bi phng trnh: z (x, y ) = xe x
>> x=-2:0.5:2;
>> y=-2:1:2;
>> [X,Y]=meshgrid(x,y)
X=
Columns 1 through 6
-4.0000 -1.5000 -1.0000
-4.0000 -1.5000 -1.0000
-4.0000 -1.5000 -1.0000
-4.0000 -1.5000 -1.0000
-4.0000 -1.5000 -1.0000
Columns 7 through 9
1.0000 1.5000 4.0000
1.0000 1.5000 4.0000
1.0000 1.5000 4.0000
1.0000 1.5000 4.0000
1.0000 1.5000 4.0000
Y=
-2 -2 -2 -2 -2 -2

-0.5000
-0.5000
-0.5000
-0.5000
-0.5000

-2

0
0
0
0
0

0.5000
0.5000
0.5000
0.5000
0.5000

-2 -2
66

y2

Chng 4 : ha vi MATLAB

>> Z=X.*exp(-X.^2-Y.^2)
Z=
Columns 1 through 6
-0.0007 -0.0029 -0.0067
-0.0135 -0.0582 -0.1353
-0.0366 -0.1581 -0.3679
-0.0135 -0.0582 -0.1353
-0.0007 -0.0029 -0.0067
Columns 7 through 9
0.0067 0.0029 0.0007
0.1353 0.0582 0.0135
0.3679 0.1581 0.0366
0.1353 0.0582 0.0135
0.0067 0.0029 0.0007

-1 -1
0 0
1 1
2 2

-1
0
1
2

-0.0071
-0.1433
-0.3894
-0.1433
-0.0071

>> subplot(1,2,1)
>> mesh(X,Y,Z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
>> title('ve mat voi lenh mesh')
>> subplot(1,2,2)
>> meshc(X,Y,Z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
>>title('ve mat voi lenh meshc')

0
0
0
0
0

0.0071
0.1433
0.3894
0.1433
0.0071

ve mat voi lenh mesh

ve mat voi lenh meshc

0.4

0.4

0.2

0.2

-1
0
1
2

-1 -1 -1 -1 -1
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2

-0.2

-0.2

-0.4
2

-0.4
2
2
0

2
0

-2 -2

67

0
-2 -2

Chng 4 : ha vi MATLAB

ve mat voi lenh meshz


ve mat voi lenh waterfall
>> subplot(1,2,1)
>> meshz(X,Y,Z)
>> xlabel('x')
0.4
0.4
>> ylabel('y')
0.2
0.2
>> zlabel('z')
>> title('ve mat voi lenh meshz')
0
0
>> subplot(1,2,2)
-0.2
-0.2
>> waterfall(X,Y,Z)
-0.4
-0.4
>> xlabel('x')
2
2
>> ylabel('y')
2
2
0
0
>> zlabel('z')
0
0
y
y
>> title('ve mat voi lenh
-2 -2
x
-2 -2
x
waterfall')
Lu khi s dng hm mesh khi c cc s phc hoc i lng khng phi l s
(NaN - not a number)

V d: phng trnh ca mt bn cu: z = 1 x 2 y 2


>> x=-1:0.2:1;
>> y=-1:0.2:1;
>> [X,Y]=meshgrid(x,y);
>> Z=sqrt(1-X.^2-Y.^2);
>> mesh(X,Y,Z)
??? Error using ==> surface
X, Y, Z, and C cannot be complex.
Nhn thy rng trong ma trn Z c mt s phn t phc. V vy khi dng lnh
mesh MATLAB thng bo li.
Do , v bn cu ny ta phi gii quyt vn ny sinh vi s phc nh sau:
Cch 1: Thay tt c cc phn t phc trong ma trn Z bng phn t 0.
>> Z=real(Z);
>> mesh(X,Y,Z)
Cch 2: Thay tt c cc phn t phc ca ma trn Z bng i lng NaN. Trong trng
hp ny MATLAB s khng v li n cc im .
>> I=find(imag(Z)~=0) % tm ch s ca cc v tr cc phn t c phn o khc khng
I=
[]
>> Z(I)=NaN;
>> mesh(X,Y,Z)

68

Chng 4 : ha vi MATLAB

1
0.8
0.6
0.4
0.2
0
1
0.5

1
0.5

-0.5

-0.5
-1

-1

4.4.4.V cc mt c t bng t mt ma trn bng cc lnh surf, surfc


V d:
>> x=-2:0.5:2;
>> y=-2:1:2;
>> [X,Y]=meshgrid(x,y);
>> Z=X.*exp(-X.^2-Y.^2);
>> surf(X,Y,Z)
>> colormap(hot)
Ta c th to nhiu li hn c mt mt mn hn:
>> x=-2:0.2:2;
>> y=-2:0.4:2;
>> [X,Y]=meshgrid(x,y);
>> Z=X.*exp(-X.^2-Y.^2);
>> surf(X,Y,Z)
>> colormap(cool)

69

Chng 4 : ha vi MATLAB

0.4

0.5

0.2
0

-0.2

-0.4
2

-0.5
2
2
0

2
0

0
-2

0
-2

-2

-2

Lnh surfc (X,Y,Z): v mt c cc n contour pha di.


Lnh surfl (X,Y,Z,s): v mt c bng sng. i s s xc nh hng ca ngun sng trn
b mt v. s l mt vect tu chn trong h to decac hay trong to cu. Nu khng
khai bo gi tr mc nh ca s l 45o theo chiu kim ng h t v tr ngi quan st.
Khi v th ta c th thay i mt s c im ca th nh t l trn cc trc, gi tr
gii hn ca cc trc, mu v kiu ng cong th, hin th legendngay trn figure
bng cch vo menu tools ri vo mc axes properties, line properties hay show legend

70

You might also like