Professional Documents
Culture Documents
Part I Basic
Part I Basic
Matlab
part I
Basis and languge
PhÇn 1. NhËp m«n vÒ ng«n ng÷ Matlab
Ch−¬ng 1. C¸c kh¸i niÖm c¬ b¶n.
1.1 Khëi ®éng matlab (trong windows 9x).
1.2 C¸c phÝm chuyªn dông vµ vµ c¸c lÖnh th«ng dông hÖ thèng.
1.3 BiÕn vµ thao t¸c biÕn
1.4 Sè phøc
1.5 Lµm viÖc ë chÕ ®é héi tho¹i (command window).
1.6 Lµm viÖc ë chÕ ®é so¹n ch−¬ng tr×nh (edit window).
1.7 S¬ l−îc vÒ ®å ho¹.
1.8 C¸c hµm ©m thanh.
Ch−¬ng 2. Ma trËn vµ c¸c phÐp to¸n ma trËn
2.1 V« h−íng, vector vµ ma trËn.
2.2 C¸c ma trËn ®Æc biÖt.
2.3 C¸c phÐp to¸n v« h−íng
2.4 C¸c phÐp to¸n ma trËn
Ch−¬ng 3. LËp tr×nh trong Matlab
3.1 C¸c phÇn tö c¬ b¶n
3.2 Hµm vµ t¹o hµm
3.3 C©u lÖnh CÊu tróc
Ch−¬ng 4. §å ho¹ 2 chiÒu
4.1 C¸c phÐp biÕn ®æi ®å ho¹.
4.2 PhÐp biÕn ®æi Affine trong mÆt ph¼ng
4.3. C¸c hµm chuÈn ®å ho¹ 2 chiÒu
Ch−¬ng 5. §å ho¹ kh«ng gian 3D
5.1. Hµm ®ång møc (contour).
5.2. Chia l−íi.
5.3. §å ho¹ 3D.
5.4. MÆt l−íi ®å ho¹ 3D.
5.5. §å ho¹ bÒ mÆt.
5.6. §iÓm nh×n vµ phÐp phèi c¶nh.
5.7. MÆt c¾t (slice).
5.8. MÇu s¾c vµ c¸c hÖ mµu
Page 1 of 62
part II
matlab symbolic
part III
numerical method
Page 2 of 62
Basic concepts
ma trËn (matrix):
vÐc t¬ (vector):
v« h−íng (scalar):
kiÓu khèi(cell):
Page 3 of 62
PhÇn I
NhËp m«n vÒ ng«n ng÷ Matlab
Giíi thiÖu
-Matlab lµ phÇn mÒm cña c«ng ty Math Works céng hoµ SÐc.
-C«ng dông : Matlab lµ ch−¬ng tr×nh phÇn mÒm trî gióp cho viÖc tÝnh to¸n vµ hiÓn thÞ
c¸c bµi to¸n kü thuËt. Matlab ®−îc ®iÒu khiÓn bëi tËp hîp c¸c lÖnh, t¸c ®éng qua bµn
phÝm trªn cöa sæ ®iÒu khiÓn (Command Window). Nã còng cho phÐp mét kh¶ n¨ng
lËp tr×nh víi th«ng dÞch tËp hîp lÖnh-lËp tr×nh scrip file.
-Matlab lµ viÕt t¾t cña tõ Matrix Laboratory.
-§Æc ®iÓm cña ng«n ng÷ Matlab:
+Xö lý c¸c ma trËn thùc, phøc, c¸c x©u kÝ tù.
+KÕt hîp phÐp tÝnh logic víi sè häc..
+C¸c hµm ®å ho¹ m¹nh vµ dÔ dµng kÕt hîp víi qu¸ tr×nh tÝnh to¸n.
+Hç trî c¸c c«ng cô m¹nh cho c¸c øng dông cô thÓ
-ChÕ ®é lµm viÖc:
+Héi tho¹i ng−êi-m¸y (user-machine at command window): Cho phÐp nhËp lÖnh
tõ bµn phÝm vµ thu ®−îc c¸c kÕt qu¶ sö lýlÖnh tõ m¸y tÝnh.
+ChÕ ®é lËp tr×nh: C¸c lÖnh ®−îc chuÈn bÞ trªn mét file ch−¬ng tr×nh vµ cho
phÐp ch¹y ch−¬ng tr×nh tõ c¸c file lÖnh nµy.
-Cã nhiÒu phiªn b¶n kh¸c nhau (versions), cho phÐp ch¹y trªn c¸c m¸y tÝnh cã hÖ ®iÒu
hµnh kh¸c nhau nh− DOS, UNIX, APPLE, WINDOWS, LINUX...
-Víi Matlab, c¸c vÊn ®Ò cÇn gi¶i quyÕt cña b¹n sÏ ®−îc ph©n tÝch vµ xö lý theo 5 b−íc
nh− sau[1]:
B−íc 1: §Æt vÊn ®Ò.
Bµi to¸n ®Æt ra cÇn ®−îc ph©n tÝch, biÓu diÔn mét c¸ch râ rµng vµ cô
thÓ. §©y lµ b−íc më ®Çu rÊt quan träng, nã quyÕt ®Þnh toµn bé h−íng
gi¶i quyÕt tiÕp theo cña bµi to¸n ®Æt ra.
B−íc 2: M« t¶ c¸c gi¸ trÞ d÷ liÖu vµo/ra.
ViÖc m« t¶ c¸c th«ng tin cÇn gi¶i ®¸p cã liªn quan trùc tiÕp ®Õn c¸c
tham sè ®−îc sö dông trong qu¸ tr×nh tÝnh to¸n, bëi vËy b−íc nµy cÇn
®−îc tiÕn hµnh cÈn träng. Trong nhiÒu tr−êng hîp, s¬ ®å khèi ®−îc sö
dông ®Ó x¸c ®Þnh vÞ trÝ luång vµo/ra, tuy nhiªn ®«i khi chóng chØ lµ hép
®en v× kh«ng thÓ x¸c ®Þnh ®−îc luång ra t¹i mét ®iÓm nµo ®ã trong c¸c
b−íc. MÆc dÇu vËy, ta vÉn chØ ra ®−îc nh÷ng th«ng tin ®Ó tÝnh to¸n
luång ra.
B−íc 3: C¸c tÝnh to¸n b»ng tay víi c¸c tËp d÷ liÖu ®Çu vµo ®¬n gi¶n
§©y lµ b−íc ®Ó nh»m t×m kiÕm nh÷ng gi¶i ph¸p cô thÓ, b¹n kh«ng nªn
bá qua kÓ c¶ ®èi víi c¸c bµi to¸n ®¬n gi¶n. NÕu trong b−íc nµy b¹n
ch−a lÊy ®−îc d÷ liÖu hay ch−a tÝnh ®−îc ®Çu ra th× cã thÓ chuyÓn sang
b−íc kÕ tiÕp.
B−íc 4: ChuyÓn bµi to¸n sang gi¶i ph¸p b»ng Matlab.
ë b−íc nµy b¹n sÏ sö dông c¸c hµm to¸n, còng lµ c¸c lÖnh ®Ó m« t¶ bµi
Page 4 of 62
to¸n theo Matlab
B−íc 5: KiÓm tra.
§©y lµ b−íc cuèi cïng trong tiÕn tr×nh gi¶i bµi to¸n. Bµi to¸n ®−îc
kiÓm tra b»ng c¸c d÷ liÖu ®Çu vµo. Matlab thùc hiÖn bµi to¸n vµ cho
b¹n kÕt qu¶ ë ®Çu ra.
Trong tr−êng hîp kh«ng cã kÕt qu¶ hoÆc kÕt qu¶ sai th× ®iÒu ®ã cã nghÜa lµ
Matlab ch−a thùc hiÖn ®−îc bµi to¸n, b¹n cÇn kiÓm tra l¹i c¶ tÝnh to¸n b»ng
tay vµ thao t¸c b»ng Matlab.
Page 5 of 62
Ch−¬ng 1
C¸c kh¸i niÖm c¬ b¶n
-Khíi ®éng matlab: KÝch chuét vµo nót Start chän Program chän Matlab
chän Matlab 5.3 hoÆc kÝch chuét vµo biÓu t−îng cña Matlab trªn Desktop.
-Giao diÖn cña Matlab gåm :
+Mét cöa sæ lÖnh (command window)
+Mét cöa sæ so¹n th¶o (edit window)
+NhiÒu cöa sè ®å ho¹ (figures)
-ViÖc ng¾t ch−¬ng tr×nh ®ang thùc hiÖn kh«ng ®óng theo yªu cÇu th«ng qua phÝm
nãng Ctrl+C .
-§Ó tho¸t ra khái m«i tr−êng lµm viÖc Matlab, chóng ta cã thÓ sö dông c¸c lÖnh cña
Matlab lµ : » quit hoÆc » exit
1.2 C¸c phÝm chuyªn dông vµ c¸c lÖnh th«ng dông hÖ thèng.
Page 6 of 62
which Cho biÕt ®−êng dÉn cña 'file_name'.
Tªn biÕn trong Matlab (tõ 5.3 trë ®i) cã thÓ dµi tíi 31 kÝ tù bao gåm c¸c ch÷ c¸i
A-Z hay a-z cïng c¸c ch÷ sè vµ dÊu g¹ch d−íi '_', tªn ph¶i ®−îc b¾t ®Çu b»ng ch÷ c¸i,
tªn biÕn kh«ng ®−îc ®Æt trïng víi tªn c¸c tõ kho¸. Tªn c¸c hµm ®· ®−îc ®Æt còng cã
thÓ ®−îc sö dông lµm tªn cña biÕn, vµ hµm nµy sÏ mÊt t¸c dông cho ®Õn khi biÕn ®ã
®−îc xo¸.
C¸c hµm t¸c ®éng lªn biÕn:
clear all Xo¸ tÊt c¶ c¸c biÕn hiÖn cã trong vïng nhí.
clear name2,name2,... ChØ xo¸ c¸c biÕn cã tªn chØ ®Þnh.
exist('name') Tr¶ vÒ ®Þnh nghÜa cña 'name':
0 nÕu 'name' kh«ng tån t¹i.
1 nÕu 'name' lµ biÕn.
2 nÕu 'name' lµ tªn m-file.
3 nÕu 'name' lµ MEX-file.
4 nÕu 'name' lµ MDL-file.
5 nÕu 'name' hµm built-in.
6 nÕu 'name' lµ P-file.
7 nÕu 'name' lµ tªn th− môc.
pack LÖnh thùc hiÖn s¾p xÕp l¹i vïng nhí cho c¸c
biÕn. Khi bé nhí m¸y tÝnh ®Çy, lÖnh pack cho
phÐp t¹o ra thªm vïng nhí cho biÕn mµ
kh«ng ph¶i xo¸ c¸c biÕn ®· tån t¹i.
who HiÓn thÞ tªn c¸c biÕn.
whos HiÓn thÞ tªn vµ kiÓu c¸c biÕn.
who global HiÓn thÞ c¸c biÕn côc bé.
who -file 'filename' HiÓn thÞ c¸c biÕn trong tªp filename.mat.
ans BiÕn cã s½n ®−îc dïng l−u kÕt qu¶ phÐp tÝnh cuèi cïng.
eps Tr¶ vÒ ®é chÝnh x¸c t−¬ng ®èi tÝnh to¸n cña m¸y x¸c ®Þnh kho¶ng tõ
1.0 ®Õn sè ph¶y ®éng lín nhÊt tiÕp theo. EPS ®−îc sö dông lµ sai sè
Page 7 of 62
cho phÐp mÆc ®Þnh cña pinv, rank vµ c¸c hµm kh¸c.
pi Tr¶ vÒ trÞ 3.1415926535897…
realmax Cho biÕt gi¸ trÞ lín nh
Êt m¸y tÝnh cã thÓ tÝnh to¸n ®−îc, c¸c sè lín h¬n gi¸ trÞ nµy sÏ g©y
trµn trªn.
realmin Cho biÕt gi¸ trÞ nhá nhÊt m¸y tÝnh cã thÓ tÝnh to¸n ®−îc, c¸c sè lín
bÐ gi¸ trÞ nµy sÏ g©y trµn d−íi.
inf biÓu diÔn sè v« cïng ∝
NaN biÓu diÔn kÕt qu¶ 0/0, ∝-∝
1.4 Sè phøc.
Page 8 of 62
Trong hÖ to¹ ®é cùc: ®é lín (magnitude) vµ pha (phase) cña sè phøc sÏ ®−îc tÝnh
to¸n nh− sau:
>>r=abs(z);
>>theta=angle(z);
BiÓu diÔn sè phøc theo ®é lín vµ phase nh− sau:
>>z=r*axp(i*theta);
Trong hÖ to¹ ®é ®Òc¸c, phÇn thùc (real) vµ phÇn ¶o (imaginary) se ®−îc tÝnh to¸n
nh− sau:
>>a=real(z);
>>b=imag(z);
BiÓu diÔn sè phøc:
>>z=a+i*b;
-T¹i dÊu mêi » gâ dßng lÖnh, dßng lÖnh sÏ ®−îc thùc hiÖn ngay lËp tøc sau khi nhÊn
phÝm Enter ↵ . KÕt qu¶ sÏ ®−îc ®−a ra cöa sæ lÖnh hoÆc cöa sæ ®å ho¹. NÕu cã lçi,
lçi sÏ ®−îc ghi ngay t¹i cöa sæ lÖnh.
-Qui t¾c viÕt dßng lÖnh:
+Trªn 1 dßng cã thÓ viÕt nhiÒu lÖnh, c¸c lÖnh ®−îc ph©n c¸ch bëi dÊu ',' hoÆc ';'.
NÕu kÕt qu¶ lÖnh tr¶ vÒ gi¸ trÞ sè vµ kÕt thóc bëi dÊu ',' kÕt qu¶ sÏ ®−îc in trªn cöa sæ
lÖnh, cßn nÕu kÕt thóc bëi dÊu ';' kÕt qu¶ sÏ kh«ng ®−îc in ra. Víi c¸c lÖnh kh«ng tr¶
vÒ biÕn nµo, dÊu ph©n c¸ch lÖnh ',' vµ ';' lµ nh− nhau.
+Khi lÖnh qu¸ dµi, hoÆc muèn viÕt trªn nhiÒu dßng lÖnh dïng dÊu ... ®Ó matlab
nhËn dßng tiÒp theo.
-ChØ nªn sö dông chÕ ®é héi tho¹i khi gi¶i bµi to¸n cã cÊu tróc ®¬n gi¶n. Cßn víi bµi
to¸n cã cÊu tróc phøc t¹p nªn sö dông chÕ ®é lËp tr×nh.
-T¹i cöa sæ lÖnh (Command Window) chän File menu New m-file ®Ó vµo chÕ
®é so¹n th¶o viÕt ch−¬ng tr×nh. HoÆc më m-file cã s½n ®Ó söa, chän File menu
Open chän m-file cÇn söa,
hoÆc viÕt t¹i cöa sæ lÖnh dßng lÖnh » edit filename.
Page 9 of 62
+Ch¹y trong cöa sæ lÖnh: >>edit tªn_m_file ↵ .
+Ch¹y trong cöa sæ lÖnh: File menu Run Script... viÕt tªn file, hoÆc chän
Browse ®Ó t×m m-file cÇn ch¹y.
Kh¶ n¨ng ®å ho¹ trong Matlab rÊt phong phó cho phÐp vÏ hÇu hÕt c¸c d¹ng ®å
thÞ vµ c¸c d¹ng biÓu ®å cho c¸c th«ng tin trong mÆt ph¼ng (2D) vµ trong kh«ng gian
(3D).
c¸c lÖnh ®å ho¹ ®¬n gi¶n:
plot(x1,y1,s1,x2,y2,s2,..) VÏ c¸c ®å thÞ trong mÆt ph¼ng to¹ ®é ®Òc¸c
víi kiÓu ®−êng chØ ®Þnh trong s1,s2..
plot(y) NÕu y lµ d·y sè thùc≡plot(i=1:length(y),y).
nÕu y lµ sè phøc≡plot(real(y),imag(y)).
plot3(x1,y1,z1,s1,..) VÏ c¸c ®å thÞ trong kh«ng gian to¹ ®é ®Òc¸c
víi kiÓu ®−êng chØ ®Þnh trong s1,..
title('tiªu ®Ò ®å thÞ') §−a tiªu ®Ò ®å thÞ.
xlabel, ylabel, zlabel §−a vµo c¸c nh·n cho c¸c trôc x, y, z.
legend LÖnh ®−a vµo chó thÝch ®−êng vÏ.
grid LÖnh vÏ c¸c ®−êng dãng trªn ®å thÞ.
VÝ dô: Vi du ve ham 3D
» t=linspace(0,2*pi,40); 8
» plot3(sin(t),t.*cos(t),t);
» title('Vi du ve ham 3D'); 6
» xlabel('x'),ylabel('axis y'), 4
t
0
10
1
5
0.5
0 0
-0.5
axis y -5 -1
x
Page 10 of 62
2
sin(x)
xcos(x)
ln(x2+1)
1.5
0.5
-0.5
-1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
x = t 3 − 3t + 1;
VÏ ®−êng cong tham sè cho bëi ph−¬ng tr×nh:
y = t 3 + 3t + 1;
» t=linspace(-2.5,2.5);x=t.^3-3*t+1;y=t.^3+3*t-1;
» plot(x,y);grid on;axis tight;
» xlabel('x'); ylabel('y');title('Do thi duong cong tham so');
20
15
10
0
y
-5
-10
-15
-20
-6 -4 -2 0 2 4 6 8
x
H×nh
2
+ y2 )
VÏ phæ mµu cña mÆt z = f ( x, y ) = ( x 2 − 3 y 2 )e − ( x , trong kh«ng gian 2D.
» [x,y]=meshgrid(linspace(-2,2));
» z=(x.^2-3*y.^2).*exp(-(x.^2+y.^2));pcolor(x,y,z);
» shading interp; colorbar;
H×nh
Page 11 of 62
1.8 C¸c hµm ©m thanh.
Matlab cho phÐp t¹o ©m thanh th«ng qua c¸c vector bëi hµm sound().
sound(v) T¹o tÝn hiÖu tõ vector v ra ©m thanh, vector v ph¶i
®−îc chuÈn ho¸ -1≤y≤1, c¸c gi¸ trÞ ngoµi kho¶ng sÏ
bÞ c¾t, tèc ®é mÉu mÆc ®Þnh lµ 8192Hz. Muèn cã
©m thanh stereo v lµ vector 2 cét.
sound(v,fs) Thùc hiÖn nh− hµm sound(v) víi f lµ d¶i tÇn Hz.
sound(y,fs,bits) T¹o ©m thanh víi tèc ®é mÉu bits/mÉu nÕu cã kh¶
n¨ng. HÇu hÕt c¸c thiÕt bÞ cho phÐp bits=8 hay 16.
soundsc(v,slim) T−¬ng tù sound() nh−ng sÏ t¹o ©m thamh víi gi¸ trÞ
sè bÊt k× cña v, v sÏ ®−îc chuÈn ho¸ theo
slim=[slow s high], mÆc ®Þnh slim=[min(v) max(v)]
Page 12 of 62
ch−¬ng 2
Ma trËn vµ c¸c phÐp to¸n ma trËn
2.1V« h−íng, vector vµ ma trËn.
Ma trËn (matrix) lµ 1 b¶ng sè mµ c¸c phÇn tö cña nã ®−îc s¾p xÕp theo hµng vµ
cét. Ma trËn chØ cã mét hµng hoÆc mét cét ®−îc gäi lµ vÐc t¬ (vector). Ma trËn chØ cã
mét hµng vµ mét cét ®−îc gäi lµ ®¹i l−îng v« h−íng (scalar).
KÝ hiÖu to¸n häc ma trËn vµ vector:
Page 13 of 62
i];
>>A=[1 0 0
010
0 0 1];
Cã thÓ ®Þnh nghÜa ma trËn tõ c¸c phÇn tö kh¸c.
>>a=[1 2.4 -4.7];
>>b=[1.3 -34.67 a];
>>A=[a;a];
Ma trËn b cã gi¸ trÞ lµ [1.3 -34.67 1 2.4 -4.7];
Ma trËn A cã gi¸ trÞ lµ[1 2.4 -4.7;1 2.4 -4.7];
Truy cËp c¸c phÇn tö cña ma trËn b»ng c¸ch sö dông chØ sè cña nã:
>>s=a(3); %s cã gi¸ trÞ lµ -4.7
>>a(1)=3.14; %phÇn tö thø nhÊt cña a thay ®æi tõ 1 thµnh 3.14
Còng cã thÓ më réng ma trËn b»ng c¸ch thªm cho nã phÈn tö míi. Cho c©u lÖnh
sau: >>a(4)=-1.98;
ma trËn a lóc nµy sÏ cã 4 phÇn tö a=[1 2.4 -4.7 -1.98];
cßn víi c©u lÖnh:
>>a(7)=2.07;
th× ma trËn a sÏ cã 7 phÇn tö, c¸c phÇn tö a(5), a(6) sÏ tù ®éng nhËn gi¸ trÞ lµ 0.
Page 14 of 62
disp HiÓn thÞ néi dung cña biÕn.
fprintf Hµm cho phÐp hiÓn thÞ theo c¸c khu«n d¹ng chØ ®Þnh.
sprintf Hµm tr¶ vÒ x©u kÝ tù in theo c¸c khu«n d¹ng chØ ®Þnh.
Page 15 of 62
PhÐp to¸n C«ng thøc Matlab
Céng a+b a+b
Trõ a-b a-b
Nh©n m¶ng a.b a.*b
Chia ph¶i m¶ng a/b a./b
Chia tr¸i m¶ng a\b a.\b
Luü thõa m¶ng ab a.^b
C¸c phÐp to¸n trªn ¸p dông cho c¸c ma trËn cïng kÝch th−íc, hoÆc ma trËn víi
v« h−íng.
VÝ dô:
A=[1 2 3;7 -6 5;3 0 -1];
B=[1.1 2.4 5.6;-1 -3.6 8;-3 2 -1];
a=[1 2 7 -2];
b=[1 0 2 2];
c=2;
A.*B a.*b
ans = ans =
1.1000 4.8000 16.8000 1 0 14 -4
-7.0000 21.6000 40.0000 a./b
-9.0000 0 1.0000 Warning: Divide by zero.
ans =
A.^B 1.0000 Inf 3.5000 -1.0000
ans = b.\a
1.0e+005 * ans =
0.0000 0.0001 0.0047 1.0000 0 0.2857 -1.0000
0.0000 0.0000 + 0.0000i 3.9063 a.^b
0.0000 0 -0.0000 ans =
1 1 49 4
A.^c a+b
ans = ans =
1 4 9 2 2 9 0
49 36 25 b.^c
9 0 1 ans =
A+B 1 0 4 4
ans = c.^a
2.1000 4.4000 ans =
8.6000 2.0000 4.0000 128.0000
6.0000 -9.6000 0.2500
a+c
13.0000
ans =
0 2.0000 -
3 4 9 0
2.0000
c./a
B+c
ans =
ans =
2.0000 1.0000 0.2857 -
3.1000 4.4000
1.0000
7.6000
1.0000 -1.6000
10.0000
-1.0000 4.0000
1.0000
Page 16 of 62
2.4.1 C¸c phÐp to¸n ma trËn.
Page 17 of 62
A\D A/D
ans = ans =
0 0 0 -0.3023 - 0.0284i 0.3874 +
-0.5556 + 0.2222i 0.0000 -1.5556 0.0562i
+ 0.1111i -1.1033 - 0.0920i 0.1669 + 0.0984i
0.3704 + 0.1852i 0.6667 -0.9630 - 0.0741i
Matlab cung cÊp nhiÒu hµm cho phÐp thao t¸c trªn ma trËn:
Hµm Thao t¸c
Rot90(A,n) C¸c phÇn tö cña ma trËn A ®−îc quay mét gãc 90o ng−îc chiÒu
kim ®ång hå. NÕu cã thªm tham sè n sÏ quay n lÇn.
fliplr(A) §¶o c¸c phÇn tö cña ma trËn A tõ tr¸i sang ph¶i.
flipud(A) §¶o c¸c phÇn tö cña ma trËn A tõ trªn xuèng d−íi.
Bpq=Reshape(Amn) §Þnh d¹ng l¹i ma trËn, yªu cÇu pxq=mxn.
sort(A) Tr¶ vÒ ma trËn víi c¸c cét ®−îc s¾p xÕp tõ nhá ®Õn lín. Sè phøc ®−îc
xÐt b»ng modul cña nã.
ChÝch c¸c phÇn tö cña ma trËn.
diag(A) LÊy c¸c phÇn tö cña ma trËn trªn ®−êng chÐo chÝnh, tr¶ vÒ vector cét
diag(A,k) LÊy c¸c phÇn tö cña ma trËn trªn ®−êng chÐo tuú chän k:
k=0 chän ®−êng chÐo chÝnh.
k>0 chän ®−êng chÐo thø k ë phÝa trªn ®−êng chÐo chÝnh.
k<0 chän ®−êng chÐo thø k ë phÝa d−íi ®−êng chÐo chÝnh.
triu(A) Lµ ma trËn cïng cì víi A. LÊy c¸c phÇn tö trªn ®−êng chÐo chÝnh thø vµ
phÝa trªn ®−êng chÐo chÝnh. c¸c vÞ trÝ kh¸c b»ng kh«ng.
triu(A,k) LÊy c¸c phÇn tö ë phÝa trªn ®−êng chÐo thø k vµ phÝa trªn.
tril(A) Lµ ma trËn cïng cì víi A. LÊy c¸c phÇn tö trªn ®−êng chÐo chÝnh vµ n»m
d−íi ®−êng chÐo chÝnh. c¸c vÞ trÝ kh¸c b»ng kh«ng.
tril(A,k) LÊy c¸c phÇn tö ë phÝa d−íi ®−êng chÐo chÝnh thø k vµ phÝa d−íi.
Thao t¸c c¸c phÇn tö cña ma trËn.
A(i,j) Thao t¸c phÇn tö aij cña ma trËn A.
i=1,m; j=1,n [m,n]=size(A).
: To¸n tö
x=a:d:b T¹o vector hµng x=a::d::b, t¹o cÊp sè p phÇn tö (p=[(b-a)/d], p lµ
y=a:b phÇn nguyªn) x(i)=a+i*d víi i=1,2,..,p.
b>a nÕu d>0.
b<a nÕu d<0.
nÕu d=1 viÕt y=a::b;
A(:,k) Thao t¸c cét thø k cña ma trËn.
A(l,:) Thao t¸c hµng thø l cña ma trËn.
A(:)
A(:) Nèi c¸c cét cña ma trËn A thµnh vector cét.
end To¸n tö
A(end) Thao t¸c phÇn tö cuèi cïng cña ma trËn.
A(end,k) Thao t¸c phÇn tö cuèi cïng cña cét thø k.
A(l,end) Thao t¸c phÇn tö cuèi cïng cña hµng thø l.
Page 18 of 62
A(p:q,k) Thao t¸c phÇn tö tõ vÞ trÝ p ®Õn vÞ trÝ q cña cét thø k.
A(l,p:q) Thao t¸c phÇn tö tõ vÞ trÝ p ®Õn vÞ trÝ q cña hµng thø l.
A(p:q,l:k)
A(p:q,l:k) Thao t¸c ma trËn con .
x(v) Thao t¸c c¸c phÇn tö ®−îc cho trong vector chØ sè v.
A(:,v) Thao t¸c c¸c cét chØ ®Þnh trong vector chØ sè v.
A(v,:) Thao t¸c c¸c hµng chØ ®Þnh trong vector chØ sè v.
Page 19 of 62
8 8 v=
c= e= 1 3 5 7
9 8 7 6 6 g=
d= f= 1 9 4 5
3 3 5
4 4 6
VÝ dô 2:
A=[1+i 1-3*i 12; 1 2.3 -4;2 -1-2.1*i -1; 1 2 4];
rA=A(find(imag(A)==0));
pA=A(find(A>0));
nA=A(find(A<0));
aAb=A(find(1<A&A<4));
sA=sort(A);
rA = -1.0000 - 2.1000i
1.0000 -4.0000
2.0000 -1.0000
1.0000
2.3000 aAb =
2.0000 2.0000
12.0000 2.3000
-4.0000 2.0000
-1.0000
4.0000 sA =
pA = 1.0000 2.0000 -1.0000
1.0000 + 1.0000i 1.0000 2.3000 4.0000
1.0000 1.0000 + 1.0000i -1.0000 - 2.1000i -4.0000
2.0000 2.0000 1.0000 - 3.0000i 12.0000
1.0000
1.0000 - 3.0000i
2.3000
2.0000
12.0000
4.0000
nA =
VÝ dô 3:
A=[1+i 1-3*i 12; 1 2.3 -4;2 -1-2.1*i -1; 1 2 4];
tuA=triu(A)
tuA1=triu(A,2)
tuA1=triu(A,-1)
tlA=tril(A)
tlA1=tril(A,2)
tlA1=tril(A,-1)
tuA = 0 0 0
1.0000 + 1.0000i 1.0000 - 3.0000i 12.0000 0 0 0
0 2.3000 -4.0000 tuA1 =
0 0 -1.0000 1.0000 + 1.0000i 1.0000 - 3.0000i 12.0000
0 0 0 1.0000 2.3000 -4.0000
tuA1 = 0 -1.0000 - 2.1000i -1.0000
0 0 12 0 0 4.0000
0 0 0
Page 20 of 62
1.0000 2.3000 -4.0000
tlA = 2.0000 -1.0000 - 2.1000i -1.0000
1.0000 + 1.0000i 0 0 1.0000 2.0000 4.0000
1.0000 2.3000 0 tlA1 =
2.0000 -1.0000 - 2.1000i -1.0000 0 0 0
1.0000 2.0000 4.0000 1.0000 0 0
tlA1 = 2.0000 -1.0000 - 2.1000i 0
1.0000 + 1.0000i 1.0000 - 3.0000i 12.0000 1.0000 2.0000 4.0000
Page 21 of 62
Ch−¬ng3
LËp tr×nh trong matlab
3.1. C¸c phÇn tö c¬ b¶n
Inf
C¸c gi¸ trÞ sè nhá h¬n gi¸ trÞ realmin sÏ g©y lçi trµn d−íi (exponent underflow). Gi¸ trÞ
cña kÕt qu¶ v−ît miÒn gi¸ trÞ cho phÐp cña biÕn nhí m¸y tÝnh. Trong Matlab, kÕt qu¶
nµy ®−îc biÓu diÔn lµ 0.
» b=realmin*1e-16
b =
Page 22 of 62
§Ó ghi kÝ tù nµy trong x©u kÝ tù viÕt 2 lÇn kÝ tù nµy. VÝ dô: 'Let''s Go.'
.' To¸n tö chuyÓn vÞ.
' To¸n tö chuyÓn vÞ vµ lÊy liªn hîp phøc.
[,] GhÐp c¸c phÇn tö theo hµng ngang.
[;] GhÐp c¸c phÇn tö theo hµng däc.
() Thao t¸c phÇn tö.
NgoÆc ®¬n ®−îc sö dông −u tiªn trong c¸c biÓu thøc sè häc vµ chøa
®ùng c¸c tham sè cña hµm. Chóng ®−îc sö dông ®Ó ®¸nh chØ sè cho
vector, ma trËn. NÕu X vµ V lµ c¸c vector, th× X(V) lµ [X(V(1)), X(V(2)), ...,
X(V(N))]. C¸c phÇn tö cña V ph¶i lµ c¸c sè nguyªn lµm chØ sè. SÏ xuÊt hiÖn
lçi nÕu c¸c chØ sè <1 hoÆc lín h¬n kÝch th−íc cña X.
NgoÆc ®¬n cã thÓ bao hµm c¸c chØ sè logic (hay 0-1). NÕu V lµ biÕn
logic, c¸c phÇn tö kh¸c kh«ng cña V x¸c ®Þnh mÆt n¹ lªn m¶ng X . M¶ng
logic ®−îc ph¸t sinh do c¸c to¸n tö quan hÖ vµ to¸n tö locgic hay c©u
lªnhl logic. NgoÆc ®¬n ®−îc ®−îc hç trî cña tÊt c¶ c¸c kiÓu d÷ liÖu trong
Matlab nh− lµ m¶ng sè thËp ph©n, cÊu tróc, cell, vµ m¶ng kÝ tù.
VÝ dô:
X(3) lµ phÇn tö thø 3 cña X.
X([1 2 3]) lµ ba phÇn tö ®Çu tiªn cña X.
NÕu X cã N thµnh phÇn, X(N:-1:1) ®¶o l¹i d·y.
X(X>0.5) tr¶ vÒ c¸c phÇn tö > 0.5 cña X.
thao t¸c chØ sè t−¬ng tù cho ma trËn vµ m¶ng.
NÕu V cã M thµnh phÇn vµ W cã N thµnh phÇn, th× A(V,W) lµ ma trËn
MxN h×nh thµnh tõ c¸c phÇn tö cña A, víi c¸c chØ sè lµ phÇn tö cña V vµ
W. VÝ dô, A([1,5],:) = A([5,1],:) ho¸n vÞ 2 hµng 1 vµ 5 cña A.
{} §−îc sö dông ®Ó t¹o m¶ng cell. Nã t−¬ng tù ngoÆc vu«ng [ ] ngo¹i trõ cho
phÐp chøa c¸c lo¹i d÷ liÖu kh¸c nhau.
{magic(3) 6.9 'hello'} lµ m¶ng khèi cã 3 phÇn tö.
{magic(3),6.9,'hello'} lµ m¶ng gièng nh− trªn.
{'This' 'is' 'a';'two' 'row' 'cell'} lµ m¶ng khèi 2x3. DÊu ";" kÕt thóc hµng.
{1 {2 3} 4} lµ m¶ng khèi 3 phÇn tö, víi phÇn tö thø 2 lµ m¶ng khèi.
Braces còng dïng ®Ó ®¸nh ®Þa chØ néi dung m¶ng khèi. Thao t¸c nh−
parentheses vµ tr¶ vÒ néi dung t¹i ®Þa chØ ®ã.
VÝ dô:
X{3} lµ néi dung phÇn tö thø 3 cña X.
X{3}(4,5) lµ thµnh phÇn (4,5) c¶u phÇn tö thø 3.
X{[1 2 3])} lµ danh s¸ch 3 phÇn tö cho trong vector chØ sè. Nã
t−¬ng tù nh− X{1},X{2},X{3} and makes sense inside [] ,{}, or in function
input or output lists (see LISTS).
Cã thÓ lÆp ®Þnh ®Þa chØ cho c¸c m¶ng khèi lång nhau X{1}{2} lµ néi dung
cña phÇn tö thø 2 cña m¶ng khèi trong X. Nã ho¹t ®éng gièng nh− c¸c cÊu
tróc lång nhau, nh− X(2).field(3).name hoÆc tæ hîp c¸c m¶ng khèi vµ cÊu
tróc, nh− Z{2}.type(3).
[] §Ó sinh c¸c vector vµ ma trËn.
[6.9 9.64 SQRT(-1)] lµ vector 3 thµnh phÇn ph©n c¸ch nhau b»ng
Page 23 of 62
dÊu c¸ch. [6.9, 9.64, sqrt(-1)] t−¬ng tù nh− trªn.
[1+I 2-I 3] vµ [1 +I 2 -I 3] kh«ng gièng nhau. Vector ®Çucã 3 phÇn tö,
vector thø 2 cã 2 phÇn tö.
[11 12 13; 21 22 23] lµ ma trËn 2x3. Dêu ";" kÕt thóc hµng ®Çu tiªn.
C¸c vector vµ ma trËn cã thÓ nèi víi nhau bëi ngoÆc vu«ng [].
[A B; C] lµ hîp lÖ nÕu sè hµng cña A b»ng sè hµng cña B vµ b»ng sè
cét cña C.
A = [] sinh ma trËn rçng A.
Sö dông [ vµ ] ë vÕ tr¸i cña phÐp g¸n = ë c¸c c©u lÖnh g¸n nhiÒu biÕn,
xemc¸c hµmLU, EIG, SVD vµ c¸c hµm kh¸c.
3.1.2 BiÕn.
b. BiÕn string.
BiÕn string trong matlab ®−îc l−u trong vector vøi mçi phÇn tö lµ 1 kÝ tù. C¸c kÝ
tù ®−îc l−u trong vector ë d¹ng m· ASCII, khi hiÓn thÞ biÕn string dßng kÝ tù sÏ ®−îc
hiÓn thÞ chø kh«ng ph¶i m· cña chóng.
ViÖc x¸c ®Þnh vÞ trÝ cña mçi phÇn tö cña biÕn string th«ng qua chØ sè cña nã
trong vector. Ma trËn cña c¸c kÝ tù hay string còng cã thÓ ®−îc sö dông nh−ng mçi
phÇn tö (hµng cña ma trËn) ph¶i b»ng nhau.
VÝ dô:
» test='Wellcome to ITIMS''2000'
test =
Wellcome to ITIMS'2000
-§¶o ng−îc x©u kÝ tù.
» daotu=test(end:-1:1)
daotu =
0002'SMITI ot emoclleW
-TrÝch 1 phÇn cña x©u kÝ tù.
» test(1:8)
ans =
Wellcome
-KÕt hîp c¸c x©u kÝ tù:
Page 24 of 62
» hodem='Nguyen Hoang';ten='Viet';
» hoten=[hodem ' ' ten]
hoten =
eval Th−c hiÖn c©u lÖnh trong biÓu thøc Matlab. eval(s), víi s lµ x©u kÝ tù, thi
hµnh c¸c biÓu thøc vµ c¸c c©u lÖnh ghi trong x©u s.
eval(s1,s2) ®−a ra tÝnh n¨ng b¾t lçi. Nã thi hµnh x©u s1, nÕu kh«ng cã lçi nã trë vÒ hÖ
®iÒu hµnh. NÕu hÖ ®iÒu hµnh ph¸t sinh lçi, x©u kÝ tù s2 ®−îc thi hµnh tr−íc khi trë vÒ
Page 25 of 62
hÖ ®iÒu hµnh. Sö dông nh− eval('try','catch'). X©u kÝ tù lçi ph¸t sinh bëi 'try' cã thÓ
nhËn tõ biÕn LASTERR.
[X,Y,Z,...] = eval(s) tr¶ vÒ c¸c ®èi theo thø tù biÓu thøc cã trong s. X©u kÝ tù vµo cho
eval th−êng eval ®−îc t¹o bëi kÕt hîp c¸c x©u con trong ngoÆc vu«ng.
VÝ dô:
Ph¸t sinh lÇn l−ît c¸c biÕn ma trËn cã tªn M1 ®Õn M12:
for n = 1:12
eval(['M' num2str(n) ' = magic(n)'])
end
Ch¹y script file lùa chän tõ tËp hîp c¸c m-file script. X©u kÝ tù ®−îc t¹o theo c¸c hµng
cña ma trËn D ph¶i cã ®é dµi b»ng nhau.
D = ['odedemo '
'quaddemo'
'fitdemo '];
n = input('Select a demo number: ');
eval(D(n,:))
vectorize vector ho¸ biÓu thøc ®−a vÒ c¸c phÐp to¸n m¶ng. vectorize(S), khi S lµ
biÓu thøc x©u kÝ tù, tr¶ vÒ x©u cã chÌn thªm kÝ tù '.' t−íc c¸c to¸n tö '^', '*' hay '/' trong
S. vectorize(FCN), khi FCN lµ hµm INLINE, vector ho¸ c«ng thøc cña FCN. KÕt qu¶ tr¶ vÒ
lµ hµm inline INLINE ®−îc vector ho¸.
count = fprintf(fid,format,A,...) ®Þnh d¹ng d÷ liÖu theo c¸c phÇn thùc cña ma trËn A
(vµ theo bÊt k× ®èi sè vµo nµo) theo x©u kÝ tù ®iÒu khiÓn d¹ng thøc in d÷ liÖu vµ ghi
file chØ ®¹i diÖn bëi fid. count lµ sè byte ®· ghi lªn fid. fid lµ sè nguyªn nhËn d¹ng do
FOPEN tr¶ vÒ. fid =1: XuÊt ra thiÕt bÞ chuÈn (mµn h×nh), fid =2: B¸o lçi chuÈn. Khi bá
®èi sè fid, xuÊt ra thiÕt bÞ chuÈn.
format lµ x©u kÝ tù chØ ®Þnh ®Þnh d¹ng theo ng«n ng÷ C. ChØ ®Þnh b¾t ®Çu biÕn ®æi
b»ng kÝ tù %, c¸c cê lùa chän, chiÒu réng lùa chän vµ kiÓu tr−êng, chØ ®Þnh kiÓu con
lùa chän vµ c¸c kÝ tù ®Þnh d¹ng d, i, o, u, x, X, f, e, E, g, G, c, and s.
C¸c ®Þnh d¹ng ®Æc biÖt \n,\r,\t,\b,\f ph¸t sinh ng¾t dßng, xuèng dßng, tab, lïi vÒ tr−íc
1 kÝ tù, vÒ ®Çu dßng. Sö dông \\ ®Ó lÊy kÝ tù "\" vµ %% ®Ó lÊy kÝ tù"%".
fprintf ho¹t ®éng gièng ANSI C theo chØ ®Þnh vµ më réng nh− sau:
1. ChØ phÇn thùc cña tham sè ®−îc xö lý.
2. C¸c chØ ®Þnh kiÓu con kh«ng chuÈn cung cÊp cho chuyÓn ®æi kiÓu lµ o, u, x, and
X.
t - Trong C ®Þnh nhÜa kiÓu thùc ®¬n, trong Matlab lµ kiÓu nguyªn kh«ng dÊu.
b - Trong C ®Þnh nhÜa kiÓu thùc kÐp, trong Matlab lµ kiÓu nguyªn kh«ng dÊu.
VÝ dô, ®Ó in ra sè thËp lôc gi¸ trÞ thùc kÐp sö dông ®Þnh d¹ng nh− sau '%bx'.
3. fprintf sÏ "vectorized" khi A kh«ng ph¶i lµ v« h−íng. X©u kÝ tù ®Þnh d¹ng ®−îc
lÆp l¹i cho c¸c tÊt c¶ c¸c phÇn tö cña A (theo cét) . T−¬ng tù cho c¸c tham sè ma
trËn kh¸c.
VÝ dô, c¸c c©u lÖnh
x = 0:.1:1; y = [x; exp(x)];
fid = fopen('exp.txt','w');
fprintf(fid,'%6.2f %12.8f\n',y);
Page 26 of 62
fclose(fid);
sinh ra file text cã chøa b¶ng gi¸ trÞ cña hµm mò:
0.00 1.00000000
0.10 1.10517092
...
1.00 2.71828183
Page 27 of 62
S = fscanf(fid,'%s') ®äc (vµ tr¶ vÒ) x©u kÝ tù.
A = fscanf(fid,'%5d') ®äc vµo sè thùc víi 5ch÷ sè th¹p ph©n.
2.7183
3.1416
tr¶ vÒ vector 2 phÇn tö chøa sè gÇn dóng e vµ pi.
c. Kh¸i niÖm biÕn ma trËn (scalar, vector, matrix), biÕn khèi vµ biÕn cÊu tróc.
Matlab cung cÊp kiÓu biÕn (líp ®èi t−îng) lµ sè thùc kÐp (double), kÝ tù (char),
ma trËn, kÝ hiÖu (sym), m¶ng ®èi t−îng (cell), cÊu tróc (struct), biÕn hµm inline...
Matlab cung cÊp 2 kiÓu v« h−íng c¬ b¶n:
+V« h−íng thùc (double), cã ®é lín 8 byte.
+KiÓu v« h−íng kÝ tù (char), cã ®é lín 2 byte.
C¸c biÕn vector, ma trËn lµ c¸c m¶ng thuÇn tuý chøa c¸c v« h−íng thùc hoÆc kÝ
tù. C¸c biÕn nµy cßn gäi lµ c¸c biÕn thuÇn nhÊt.
BiÕn cell lµ m¶ng ®èi t−îng víi c¸c phÇn tö lµ ®èi t−îng bÊt k×, cã thÓ lµ v«
h−íng, vector, ma trËn, x©u kÝ tù, biÕn hµm inline, biÕn sym, biÕn cÊu tróc, inline...
BiÕn cÊu tróc lµ d¹ng biÕn c¸c phÇn tö (tr−êng-field) cña nã ®−îc truy cËp theo
tªn cña tr−êng, c¸c tr−êng cã thÓ cã kiÓu v« h−íng, vector, ma trËn, biÕn hµm inline,
symbolic, cell,...
C¸c biÕn ®−îc ph©n biÖt theo kiÓu d÷ liÖu th«ng qua hµm class(var), hµm class
tr¶ vÒ biÕn char chøa x©u kÝ tù ph©n lo¹i kiÓu d÷ liÖu ('double', 'char', 'inline', 'sym', 'cell',
'struct'...).
ViÖc th©m nhËp (acess) ®Õn c¸c phÇn tö d÷ liÖu:
+V« h−íng th«ng qua tªn: a,x,z....
+Vector, ma trËn th«ng qua c¸c chØ sè: A(i,j,...),A(i,j),v(i)....
+BiÕn cell th«ng qua chØ sè (gièng vector, ma trËn) C{i,j,...},C{i,j},a{j}
+BiÕn cÊu tróc th«ng qua tªn tr−êng: S.a,S.field2,...
Page 28 of 62
X¸c ®Þnh chiÒu c¸c biÕn m¶ng: v« h−íng, vector, ma trËn. Tõ lÖnh
[m,n,..]=size(var) vµ p=length(size(var)):
+m=n=1, p=2: BiÕn var lµ v« h−íng.
+m=1, n>1 hoÆc n=1, m>1; p=2 BiÕn vector.
+m>1,n>1,p=2 BiÕn ma trËn.
+p>2 BiÕn m¶ng khèi.
X¸c ®Þnh sè phÇn tö cña biÕn thuÇn nhÊt: members=prod(size(var)).
ViÖc x¸c ®Þnh sè chiÒu cña biÕn cell t−¬ng tù nh− biÕn v« h−íng, vector, ma
trËn.
Chó ý:
+Néi dung cña c¸c hµm inline vµ m-files cã thÓ thay ®æi ®−îc.
+§Ó biÕt tªn c¸c hµm ®· ®−îc gäi tr−íc ®©y sö dông lÖnh » inmem .
Page 29 of 62
f=inline('(-x-1).*(x<-1)+(x.^2-1).*(-1<=x&x<=1)+(x.^3-1).*(x>1)')
» g = inline('sin(2*pi*f + theta)')
g =
Inline function:
g(f,theta) = sin(2*pi*f + theta)
» a=g(50,pi/4)
a =
0.7071
Hµm nµy cã mét sè thµnh phÇn chung cho tÊt c¶ c¸c hµm MATLAB:
•Dßng ®Þnh nghÜa hµm. §©y lµ hµm ®Þnh nghÜa tªn hµm, sè l−îng vµ trËt tù ®èi sè
vµo vµ ra.
•Dßng H1. H1 chuyÓn chuÈn dßng “trî gióp 1”. MATLAB hiÓn thÞ dßng H1 cho
hµm khi b¹n sö dông hµm lookfor hoÆc yªu cÇu trî gióp lèi vµo th− môc.
•V¨n b¶n trî gióp. MATLAB hiÓn thÞ dßng nhËp trî gióp liÒn kÒ nhau ngay sau
dßng H1 khi b¹n yªu cÇu trî gióp ë hµm chØ ®Þnh.
Page 30 of 62
•Th©n hµm. PhÇn nµy cã chøa m· thùc thi c¸c tÝnh to¸n thùc tÕ vµ g¸n gi¸ trÞ cho
®èi sè ra bÊt k×.
T¹o M-File: Truy cËp ch−¬ng tr×nh so¹n th¶o v¨n b¶n.
M-file th−êng lµ file v¨n b¶n, b¹n cã thÓ t¹o b»ng c¸c tr×nh so¹n th¶o v¨n b¶n.
MATLAB còng cung cÊp tr×nh so¹n th¶o v¨n b¶n built-in, mÆc dï b¹n cã thÓ sö dông
ch−¬ng tr×nh so¹n th¶o bÊt k× b¹n quen dïng ®Ó so¹n th¶o.
C¸ch ®Ó so¹n mét M-file tõ dßng lÖnh MATLAB lµ dïng c©u lÖnh edit. VÝ dô,
edit poof
më tr×nh so¹n th¶o so¹n th¶o file poof.m. Bá qua tªn file sÏ më tr×nh so¹n th¶o so¹n
th¶o file cã tªn untitled*. (* lµ c¸c ch÷ sè)
B¹n cã thÓ t¹o hµm fact ë trªn b»ng c¸ch më tr×nh so¹n th¶o cña b¹n, nhËp c¸c
dßng ®· nªu, vµ cÊt v¨n b¶n lªn file cã tªn fact.m trong th− môc hiÖn hµnh cña b¹n.
Mét khi b¹n ®· t¹o file nµy, sau ®©y lµ vµi c«ng viÖc b¹n cã thÓ lµm:
•LiÖt kª danh s¸ch tªn c¸c file trong th− môc hiÖn hµnh
what
•LiÖt kª v¨n b¶n m· cña M-file fact.m
type fact
•Gäi hµm fact
fact(5)
ans =
120
Chó ý §Ómë tr×nh so¹n th¶o trªn m¸y vi tÝnh PC, chän menu File chän môc New vµ sau
®ã chän M-File.
C¸c hµm hÖ thèng t−¬ng t¸c víi M-file t¹i cöa sæ lÖnh, trong script vµ hµm :
echo on Cho phÐp hiÓn thÞ c¸c c©u lÖnh cña script file ®ang ®−îc thùc hiÖn .
echo off Kh«ng hiÓn thÞ c¸c c©u lÖnh cña script file ®ang ®−îc thùc hiÖn.
echo func on/off BËt/t¾t hiÓn thÞ c¸c c©u lÖnh ®−îc thùc hiÖn cña hµm "func" .
echo func LËt tr¹ng th¸i hiÓn thÞ c©u lÖnh trong hµm "func".
echo on/off all BËt/t¾t hiÓn thÞ c©u lÖnh ®−îc thi hµnh cña c¸c hµm cã trong inmem.
help name HiÖn c¸c dßng chó thÝch ®Çu tiªn, liªn tôc cã trong file "name.m".
type filename HiÓn thÞ néi dung cña file cã tªn filename, mÆc ®Þnh më réng lµ "*.m".
NÕu cã 2 file test vµ test.m c©u lÖnh "type test" cho néi dung file test,
®Ó hiÓn thÞ ®óng tªn file nªn cã phÇn më réng "type test.m".
dbtype name T−¬ng tù type, nh−ng cã chØ sè dßng ë ®Çu dßng cña file cã tªn "name".
which name Cho biÕt ®−¬ng dÉn cña file "name", mÆc ®Þnh më réng lµ "*.m".
Page 31 of 62
Ta cã thÓ ch¹y file nµy gièng nh− c¸c lÖnh Matlab. Tøc lµ gâ tªn file kh«ng cã
phÇn më réng, sau ®ã nhÊn enter. HoÆc chän menu File/Rile/Run Script.. sau ®ã gâ tªn file
hoÆc chän nót bÊm browse... ®Ó chän file ®Ó ch¹y, sau ®ã chän nót Ok.
TËp hîp c¸c c©u lÖnh, thñ tôc sö dông ®−îc t¹i dßng lÖnh cöa sæ command
windows ®Òu sö dông cho script file.
Ta cã vÝ dô vÒ script file "welcome.m":
%Welcome.m, Vi du ve lap trinh trong Matlab
%Welcome to you !
Hµm lµ M-file cã c¸c ®èi sè vµo vµ ®èi sè ra. Chóng ho¹t ®éng trªn c¸c biÕn bªn
trong workspace cña riªng nã. Nã ph©n c¸ch víi workspace b¹n truy cËp t¹i dÊu nh¾c
lÖnh MATLAB.
NÕu b¹n muèn, thö nhËp c¸c lÖnh vµo M-file cã tªn average.m.
Hµm average chÊp nhËn mét ®èi sè vµo vµ tr¶ vÒ mét ®èi sè ra. Gäi hµm average,
nhËp:
z = 1:99;
average(z)
ans =
50
Page 32 of 62
TiÕp trang 330
C¸c hµm do ng−êi sö dông viÕt còng ®−îc l−u trong c¸c m-files. Chóng ®−îc sö
dông gièng nh− c¸c hµm cña Matlab. C¸c file hµm ph¶i ®−îc viÕt theo mét qui ®Þnh
chÆt chÏ.
C¸c qui t¾c viÕt hµm m-files.
1. hµm ph¶i ®−îc b¾t ®Çu b»ng tõ function, sau ®ã lÇn l−ît lµ c¸c tham sè ®Çu
ra, dÊu b»ng "=", tªn hµm, tham sè ®Çu vµo ®−îc bao trong dÊu ngoÆc ®¬n.
Dßng ®Þnh nghÜa nµy ph©n biÖt sù kh¸c nhau gi÷a file hµm vµ c¸c file script.
Tªn file hµm nhÊt thiÕt ph¶i trïng víi tªn hµm.
VÝ dô:
function [s,v,t]=myfun(fn,a,b)
%Hµm tÝnh diÖn tÝch, thÓ tÝch cña hµm fn so víi trôc Ox.
®−îc l−u trong file myfun.m
2. Mét sè dßng ®Çu tiªn nªn viÕt chó thÝch hµm. Khi sö dông lÖnh help víi tªn
hµm, chó thÝch cña hµm sÏ ®−îc hiÓn thÞ.
3. C¸c th«ng tin tr¶ l¹i cho hµm ®−îc l−u vµo tham sè (ma trËn) ®Çu ra. V× vËy
lu«n kiÓm tra ch¾c ch¾n r»ng trong hµm cã chøa c©u lÖnh Ên ®Þnh gi¸ trÞ cña
tham sè ®Çu ra.
4. C¸c biÕn cïng tªn cã thÓ ®−îc sö dông bëi c¶ hµm vµ ch−¬ng tr×nh cÇn ®Õn
nã. Kh«ng cã sù lén xén nµo x¶y ra v× c¸c hµm vµ ch−¬ng tr×nh ®Òu ®−îc thùc
hiÖn t¸ch biÖt nhau. C¸c biÕn sö dông bªn trong th©n hµm vµ c¸c tham sè ®Çu
ra kh«ng chÞu t¸c ®éng cña ch−¬ng tr×nh. C¸c tham sè ®Çu vµo kh«ng chÞu t¸c
®éng cña hµm.
5. NÕu mét hµm cho nhiÒu h¬n mét gi¸ trÞ ®Çu ra ph¶i viÕt tªn tÊt c¶ c¸c gi¸ trÞ
cña hµm thµnh mét vector trong dßng khai b¸o hµm.
VÝ dô:
function [mean,stdev] = stat(x)
%STAT Interesting statistics.
6. Mét hµm cã nhiÒu tham sè ®Çu vµo cÇn ph¶i liÖt kª chóng khi khai b¸o hµm.
C¸c tham sè cã thÓ ®−îc thay ®æi nhê c¸c biÕn côc bé ®Æc biÖt nargin, nargout-
x¸c ®Þnh sè c¸c tham sè ®Çu vµo, ®Çu ra, c¸c biÕn côc bé varargin,varargout cho
phÐp thiÕt lËp tuú biÕn sè l−îng, kiÓu tham sè ®Çu vµo, ®Çu ra.
7. Hµm m-files cã thÓ gäi c¸c hµm m-files kh¸c vµ hµm cã thÓ gäi ®Õn chÝnh nã
(®Ö qui).
Page 33 of 62
8.Hµm cã thÓ cã hµm riªng (subfunction), chØ cã t¸c dông bªn trong th©n hµm
m-files. Hµm riªng ®−îc ®Þnh nghÜa nh− hµm m-files nh−ng ®−îc ®Þnh nghÜa
bªn d−íi hµm chÝnh (Hµm ®Þnh nghÜa ®Çu tiªn).
VÝ dô: avg lµ hµm riªng trong file STAT.M:
function [mean,stdev] = stat(x)
%STAT Interesting statistics.
n = length(x);
mean = avg(x,n);
stdev = sqrt(sum((x-avg(x,n)).^2)/n);
%-------------------------
function mean = avg(x,n)
%MEAN subfunction
mean = sum(x)/n;
C¸c hµm riªng cã thÓ gäi lÉn nhau.
a.Hµm con.
Hµm M-file cã thÓ chøa m· cña nhiÒu h¬n mét hµm. Hµm ®Çu tiªn trong file gäi lµ
hµm s¬ cÊp (primary), hµm cã tªn M-file. C¸c hµm thªm trong filegäi lµ c¸c hµm con
mµ chØ thÊy ®−îc bëi fµm s¬ cÊp hoÆc c¸c hµm con trong cïng file nµy.
Mçi hµm con b¾t ®Çu víi dßng ®Þnh nghÜa hµm cña nã. C¸c hµm theo sau trùc tiÕp
lÉn nhau. C¸c hµm con kh¸c nhau cã thÓ xuÊt hiÖn bÊt k× thø tù nµo, n»m sau hµm s¬
cÊp- xuÊt hiÖn ®Çu tiªn.
function [avg,med] = newstats(u)
% NEWSTATS Find mean and median with internal functions.
n = length(u);
avg = mean(u,n);
med = median(u,n);
function a = mean(v,n)
% Calculate average.
a = sum(v)/n;
function m = median(v,n)
% Calculate median.
w = sort(v);
if rem(n,2) == 1
m = w((n+1)/2);
else
m = (w(n/2)+w(n/2+1))/2;
end
C¸c hµm con mean vµ median tÝnh to¸n trung b×nh vµ ®iÓm gi÷a cña danh s¸ch vµo.
Hµm s¬ cÊp newstats x¸c ®Þnh chiÒu dµi cña danh s¸ch vµ tÝnh to¸n c¸c hµm con,
truyÒn chóng cho danh s¸ch ®é dµi n. C¸c hµm trong cïng M-file kh«ng thÓ truy cËp
c¸c biÕn cïng tªn trõ phi b¹n khai b¸o nã lµ toµn côc (global) bªn trong c¸c hµm thÝch
hîp (pertinent), hoÆc truyÒn chóng lµm tham sè. Ngoµi ra, the help facility can only
access the primary function in an M-file.
Khi b¹n gäi hµm ë bªn trong M-file, MATLAB kiÓm tra tr−íc tiªn xem nã cã lµ
hµm con kh«ng. Sau ®ã kiÓm tra nã lµ hµm riªng (m« t¶ ë phÇn tiÕp sau) cã tªn hµm
®ã kh«ng, vµ sau ®ã t×m M-file chuÈn trªn ®−êng dÉn t×m kiÕm file. Do nã kiÓm tra
hµm con ®Çu tiªn, b¹n cã thÓ thay thÕ c¸c hµm M-files ®· cã b»ng hµm con cã cïng
tªn, vÝ dô, mean m· ho¸ ë trªn. Tªn hµm ph¶i duy nhÊt bªn trong M-file.
Page 34 of 62
b.Hµm riªng
C¸c hµm riªng lµ c¸c hµm hiÖn cã trong th− môc ®Æc biÖt cã tªn private. Chóng chØ
thÊy ®−îc víi c¸c hµm trong th− môc cha. VÝ dô, gi¶ sö b¹n cã th− môc newmath trong
®−êng dÉn t×m kiÕm cña MATLAB. Th− môc con private cña th− môc newmath cã thÓ
chøa c¸c hµm mµ chØ cã c¸c hµm trong th− môc newmath
newmath míi cã thÓ gäi ®−îc. Do c¸c
hµm riªng lµ kh«ng thÊy ®−îc bªn ngoµi th− môc cha, chóng cã thÓ sö dông c¸c tªn
hµm trïng nhau víi hµm ë c¸c th− môc kh¸c. §iÒu nµy h÷u Ých khi b¹n muèn t¹o
riªng m×nh phiªn b¶n hµm thùc trong khi vÉn duy tr× hµm gèc ë th− môc kh¸c. Do
MATLAB t×m kiÕm c¸c hµm tr−íc c¸c hµm M-file chuÈn, nã sÏ t×m hµm riªng cã tªn
test.m tr−íc c¸c hµm kh«ng riªng t− tªn test.m. B¹n cã thÓ t¹o cho riªng b¹n th− môc
riªng t− ®¬n gi¶n b»ng c¸ch t¹o th− môc cã tªn private qua c¸c thñ tôc chuÈn ®Ó t¹o
th− môc hay folder trªn m¸y tÝnh cña b¹n. Kh«ng nªn ®Æt c¸c th− môc riªng t− lªn
®−êng dÉn cña b¹n.
Page 35 of 62
» load mydata s;
T¶i tõ file d÷ liÖu nhÞ ph©n biÕn sµ f.
» load mydata;
T¶i tõ file d÷ liÖu nhÞ ph©n tÊt c¶ biÕn trong "mydata.mat".
any(X) Hµm cho gi¸ trÞ 1 nÕu mét phÇn tö cña X kh¸c 0
all(X) Hµm cho gi¸ trÞ 1 nÕu tÊt c¶ phÇn tö cña X kh¸c 0
find(X) Hµm tr¶ l¹i vector chøa chØ sè c¸c phÇn tö kh¸c 0 cña X.
Có ph¸p: [i,j]=find(X), hoÆc p=find(X) (t−¬ng tù find(X(:)).
isNaN(X) Tr¶ vÒ ma trËn víi c¸c phÇn tö 0 nÕu c¸c phÇn tö cña X lµ h÷u h¹n, tr¶
vÒ phÇn tö 1 nÕu phÇn tö lµ NaN.
isinf(X) Tr¶ vÒ ma trËn víi c¸c phÇn tö 0 nÕu c¸c phÇn tö cña X lµ h÷u h¹n, tr¶
Page 36 of 62
vÒ phÇn tö 1 nÕu phÇn tö lµ Inf.
isfinite(X) Tr¶ vÒ ma trËn víi c¸c phÇn tö 1 nÕu c¸c phÇn tö cña X lµ h÷u h¹n, tr¶
vÒ phÇn tö 0 nÕu phÇn tö lµ Inf foÆc NaN.
isempty(X) Tr¶ vÒ gi¸ trÞ 1 nÕu X lµ ma trËn rçng, vµ 0 nÕu ng−îc l¹i.
ischar(X) Tr¶ vÒ 1 nÕu X lµ ma trËn kÝ tù, vµ 0 nÕu X lµ ma trËn d¹ng kh¸c.
iscell(X) Tr¶ vÒ 1 nÕu X lµ m¶ng khèi, vµ 0 nÕu X cã d¹ng kh¸c.
islogical(X) Tr¶ vÒ 1 nÕu X lµ ma trËn Logic, vµ 0 nÕu X cã d¹ng kh¸c.
isstruct(X) Tr¶ vÒ 1 nÕu X lµ biÕn cÊu tróc, vµ 0 nÕu X cã d¹ng kh¸c.
isnumeric(X) Tr¶ vÒ 1 nÕu X lµ biÕn m¶ng sè, vµ 0 nÕu X cã d¹ng kh¸c.
isobject(X) Tr¶ vÒ 1 nÕu X lµ biÕn ®èi t−îng, vµ 0 nÕu X cã d¹ng kh¸c.
issparse(X) Tr¶ vÒ 1 nÕu X lµ biÕn m¶ng rêi r¹c, vµ 0 nÕu X cã d¹ng kh¸c.
strcmp(s1,s2) So s¸nh 2 x©u s1 vµ s2. Gi¸ trÞ 1 ®−îc tr¶ vÒ nÕu 2 x©u gièng hÖt nhau
vµ b»ng 0 nÕu 2 x©u cã sù kh¸c nhau. Cã sù ph©n biÖt ch÷ hoa vµ ch÷
th−êng, c¸c kÝ tù ®Çu dßng vµ c¸c dÊu c¸ch cã trong x©u.
Page 37 of 62
Cho phÐp thùc hiÖn nhãm lÖnh A nÕu biÓu thøc ®iÒu kiÖn ®óng, ng−îc l¹i thùc
hiÖn nhãm lÖnh B.
d. LÖnh elseif.
Khi ta cã cÊu tróc nhiÒu lùa chän ®iÒu kiÖn if-else, rÊt khã x¸c ®Þnh nhãm lÖnh
nµo sÏ ®−îc thùc hiÖn khi biÓu thøc logic ®óng hoÆc sai. Trong tr−êng hîp nµy, sö
dông mÖnh ®Ò elseif sÏ lµm ch−¬ng tr×nh trë nªn trong s¸ng vµ dÔ hiÓu.
Có ph¸p:
if <biÓu thøc logic 1>
nhãm lÖnh A;
elseif <biÓu thøc logic 2>
nhãm lÖnh B;
elseif <biÓu thøc logic 3>
nhãm lÖnh C;
else
nhãm lÖnh D;
end
NÕu biÓu thøc 1 ®óng th× thùc hiªn c©u lÖnh A, nÕu biÓu thøc 1 sai vµ biÓu thøc 2
®óng th× chØ cã nhãm lÖnh B ®−îc thùc hiÖn. nÕu biÓu thøc 1,2 sai vµ biÓu thøc 3 ®óng
th× chØ cã nhãm lÖnh C ®−îc thùc hiÖn. NÕu cã tõ hai biÓu thøc logic trë nªn ®óng th×
biÓu thøc logic ®Çu tiªn x¸c ®Þnh nhãm lÖnh sÏ ®−îc thùc hiÖn. NÕu kh«ng cã biÓu
thøc ®iÒu kiÖn nµo ®óng th× kh«ng cã lÖnh nµo trong cÊu tróc if-elseif ®−îc thi hµnh vµ
nÕu cã thªm mÖnh ®Ò else th× nhãm lÖnh D ®−îc thi hµnh.
VÝ du:
if I == J
A(I,J) = 2;
elseif abs(I-J) == 1
A(I,J) = -1;
else
A(I,J) = 0;
end
e. LÖnh ®iÒu kiÖn vµ break
Có ph¸p: if <biÓu thøc logic>, break, end
Tõ kho¸ break víi c©u lÖnh if ë th©n vßng lÆp cho phÐp tho¸t ra khái vßng lÆp
nÕu <biÓu thøc logic> trong c©u lÖnh ®iÒu kiÖn lµ ®óng, ng−îc l¹i sÏ thùc hiÖn nhãm
lÖnh tiÕp theo trong vßng lÆp ®ã. LÖnh break chØ cã t¸c dông ®èi víi vßng lÆp chøa
lÖnh nµy, c¸c vßng lÆp bªn ngoµi kh«ng bÞ dõng.
Page 38 of 62
statement, ..., statement
END
Thùc hiÖn nhãm lÖnh theo biÓu thøc ®iÒu kiÖn lùa chän switch_expr. ChØ c¸c c©u
lÖnh cã switch_expr s¸nh ®óng víi biÓu thøc ë CASE case_expr ®Çu tiªn sÏ ®−îc thi
hµnh. Khi biÓu thøc ë case cã d¹ng cell, bÊt k× phÇn tö nµo trong case_expr s¸nh ®óng
víi switch_expr th× nhãm lÖnh ë CASE ®ã sÏ ®−îc thi hµnh. Khi kh«ng cã biÓu thøc
nµo sau case_expr nµo s¸nh ®óng switch_expr c©u lÖnh s©u OTHERWISE sÏ ®−îc thi
hµnh (nÕu cã).
switch_expr cã thÓ lµ v« h−íng hoÆc x©u kÝ tù. switch_expr lµ v« h−íng s¸nh
®óng víi case_expr nÕu switch_expr==case_expr. switch_expr lµ x©u kÝ tù s¸nh
®óng víi case_expr nÕu strcmp(switch_expr,case_expr) tr¶ vÒ 1 (true).
VÝ dô (gi¶ sö METHOD lµ biÕn x©u kÝ tù):
switch lower(METHOD)
case {'linear','bilinear'}
disp('Method is linear')
case 'cubic'
disp('Method is cubic')
case 'nearest'
disp('Method is nearest')
otherwise
disp('Unknown method.')
end
Page 39 of 62
FOR J = 1:N,
A(I,J) = 1/(I+J-1);
END
END
FOR S = 1.0: -0.1: 0.0, END lÆp c¸c b−íc víi S gi¶m theo mçi b−íc lµ -0.1
FOR E = EYE(N), ... END g¸n E víi gi¸ trÞ lµ c¸c vector ®¬n vÞ ®é dµi N.
3.6.1 HiÓn thÞ lêi nh¾c cho viÖc nhËp th«ng tin tõ bµn phÝm
Hµm input hiÓn thÞ lêi nh¾c vµ chê ph¶n håi cña ng−êi dïng. Nã cã có ph¸p lµ:
n = input(’prompt_string’)
Hµm hiÓn thÞ x©u kÝ tù prompt_string, chê cho ®Õn khi cã nhËp liÖu bµn phÝm, vµ
sau ®ã tr¶ vÒ gi¸ trÞ nhËp tõ bµn phÝm. Khi ng−êi dïng nhËp biÓu thøc, hµm −íc l−îng
biÓu thøc vµ tr¶ vÒ gi¸ trÞ cña nã. Hµm nµy cã t¸c dông cho viÖc cµi ®Æt c¸c øng dông
®iÒu khiÓn menu.
input còng tr¶ vÒ x©u kÝ tù ®−îc nhËp, h¬n lµ gi¸ trÞ sè. §Ó nhËn x©u kÝ tù, thªm 's'
vµo danh s¸ch ®èi sè hµm.
name = input(’Enter address: ’,’s’);
Page 40 of 62
Vµi M-file lîi dông (benefit from) viÖc t¹m ng−ng gi÷a c¸c b−íc thi hµnh. VÝ dô,
file kÞch b¶n petals.m t¹m ng−ng gi÷a c¸c ®å thÞ nã t¹o, cho phÐp ng−êi dïng hiÓn thÞ
®å thÞ chõng nµo ng−êi dïng bÊm phÝm ®Ó chuyÓn sang ®å thÞ tiÕp theo.
% An M–file script to produce "flower petal" plots
theta = –pi:0.01:pi;
rho(1,:) = 2*sin(5*theta).^2;
rho(2,:) = cos(10*theta).^3;
rho(3,:) = sin(theta).^2;
rho(4,:) = 5*cos(3.5*theta).^3;
for i = 1:4
polar(theta,rho(i,:));
pause;
end
C©u lÖnh pause, kh«ng cã ®èi sè nµo, dõng thi hµnh cho ®Õn khi ng−êi dïng bÊm
phÝm. T¹m ng−ng trong n gi©y, sö dông:
pause(n)
M-file nµy:
1 CÊt ®èi sè vµo a, b, q, vµ r lªn file-MAT trong kh«ng gian lµm viÖc b»ng c©u
lÖnh save.
2 Sö dông to¸n tö giao diÖn bªn ngoµi ®Ó truy cËp ch−¬ng tr×nh C, hay Fortran cã
tªn gareqn sö dông c¸c biÕn workspace ®Ó thùc hiÖn tÝnh to¸n cña nã. Hµm
gareqn viÕt kÕt qu¶ trë l¹i file-MAT gardata.
3 T¶i file-MAT gardata ®Ó lÊy kÕt qu¶.
Page 41 of 62
3 ch−¬ng 4
§å ho¹ 2D
4.1 C¸c phÐp biÕn ®æi ®å ho¹.
Page 42 of 62
PhÐp biÕn ®æi Czichos(1989) ®−îc biÓu diÔn theo c«ng thøc sau: KÝ hiÖu
Cθ≡cos(θ), S≡sin(θ)... ta cã ma trËn quay.
CφCψ − SφCθSψ CφCψ + SφCθSψ SφSθ
R = − SφCψ − CφCθSψ − SφSψ + CφCθCψ CφSθ
Sθ Sψ − Sθ C ψ Cθ
Hµm biÕn ®æi kh«ng gian - c«ng thøc Euler:
function [R,A,B,C]=eulrotate(si,te,fi)
%euler rotation
A=[cos(si) sin(si) 0;-sin(si) cos(si) 0;0 0 1];
B=[cos(fi) 0 sin(fi);0 1 0;-sin(fi) 0 cos(fi)];
C=[1 0 0;0 cos(te) sin(te);0 -sin(te) cos(te)];
R=C*B*A;
4.2 PhÐp biÕn ®æi Affine trong mÆt ph¼ng.
C¸c phÐp biÕn ®æi affine bao gåm: translation, rotation, scalling...
Page 43 of 62
PhÐp biÕn h×nh theo mét tØ lÖ nhÊt ®Þnh. PhÐp tØ lÖ th«ng qua ma trËn S:
Sx 0 0
S = 0 Sy 0
0 0 1
6
square
Ts
5 Rs
Ss
4 Gs
-1
-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Page 44 of 62
-Matlab cung cÊp c¸c hµm vÏ ®å thÞ vµ biÓu ®å tõ m¶ng d÷ liÖu: plot, bar, barh, stairs,
errorbar, fill, area, hist, pie, scatter, stem, pareto.
plot(x1,y1,s1,x2,y2,s2,...) víi xi,yi lµ c¸c vector, hoÆc ma trËn , ph¶i ®ñ 2 tham sè cho x vµ y;
si-lµ kiÓu mµu,®iÓm,®−êng; xem 'linpsec'.
plot(x,A) -nÕu k=m, vÏ c¸c cét cña A theo x.
-nÕu k=n, vÏ c¸c hµng cña A theo x
plot(A,x) -nÕu k=m, vÏ x theo c¸c cét cña A.
-nÕu k=n, vÏ x theo c¸c hµng cña A.
plot(y)≡plot(1:length(y),y);
plot(z)≡plot(real(z),imag(z));
plot(A)≡plot(1:size(A,1),A);plot(1:m,A);
plot(A,B)
plot(A,B)-
B)-vÏ c¸c cét cña B theo c¸c cét cña A.
x,y-c¸c
x,y vector kÝch th−íc k;
A,B-c¸c
A,B ma trËn kÝch th−íc mxn;
z-sè phøc.
NÕu kh«ng chØ ®Þnh nÐt vÏ si, plot sÏ tù ®éng vÏ víi ®−êng liÒn nÐt, mµu theo thø tù b¶ng mµu.
Khi tham sè lµ ma trËn, chØ ®Þnh nÐt vÏ lµ chung cho tÊt c¶ c¸c ®−êng d÷ liÖu ma trËn.
Page 45 of 62
arrows emanating from equally spaced points along a horizontal axis.
FEATHER is useful for displaying direction and magnitude data that
is collected along a path.
4.3.4 LÖnh ®iÒu khiÓn cöa sæ ®å ho¹
figure(fig) HiÓn thÞ cöa sæ ®å ho¹ cã sè lµ fig, cöa sæ nµy sÏ lµ cöa sæ hiÖn hµnh,
nÕu kh«ng tån t¹i cöa sæ cã sè fig, nã sÏ t¹o cöa sæ ®å ho¹ míi.
clf Xo¸ toµn bé ®å ho¹ figure hiÖn hµnh.
subplot(m,n,p) Chia mµn h×nh ®å ho¹ lµm m hµng, n cét, p (1..mxn) lµ phÇn cöa sæ hiÖn
hµnh; p lµ sè thø tù tÝnh tõ tr¸i qua ph¶i, tõ trªn xuèng.
subplot T−¬ng ®−¬ng subplot(1,1,1).
hold on LÖnh gi÷ l¹i ®å ho¹ cöa sæ hiÖn hµnh, c¸c lÖnh vÏ tiÕp theo sÏ vÏ thªm
vµo chø kh«ng xo¸ ®i c¸c thùc thÓ cò.
hold off MÆc ®Þnh khi khëi t¹o cöa sæ ®å ho¹, c¸c vÏ míi sÏ thay thÕ c¸c thùc thÓ
míi trªn phÇn cöa sæ hiÖn hµnh.
hold chuyÓn tr¹ng th¸i tõ on sang off vµ ng−îc l¹i.
ishold Tr¶ vÒ 1 nÕu tr¹ng th¸i ®å ho¹ hiÖn hµnh lµ hold on, 0 nÕu lµ hold off.
grid on BËt vÏ l−íi trªn phÇn cöa sæ ®å ho¹ hiÖn hµnh.
grid off T¾t vÏ l−íi trªn phÇn cöa sæ ®å ho¹ hiÖn hµnh.
grid ChuyÓn tr¹ng th¸i lÖnh grid tõ on sang off vµ ng−îc l¹i.
zoom on Phãng to ®å ho¹ 2 chiÒu b»ng c¸c phÝm tr¸i chuét trªn cöa sæ ®å ho¹.
PhÝm chuét ph¶i ®Ó thu nhá. Cho phÐp phãng to phÇn lùa b»ng "kÐo vµ
th¶" chuét
zoom off Lo¹i bá lÖnh zoom.
zoom ChuyÓn tr¹ng th¸i lÖnh zoom gi÷a on vµ off.
zoom out §−a ®å ho¹ vÒ tr¹ng th¸i ban ®Çu.
axis Tr¶ vÒ kho¶ng giíi h¹n phÇn ®å ho¹ hiÖn hµnh.
kh«ng gian 2D lµ [xmin xmax ymin ymax]
kh«ng gian 3D lµ [xmin xmax ymin ymax zmin zmax]
axis(lim) X¸c lËp miÒn giíi h¹n phÇn ®å ho¹ hiÖn hµnh, kh«ng gian 2D (3D) lim lµ
vector 4 (6) thµnh phÇn [xmin xmax ymin y max] ([...zmin zmax])
axis(axis) Gi÷ miÒn giíi h¹n ®å ho¹ hiÖn hµnh, kh«ng cho Matlab tù ®éng thay ®æi
axis manual khi thªm thùc thÓ míi vµo cöa sæ ®å ho¹ hiÖn hµnh.
axis ctrl §−a ra lÖnh tuú thuéc tham sè ctrl
víi ctrl lµ:
auto Cho phÐp Matlab tù ®éng x¸c lËp miÒn giíi h¹n.
tight Giíi h¹n miÒn giíi h¹n b»ng gi¸ trÞ lín nhÊt vµ nhá nhÊt cña d÷ liÖu.
equal Giíi h¹n miÒn vÏ c¸c trôc to¹ ®é b»ng nhau, b»ng gi¸ trÞ lín nhÊt.
ij Quay trôc y víi h−íng tõ trªn xuèng cho chiÒu d−¬ng,.
xy §−a c¸c trôc x, y vÇ h−íng mÆc ®Þnh
image Nh− axis equal nh−ng vÏ h×nh bao khíp víi d÷ liÖu.
square §−a giíi h¹n miÒn thµnh h×nh vu«ng.
normal Tr¶ cöa sæ ®å ho¹ vÒ kÝch th−íc ban ®Çu.
on HiÓn thÞ c¸c trôc, c¸c nh·n, c¸c dÊu chia ®o¹n, l−íi (nÕu cã) vµ mµu nÒn.
off DÊu c¸c trôc ghi kich th−íc, l−íi (nÕu cã) vµ t¾t mµu nÒn.
Page 46 of 62
4.3.5 V¨n b¶n trong cöa sæ ®å ho¹.
title(str) ViÕt dßng tiªu ®Ò trªn ®Ønh, c¨n gi÷a.
xlabel(str) ViÕt tªn nh·n cho c¸c trôc x,y,z. Dßng ch÷ ®−îc c¨n gi÷a.
ylabel(str)
zlabel(str)
text(x,y,(z,)str) ViÕt x©u str t¹i vÞ trÝ x,y (z).
gtext(str) ViÕt x©u str t¹i vÞ trÝ kÝch chuét.
legend(s1,s2,...) §−a ra chu thÝch lµ c¸c x©u kÝ tù s1,s2,... víi kiÓu ®−êng theo thø tù
c¸c thùc thÓ ®· vÏ tr−íc ®ã.
legend(s1,l1,s2,l2,...) §−a ra chu thÝch lµ c¸c x©u kÝ tù s1,s2,... víi kiÓu ®−êng cho bëi l1,l2,...
legend off Lo¹i bá chøc n¨ng legend
Ghi chó:C¸c lÖnh trªn cã t¸c dông t¹i phÇn cöa sæ ®å ho¹ hiÖn thêi.
4.3.6 §äc d÷ liÖu tõ cöa sæ ®å ho¹.
LÖnh ginput cho phÐp lÊy d÷ liÖu tõ phÇn cöa sæ ®å ho¹ hiÖn hµnh.
[x,y]=ginput
[x,y]=ginput §äc vµo to¹ ®é vµ tr¶ kÕt qu¶ cho 2 vector x,y (hoÆc ma trËn xy,
xy =ginput víi to¹ ®é lµ c¸c hµng). VÞ trÝ ®iÓm ®−îc x¸c ®Þnh bëi chuét (kÝch
chuét hoÆc nhÊn bµn phÝm), Ên phÝm "enter" kÕt thóc ®äc d÷ liÖu.
[x,y]=ginput(n) §äc n d÷ liÖu. NhÊn phÝm "enter" nÕu muèn kÕt thóc sím h¬n.
xy =ginput(n)
[x,y,ch]=ginput(...) x,y lµ c¸c to¹ ®é ®äc ®−îc.
ch-m¶ng kÝ tù t−¬ng øng 1-phÝm chuét tr¸i, 2-phÝm chuét ph¶i, 3-
phÝm gi÷a, m· kÝ tù-kÝ tù ®−îc nhÊn.
[x,y,z,ch]=ginput(...) t−¬ng tù cho 3D
xyz =ginput(...)
waitforbuttonpress Dõng Matlab cho ®Õn khi cã t¸c ®éng lªn chuét hoÆc bµn phÝm.
NÕu nhÊn chuét tr¶ gi¸ trÞ 0, nhÊn bµn phÝm tr¶ vÒ 1.
Page 47 of 62
Ch−¬ng 5
§å ho¹ 3D
5.1. Hµm ®ång møc (contour).
Hµm contour trong kh«ng gian 2D vµ 3D cho c¸c mÆt z=f(x,y) t−¬ng øng víi 2
hµm contour vµ contour3. Hai hµm nµy chØ cã thÓ sö dông l−íi ®iÓm ch÷ nhËt.
C¸ch sö dông hµm t¹o ®−êng møc nh− sau:
contour(Z) VÏ c¸c ®−êng ®ång møc ma trËn Z. Hµm contour vÏ c¸c ®−êng møc cña
Z theo 10 møc cho bëi vector V (®−îc chän tù ®éng).
contour(Z,N) N lµ v« h−íng vÏ N ®−êng møc.
N lµ vector vÏ sè ®−êng møc K=length(N), c¸c møc theo N(i), i=1..K.
contour(X,Y,Z) VÏ ®−êng ®ång møc theo gi¸ trÞ ma trËn Z, C¸c th−íc to¹ ®é x¸c ®Þnh
contour(...,N) trªn 2 trôc t−¬ng øng cho bëi X,Y tËp hîp to¹ ®é ®iÓm (x,y).
N lµ v« h−íng vÏ N ®−êng møc, c¸c møc ®−îc chon tù ®éng.
N lµ vector vÏ c¸c møc theo N(i), i=1..K.
contour(....'st') VÏ contour víi kiÓu mµu, nÐt vÏ theo chØ ®Þnh bíi "st".
countourf(...) T« mµu c¸c mÆt møc.
contour3(...) VÏ c¸c møc trong kh«ng gian 3D.
[C,h]=contour(...) Tr¶ vÒ ma trËn C, lµ ma trËn 2 hµng cña c¸c ®−êng ®ång møc. Mçi bé
[C,h]=contourf(...) phËn trong C chøa gi¸ trÞ cña møc, sè l−îng cÆp ®iÓm (x,y), vµ gi¸ trÞ
[C,h]=contour3(...) c¸c cÆp ®iÓm cña chóng. C¸c phÇn ®−îc nèi tiÕp nh− sau
sö dông kÕt hîp: C = [møc1 x1 x2 x3 ... møc2 x2 x2 x3 ...;
clabel(C,h), sècÆp1 y1 y2 y3 ... sècÆp2 y2 y2 y3 ...]
colorbar; cho phÐp ma trËn C ®−îc tr¶ vÒ tõ hµm contuorC.
in gi¸ trÞ t¹i ®−êng h lµ vector cét n¾m ®iÒu khiÓn c¸c ®èi t−îng LINE hoÆc PATCH cho mçi
møc. ®−êng. C¶ C vµ h ®−îc sö dông lµm tham sè cho CLABEL. thuéc tÝnh
UserData cña mçi ®èi t−îng cã chøa gi¸ trÞ cao ®é cho mçi ®−êng ®ång
møc.
clabel(C,h,'manual') Cho phÐp ng−êi sö dông in gi¸ trÞ ®−êng møc ®−îc chän t¹i ®iÓm con trá
t¸c ®éng, sö dông bµn phÝm vµ chuét ®Ó chän, tiÕn tr×nh kÕt thóc khi
nhÊn enter.
Page 48 of 62
1 2 3
v =
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
C¸c hµm t¹o l−íi:
[u,v]=meshgrid(x,y) T¹o l−íi 2 chiÒu tõ c¸c vector x,y.
[u,v]=meshgrid(x) T¹o l−íi 2 chiÒu vu«ng ®Òu.
[u,v,w]=meshgrid(x,y,z) T¹o l−íi 3 chiÒu tõ c¸c vector x, y ,z.
[x,y,z]=cylinder(r,n) T¹o 3 l−íi px(n+1) sinh mÆt trô hoÆc mÆt nãn cã chiÒu cao ®¬n vÞ,
rp chøa vector b¸n kÝnh c¸c møc cña trô (nãn), n+1 sè diÓm chia
trªn ®−êng trßn. mÆc ®Þnh n=20, r=[1 1]. p=length(r), p>1.
[x,y,z]=sphere(n) T¹o 3 l−íi (n+1)x(n+1) sinh mÆt cÇu ®¬n vÞ, mÆc ®Þnh n=20;
cylinder(r,n),sphere(n)
cylinder(r,n),sphere(n) kh«ng tham sè ra sÏ vÏ mÆt.
» cylinder([0:.1:.5],40);
» sphere;
0.8
0.6
0.4
0.2
0
0.5
0.5
0
0
-0.5 -0.5
Page 49 of 62
5.3. §å ho¹ 3D.
Matlab tù chän gãc nh×n cho hµm plot3. X¸c ®Þnh mµu s¾c, nÐt vÏ theo biÕn
string.
Page 50 of 62
meshc(...) T−¬ng tù mesh vµ vÏ thªm c¸c ®−êng ®ång møc trªn mÆt ph¼ng xOy.
meshz(...) T−¬ng tù mesh, vÏ thªm l−íi ë biªn xuèng vÞ trÝ thÊp nhÊt.
waterfall(...) T−¬ng tù lÖnh mesh nh−ng l−íi ®−îc vÏ theo 1 h−íng.
§Ó kh¶o s¸t h−íng thø 2 c¸c ma trËn chuyÓn vÞ cña nã.
hidden on/off Kh«ng vÏ (hoÆc vÏ ra) c¸c ®−êng khuÊt sau mÆt l−íi.
hidden ChuyÓn tr¹ng th¸i hidden tõ on sang off vµ ng−îc l¹i.
Page 51 of 62
mµu ®Çu tiªn vµ cuèi cïng trong b¶ng mµu; mµu cho c¸c phÇn tö kh¸c
®−îc x¸c ®Þnh theo tØ lÖ phÇn d− cña b¶ng mµu.
PCOLOR(X,Y,C), víi X vµ Y lµ c¸c vector hay ma trËn, cho ta x¸c ®Þnh
l−íi m¶ng mµu.
fill3(X,Y,Z,C) T« mµu c¸c mÆt ®a gi¸c 3D. X, Y,Z lµ c¸c vector, C mµu t«.
C¸c ®Ønh cña ®a gi¸c bëi bé 3 X, Y and Z. NÕu cÇn, ®a gi¸c cã thÓ ®−îc
bao kÝn bëi ®iÓm cuèi cïng nèi víi ®iÓm ®Çu tiªn. NÕu lµ kÝ tù C 'r', 'g', 'b',
'c', 'm', 'y', 'w', 'k', hoÆc vector hµng RGB 3 phÇn tö, [r g b], ®a gi¸c ®−îc
t« bëi mµu chØ ®Þnh nµy.
Khi C lµ vector cã chiÒu dµi nh− X, Y vµ Z, c¸c phÇn tö cña nã ®−îc x¸c
®Þnh ®é lín bëi CAXIS vµ ®−îc sö dông lµm chØ sè cho COLORMAP®Ó x¸c
®Þnh mµu cho c¸c ®Ønh; mµu bªn trong ®a gi¸c ®−îc néi suy tuyÕn tÝnh
theo mµu c¸c ®Ønh.
NÕu X, Y and Z lµ c¸c ma trËn cïng kÝch th−íc, øng víi mçi cét cho mét
®a gi¸c. Lóc nµy, nÕu C lµ vector hµng mçi mµu øng víi mét ®a gi¸c
ph¼ng, nÕu C lµ ma trËn sÏ cho ta néi suy mµu cho ®a gi¸c.
NÕu trong sè X, Y hay Z lµ ma trËn vµ c¸c thµnh phÇn cßn l¹i lµ c¸c
vector cét b»ng sè hµng cña ma trËn, c¸c ®èi sè vector cét sÏ sao
chÐp c¸c cét ®Ó t¹o thµnh ma trËn cã cïng kÝch th−íc.
FILL3(X1,Y1,Z1,C1,X2,Y2,Z2,C2,...) lµ d¹ng kh¸c cho phÐp t« mµu nhiÒu
vïng.
Mét vµi vÝ dô:
+vÏ mÆt cong z=sinx+cosy+cos(x-y), víi 0<=x,y≤pi/2;
» [x,y]=meshgrid(linspace(-pi,pi,50));
» z=sin(x)+cos(y)+cos(x-y);
» surfc(x,y,z);shading interp;axis tight;xlabel('x');ylabel('y');zlabel('z');
» title('z=sinx+cosy+cos(x-y); -pi<=x,y<=pi');
H×nh
Page 52 of 62
H×nh
» pcolor(x,y,z);shading interp;xlabel('x');ylabel('y');title('pcolor(x,y,z)');colorbar;
H×nh
H×nh5
Page 53 of 62
Cho ®å thÞ hµm sè y=f(x); vÏ ®å thÞ 3D t¹o bëi ®−êng y=f(x) xoay quanh trôc Ox
vµ trôc Oy:
» linspace(a,b);
» y=f(x);
» fi=linspace(0,2*pi);
%xoay quanh trôc 0y
» [r,fr]=meshgrid(x,fi);
» [y1,t]=meshgrid(y,fi);
» z1=r.*sin(fr);
» x1=r.*cos(fr);
» mesh(x1,y1,z1);
%xoay quanh trôc 0x
» [r,fr]=meshgrid(y,fi);
» [x2,t]=meshgrid(x,fi);
» z2=r.*sin(fr);
» y2=r.*cos(fr);
» mesh(x2,y2,z2);
VÝ dô víi hµm: y=x*sin(x) víi 0≤ 2/3π
0≤x ≤2/3 π
» x=linspace(0,2/3*pi,30);
» fi=linspace(0,2*pi,30);
» f=inline('x.*sin(x)');
» y=f(x);
C¸c lÖnh ®−îc viÕt theo tø tù ë trªn.
» plot(x,y);xlabel('x');ylabel('y');axis tight;
1.8
1.6
1.4
1.2
1
y
0.8
0.6
0.4
0.2
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
x
Page 54 of 62
5.6. §iÓm nh×n vµ phÐp phèi c¶nh.
ViÖc quan s¸t ®å ho¹ sÏ dÔ dµng vµ gÇn víi thùc tÕ h¬n nÕu ®−îc nh×n tõ c¸c gãc
®é kh¸c nhau. LÖnh view dïng ®Ó thay ®æi gãc nh×n trªn mµn h×nh ®å ho¹. Nã cho
phÐp kh¶ n¨ng x¸c ®Þnh ®ång thêi c¶ ®iÓm nh×n lÉn gãc, ph−¬ng ®é nh×n vµ ®é cao.
PhÐp chiÕu phèi c¶nh cßn cã thÓ thay ®æi th«ng qua lªnh viewmtx.
Page 55 of 62
slice-§å
slice ho¹ mÆt c¾t h×nh khèi.
SLICE(X,Y,Z,V,Sx,Sy,Sz) vÏ c¸c l¸t däc theo c¸c h−íng x,y,z t¹i c¸c ®iÓm trong c¸c vector
Sx,Sy,Sz. C¸c m¶ng X,Y,Z ®Þnh nghÜa c¸c to¹ ®é cho V vµ ph¶i cã gi¸ trÞ ph©n biÖt
(monotonic) vµ lµ l−íi 3D (®−îc t¹o bëi MESHGRID). Mµu t¹i mçi ®iÓm sÏ ®−îc x¸c ®Þnh
theo néi suy 3D trong khèi V. V ph¶i lµ m¶ng khèi MxNxP.
SLICE(X,Y,Z,V,XI,YI,ZI) vÏ c¸c mÆt c¾t qua khèi däc theo mÆt x¸c ®Þnh bëi XI,YI,ZI.
SLICE(V,Sx,Sy,Sz) hay SLICE(V,XI,YI,ZI) se lÊy X=1:N, Y=1:M, Z=1:P.
SLICE(...,'method') chØ ®Þnh ph−¬ng ph¸p néi suy ®−îc sö dông. 'method' cã thÓ lµ 'linear',
'cubic', hay 'nearest'. MÆc ®Þnh lµ 'linear'.
H = SLICE(...) tr¶ l¹i vector ®Ó ®iÒu khiÓn c¸c ®èi t−îng SURFACE.
VÝ dô:
Quan s¸t hµm x*exp(-x^2-y^2-z^2) qua miÒn -2 < x < 2, -2 < y < 2, -2 < z < 2,
[x,y,z] = meshgrid(-2:.2:2, -2:.25:2, -2:.16:2);
v = x .* exp(-x.^2 - y.^2 - z.^2);
slice(x,y,z,v,[-1.2 .8 2],2,[-2 -.2])
Page 56 of 62
» surf(u,v,z); » shading flat; » shading interp
colormap-b¶ng
colormap x¸c ®Þnh (look-up) mµu.
colormap(map) ®Æt s¬ ®å mµu map cho figure hiÖn hµnh.
colormap('default') ®Æt s¬ ®å mµu cña h×nh hiÖn t¹i lµ s¬ ®å mµu jet.
jet
map=colormap lÊy s¬ ®å mµu hiÖn hµnh. C¸c gi¸ trÞ trong miÒn [0,1].
S¬ ®å mµu lµ ma trËn cã sè hµng tuú ý vµ ph¶i cã 3 cét. Mçi hµng thÓ hiÖn cho mét mµu, víi
c¸c phÇn tö cét ®Çu tiªn x¸c ®Þnh c−êng ®é ¸nh s¸ng ®á (red), c¸c phÇn tö cét thø 2, 3 x¸c
®Þnh c−êng ®é ¸nh s¸ng xanh l¸ (green) vµ xanh d−¬ng (blue). C−êng ®é mµu x¸c ®Þnh trong
kho¶ng [0.0,1.0].
VÝ dô, [0 0 0] lµ mµu ®en, [1 1 1] lµ mµu tr¾ng,
[1 0 0] lµ mµu ®á, [.5 .5 .5] cho mµu x¸m,
[127/255 1 212/255] lµ mµu xanh ngäc biÓn (aquamarine).
C¸c ®èi t−îng ®å ho¹ sö dông ma trËn m· gi¶ mµu (pseudocolor)--c¸c ®èi t−îng surface vµ patch,patch t¹o bëi c¸c
hµm mesh, surf, vµ pcolor--C, víi c¸c gi¸ trÞ trong miÒn [Cmin, Cmax], thµnh m¶ng chØ sè, k, trong miÒn [1, m].
C¸c gi¸ trÞ Cmin vµ Cmax lµ c¸c gi¸ trÞ min(min(C)) and max(max(C)), hoÆc do CAXIS x¸c ®Þnh. PhÐp ¸nh x¹ lµ
tuyÕn tÝnh, Cmin øng víi chØ sè 1 vµ Cmax øng víi chØ sè m. C¸c chØ sè nµy ®−îc sö dông theo s¬ ®å mµu ®Ó x¸c
®Þnh mµu øng víi mçi phÇn tö cña ma trËn.
C¸c s¬ ®å mµu (colormap).
( ).
hsv - S¬ ®å mµu cho d¶i s¾c (Hue) b·o hoµ ch¹y tõ gi¸ trÞ ®á (red) ch¹y qua gi¸ trÞ
mÇu vµng (yellow), xanh l¸ (green), lôc lam (cyan), xanh da trêi (blue), ®á tÝa
(magenta), vµ trë l¹i mµu ®á. S¬ ®å mµu nµy thÝch hîp cho c¸c hµm tuÇn hoµn.
hot - S¬ ®å mµu hçn hîp Black-red-yellow-white.
gray -S¬ ®å mµu d¶i x¸m tuyÕn tÝnh theo m møc ®é.
bone -S¬ ®å mµu d¶i x¸m gam mµu phít xanh.
copper -S¬ ®å mµu s¾c ®ång (xanh ®en sang vµng cam) tuyÕn tÝnh.
pink -S¬ ®å mµu biÕn ®æi theo mµu hång nh¹t.
white -S¬ ®å mµu d¶i toµn mµu tr¾ng.
flag -S¬ ®å mµu xen kÏ ®á tr¾ng xanh d−¬ng vµ ®en.
lines -S¬ ®å mµu d¹ng ®−êng (line).
colorcube -S¬ ®å mµu khèi t¨ng c−êng.
vga -S¬ ®å mµu 16 mµu d¹ng «.
jet -BiÕn thÓ cña HSV. Lµ s¬ ®å mµu cho ¶nh NCSA fluid jet.
prism -S¬ ®å mµu 6 mµu red, orange, yellow, green, blue, violet xen kÏ liªn tiÕp. Cã trËt tù
mµu gièng HSV, nã t¹o liªn tiÕp c¸c b¶n sao d¶i 6 mµu, trong khi mµu HSV biÕn
®æi tr¬n trªn d¶i mµu.
cool -S¬ ®å mµu chuyÓn tiÕp liªn tôc tõ mµu cyan sang magenta.
autumn -S¬ ®å mµu chuyÓn tiÕp liªn tôc tõ red sang yellow.
Page 57 of 62
spring -S¬ ®å mµu chuyÓn tiÕp liªn tôc tõ magenta sang yellow.
winter -S¬ ®å mµu chuyÓn tiÕp liªn tôc tõ blue sang green.
summer -S¬ ®å mµu chuyÓn tiÕp liªn tôc tõ green sang yellow.
VÝ dô (sö dông t−¬ng tù cho c¸c s¬ ®å mµu cßn l¹i):
HSV(M) tr¶ l¹i ma trËn Mx3 s¬ ®å mµu HSV.
HSV tr¶ l¹i s¬ ®å mµu HSV cã kÝch th−íc b»ng s¬ ®å mµu hiÖn t¹i.
colormap(hsv) ®Æt l¹i s¬ ®å mµu HSV cho h×nh (figure) hiÖn hµnh.
5.9 MÆt
6. C¸c hµm to¸n häc trong Matlab.
-Matlab cã 2 lo¹i hµm lµ hµm néi (built in) vµ hµm ngo¹i (user function).
+hµm néi : hµm s½n cã trong matlab.
+hµm ngo¹i : hµm ®−îc viÕt bëi ng−êi sö dông, viÕt ë d¹ng m-file.
Page 58 of 62
log(x),log10(x) loga tù nhiªn, c¬ sè 10 cña x
abs(x) trÞ tuyÖt ®èi cña x
angle(x) tr¶ vÒ gãc pha cña sè phøc x
conj(x) liªn hîp phøc cña x
real(x) phÇn thùc cña sè phøc x
imag(x) phÇn ¶o cña sè phøc x
... ...
****Ghi chó:
®Þnh d¹ng mµu, ®iÓm, nÐt vÏ 'linspec'
Mµu §iÓm §−êng
y yellow . point v triangle (down) - solid
m magenta o circle ^ triangle (up) : dotted
c cyan x x-mark < triangle (left) -. dashdot
r red + plus > triangle (right) -- dashed
g green * star p pentagram
b blue s square h hexagram
w white d diamond
k black
vÝ dô:
'b+-' VÏ t¹i ®iÓm d÷ liÖu vÏ dÊu céng, ®−êng liÒn nÐt víi mµu blue
'rd' VÏ t¹i ®iÓm d÷ liÖu h×nh thoi, mµu ®á, kh«ng cã ®−êng nèi gi÷a c¸c ®iÓm
§Þnh d¹ng mÆc ®Þnh lµ: chÊm ®iÓm, ®−êng nèi ®Æc, c¸c mµu ®−îc chän tù
®éng theo tæ hîp c¸c hµm trong cïng 1 lÖnh vÏ.
Page 59 of 62
1. LÖnh ®å ho¹
AUTO/MANUAL/TIGHT/FILL/IJ/XY/EQUAL/IMAGE/SQUARE/NORMA
L/VIS3D
xlabel(str),ylabel(str),zlabel(str) ViÕt tªn (kÝ hiÖu) trôc to¹ ®é x,y z
TITLE(str) tiªu ®Ò cña ®å thÞ
LEGEND(str1,str2,str3, ...,POS) Ghi chó thÝch cho ®å thÞ ®· vÏ.
LEGEND(H,str1,str2,str3, ...,POS) xem thªm >>help axis
Examples: location POS:
x = 0:.2:12; 0 = Automatic "best"
plot(x,bessel(1,x),x,bessel(2,x),x,bessel(3,x)); placement (least
legend('First','Second','Third'); conflict with data)
legend('First','Second','Third',-1) 1 = Upper right-hand
corner (default)
b = bar(rand(10,5),'stacked'); colormap(summer); 2 = Upper left-hand
hold on corner
x = plot(1:10,5*rand(10,1), 'marker', 'square', 3 = Lower left-hand
'markersize', ... corner
12, 'markeredgecolor','y','markerfacecolor',[.6 4 = Lower right-hand
0 .6],... corner
'linestyle','-','color','r','linewidth',2); hold -1 = To the right of the
off plot
legend([b,x],'Carrots','Peas','Peppers','Green
Beans',...
'Cucumbers','Eggplant')
Page 60 of 62
f1 ( x) = x 3 − 2.3 x 2 + x + 0.2
2
− y2
f 2 ( x, y ) = ( x 2 − y 2 ) e − x
x − 4 x < −2
f 3 ( x) = ( x + 2) 2 − 6 −2≤ x≤3
3
x − 8 x>3
f 4 ( x) = sin( x) − 1.3 cos(4 * x) − 2 sin(3 * cos( x))
+ViÕt dßng lÖnh ®Ó tÝnh gi¸ trÞ biÓu thøc c¸c hµm.
+VÏ ®å thÞ c¸c hµm sè trªn.
+Sö dông hµm eval ®Ó tÝnh gi¸ trÞ c¸c hµm.
+ViÕt hµm inline cho c¸c hµm trªn, sö dông hµm inline ®Ó tÝnh gi¸ trÞ t¹i x=-3:4.
+ViÕt c¸c hµm trªn b»ng hµm m-files.
2
− y2
g ( x, y ) = e − x / floor ( xy )!
xy x + y < −1
F ( x, y ) = ( xy ) 2 −1 ≤ x + y ≤ 3
( xy )
3
x+ y >3
+ViÕt hµm m-files cho c¸c hµm trªn.
+Hµm nµo viÕt ®−îc b»ng hµm inline?, viÕt hµm ®ã.
Page 61 of 62
+TÝnh ®Þnh thøc, ma trËn ®¶o, ®a thøc dÆc tr−ng, nghiÖm cña ®a thøc ®Æc tr−ng,
t×m c¸c vector riªng øng víi nghiÖm ®a thøc ®Æc tr−ng.
+TÝnh h¹ng cña ma trËn, t×m trÞ riªng vµ vector riªng cña ma trËn, so s¸nh
nghiÖm cña ®a thøc ®Æc tr−ng víi c¸c trÞ riªng.
7) Cho :
hÖ ph−¬ng tr×nh phi tuyÕn: cho hÖ ph−¬ng tr×nh phi tuyÕn phøc:
sin 2 ( x) + sin 2 ( y ) − 1 = 0 cos( z1 ) + 2 z2 + 3 = 0
3
z1 + z 2 − 1
4 xy + 0.1x + 0.2 y − 1 = 0 =0
Page 62 of 62