Upload
trannguyenvietthanh
View
241
Download
0
Embed Size (px)
DESCRIPTION
Matlab cơ bản
Citation preview
TRNG I HC LT
KHOA CNG NGH THNG TIN
ThS. Thi Duy Qu
BI GING TM TT
MATLAB CN BN Dnh cho sinh vin khi t nhin cng ngh
(Lu hnh ni b)
Lt 2013
Gio trnh Matlab cn bn Thi Duy Qu
Trang 2
LI NI U
Gio trnh Matlab cn bn c bin son theo chng trnh o to h thng tn ch
ca trng i Hc Lt. Mc ch bin son gio trnh nhm cung cp cho sinh vin
khi t nhin, c bit l sinh vin ngnh Vt l ht nhn nhng kin thc c bn v cc
phng php x l trn ngn ng Matlab.
y l hc phn ln u tin c trin khai, ging dy, tuy tc gi cng c nhiu c
gng trong cng tc bin son nhng chc chn gio trnh cn c nhiu thiu st. Tc gi xin
trn trng tip thu tt c nhng kin ng gp ca cc bn sinh vin, cc ng nghip
trong lnh vc ny hon thin gio trnh, phc v tt hn cho vic dy v hc cho sinh
vin.
Lt, Thng 08 nm 2013
Thi Duy Qu
Gio trnh Matlab cn bn Thi Duy Qu
Trang 3
MC LC CHNG I. GII THIU MATLAB .......................................................................................................... 4
1. Gii thiu.......................................................................................................................................... 4 2. Khi ng v chun b th mc lm vic trong Matlab ...................................................................... 4 3. Qun l khng gian lm vic ca Matlab ........................................................................................... 5 4. Cc thnh phn ca Mathlab ............................................................................................................. 6 5. Cc phm tt c bn trong Matlab. ..................................................................................................... 7 6. Cc ton t c bn ca Matlab: ......................................................................................................... 8
CHNG 2. MATLAB C BN .............................................................................................................. 11 1. Nhp xut d liu t dng lnh ....................................................................................................... 11 2. Nhp xut d liu t bn phm: ...................................................................................................... 11 3. Nhp xut d liu t file: ................................................................................................................ 12 4. Cc hm ton hc: .......................................................................................................................... 13 5. Cc php ton trn ma trn v vector: ............................................................................................. 16 6. To s ngu nhin: ......................................................................................................................... 18 7. Cc lnh dng lp trnh: ................................................................................................................. 19
CHNG 3. X L TH TRONG MATLAB .................................................................................... 22 1. Khi nim chung ............................................................................................................................ 22 2. Cc lnh v .................................................................................................................................... 22 3. To hnh v .................................................................................................................................... 22 4. c t kiu ng v ..................................................................................................................... 23 5. c t mu v kch thc ng v ................................................................................................ 23 6. Thm ng v vo th c ..................................................................................................... 25 7. Ch v cc im s liu .................................................................................................................. 25 8. V cc im v ng .................................................................................................................... 26 9. V vi hai trc y ............................................................................................................................ 26 10. V ng cong vi s liu 3D ........................................................................................................ 27 11. t cc thng s cho trc ............................................................................................................... 27 12. Ghi nhn ln cc trc to ........................................................................................................... 28 13. nh v vn bn trn hnh v........................................................................................................... 29 14. ho c bit .............................................................................................................................. 30 15. ho 3D ..................................................................................................................................... 37 16. V cc vect .................................................................................................................................. 40
CHNG 4. LP TRNH GIAO DIN NGI DNG (GUI) ................................................................. 44 1. Cch thc hin ............................................................................................................................... 44 2. Lp trnh giao din vi Blank GUI ................................................................................................. 45 3. Ko th v thit lp thuc tnh cho cc iu khin .......................................................................... 46 4. Vit lnh cho chng trnh ............................................................................................................. 47 5. Cc tnh cht ca cc iu khin trong GUIDE Matlab ................................................................... 49 6. Tng quan v hm Callback trong lp trnh GUI ............................................................................. 50 7. Chng trnh Calculator ................................................................................................................. 52
CHNG 5. MT S PHNG PHP X L TNH TON TRN MATLAB ..................................... 55 1. Tnh nh thc ca ma trn ............................................................................................................. 55 2. Nghch o ma trn bng cch dng Minor..................................................................................... 59 3. Nghch o ma trn bng thut ton gauss-Jordan. .......................................................................... 60 4. Lp trnh giao din: Gii phng trnh bc 2 .................................................................................. 61
PH LC .................................................................................................................................................. 66
Gio trnh Matlab cn bn Thi Duy Qu
Trang 4
CHNG I. GII THIU MATLAB
1. Gii thiu Matlab l t vit tt ca Matrix Laboratory, Matlab l mt ngn ng lp trnh cp cao
dng thng dch, n l mi trng tnh ton s c thit k bi cng ty MathWorks.
Matlab cho php thc hin cc php tnh ton s, ma trn, v th hm s hay biu din
thng tin (di dng 2D hay 3D), thc hin cc thut ton v giao tip vi cc chng trnh
ca cc ngn ng khc mt cch d dng.
2. Khi ng v chun b th mc lm vic trong Matlab Trc khi khi ng Matlab, th ngi dng nn to mt th mc lm vic cha cc
file chng trnh ca mnh (V d: D:\ThucHanh_DSP). Matlab s thng dch cc lnh c
lu trong file c dng *.m
Sau khi ci t Matlab th vic khi chy chng trnh ny ch n gin l nhp vo
biu tng ca n trn desktop , hoc vo Start\All Programs\Matlab 7.0.4\ Matlab.
Sau khi khi ng xong Matlab, th bc k tip l ch th mc lm vic ca mnh cho
Matlab. Nhp vo biu tng trn thanh cng c v chn th mc lm vic ca mnh (v d:
D:\ThucHanh_Matlab).
Gio trnh Matlab cn bn Thi Duy Qu
Trang 5
3. Qun l khng gian lm vic ca Matlab
Khng gian lm vic ca Matlab gm c cc phn c bn sau:
*Nt Start: gc di bn tri ca mn hnh, cho php chy cc ng dng mu (demos),
cc cng c v ca s cha hin th khi khi ng Matlab.
V d : Start/Matlab/Demos v chy mt ng dng mu.
* Ca s lnh: Qu trnh khi ng a ngi dng n Ca s lnh, ni cc dng lnh
c biu th bng du '>>'. y l du hiu cho thy Matlab ang ch nh mt (cu) lnh.
C th xa trng ton b ca s lnh bng lnh: >> clc hoc vo Edit/ Clear Command
Window. Khi thc hin lnh ny, ton b gi tr ca cc bin hin c khng thay i hay
mt i.
* Ca s khng gian lm vic (workspace): Ni lu gi cc bin v d liu do ngi
dng nhp vongoi tr nhng bin cc b thuc v mt M-file.
Dng lnh 'who' hoc 'whos' lit k cc bin hin c trong khng gian lm vic.
bit gi tr ca bin, ta g tn bin ti du nhc lnh. xa mt hm hoc bin khi khng
gian lm vic, s dng lnh 'clear':
>> clear tn_bin;
* Ca s bin tp mng (ma trn ni chung): Khi c mt mng, c th chnh sa,
bin tp li bng Array Editor. Cng c ny lm vic nh mt bng tnh (spreadsheet) cho
ma trn.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 6
* Ca s a ch th mc hin thi: Th mc hin thi l ni chng trnh Matlab s tm
cc M-file, v cc file khng gian lm vic (.mat files) ti v lu li.
to mt file.m trong th mc lm vic bn c c th thc hin:
Nhp vo biu tng hoc vo File\New\M-File:
Ca s son tho xut hin, g chng trnh cn thit vo file. Sau khi hon tt
nhn vo biu tng lu vo th mc hin ti (D:\ThucHanh_Matlab).
thc thi tp lnh c trong file.m trong th mc lm vic th ngi dng ch cn g tn
file v Matlab s t ng thc thi cc dng lnh c trong file.m ny (v d thc thi cc
lnh c trong file test.m, ch cn g lnh test).
4. Cc thnh phn ca Mathlab - Ngn ng Matlab: l mt ngn ng ma trn/mng cp cao vi cc cu lnh, hm, cu
trc d liu, vo/ra, cc tnh nng lp trnh hng i tng. N cho php lp trnh cc ng
dng t nh n cc ng dng ln v phc tp.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 7
- Mi trng lm vic Matlab: y l mt b cc cng c v phng tin m bn s dng
vi t cch l ngi dng hoc ngi lp trnh Matlab. N bao gm cc phng tin cho
vic qun l cc bin trong khng gian lm vic Workspace cng nh xut nhp khu d
liu. N cng bao gm cc cng c pht trin, qun l, g ri v nh hnh M-file, ng dng
ca Matlab.
- X l ho: y l h thng ho ca Matlab. N bao gm cc lnh cao cp cho trc
quan ho d liu hai chiu v ba chiu, x l nh, nh ng,... N cng cung cp cc lnh
cp thp cho php bn tu bin giao din ho cng nh xy dng mt giao din ho
hon chnh cho ng dng Matlab ca mnh.
- Th vin ton hc Matlab: y l tp hp khng l cc thut ton tnh ton t cc hm
c bn nh cng, sin, cos, s hc phc... ti cc hm phc tp hn nh nghch o ma trn,
tm tr ring ca ma trn, php bin i Fourier nhanh.
- Giao din chng trnh ng dng Matlab API (Application Program Interface): y l
mt th vin cho php bn vit cc chng trnh C v Fortran tng thch vi Matlab.
Simulink, mt chng trnh i km vi Matlab, l mt h thng tng tc vi vic m
phng cc h thng ng hc phi tuyn. N l mt chng trnh ho s dng chut
thao tc cho php m hnh ho mt h thng bng cch v mt s khi trn mn hnh. N
c th lm vic vi cc h thng tuyn tnh, phi tuyn, h thng lin tc theo thi gian, h
gin on theo thi gian, h a bin...
5. Cc phm tt c bn trong Matlab. Trong qu trnh son tho lnh, c th dng cc phm tt sau y:
K hiu phm Phm tt Chc nng
CtrlP Gi li lnh trc
CtrlN Gi lnh sau
CtrlB Li li mt k t
CtrlF Tin ln mt k t
Ctrl CtrlR Sang phi mt t
Gio trnh Matlab cn bn Thi Duy Qu
Trang 8
Ctrl CrtlL Sang phi mt t
home CtrlA V u dng
end CtrlE V cui dng
esc CtrlU Xo dng
del CtrlD Xo k t ti ch con nhy ng
backspace CtrlH Xo k t trc ch con nhy ng
6. Cc ton t c bn ca Matlab: Cc ton t c bn:
+ Cng Tr
* Nhn / Chia phi \ Chia tri ^ Lu tha
Chuyn v ma trn hay s phc lin hp
Cc ton t quan h :
< nh hn ln hn >= ln hn hoc bng == bng ~= khng bng
Cc ton t logic:
& v | or ~ not
Cc hng:
pi 3.14159265 i s o
j tng t i eps sai s 252 realmin s thc nh nht 21022 realmax s thc ln nht 21023
inf v cng ln NaN Not a number
Cc lnh c bn:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 9
Lnh Chc nng
Clear Xa tt c cc bin trong b nh Matlab
clc Lnh xa ca s lnh (command window)
pause Ch s p ng t pha ngi dng
= Lnh gn
% Cu lnh sau du ny c xem l dng ch thch
input Lnh ly vo mt gi tr.
V d: x = input(Nhap gia tri cho x:);
help lnh yu cu s gip t Matlab
Save Lu bin vo b nh
V d: Save test A B C (lu cc bin A, B, C vo file test)
Load Load bin t file hay b nh. V d: Load test
Cc lnh iu khin c bn:
Lnh C php/ Chc nng
If: R 2 nhnh IF expression
statements
ELSEIF expression
statements
ELSE
statements
END
Switch: Lnh r nhiu nhnh SWITCH switch_expr
CASE case_expr,
statement,..., statement
CASE {case_expr1, case_expr2, case_expr3,...}
statement,..., statement
...
OTHERWISE,
Gio trnh Matlab cn bn Thi Duy Qu
Trang 10
statement,..., statement
END
Lnh lp For FOR variable = expr, statement,..., statement END
Lnh lp While WHILE expression
statements
END
Break Thot t ngt khi vng lp WHILE hay FOR.
Continue B qua cc lnh hin ti, tip tc thc hin vng lp
ln lp tip theo.
Return lnh tr v
Mt s lnh c bn trn th:
Lnh Chc nng
clf xa hnh hin ti
plot(signal) v dng sng tn hiu signal
stairs(signal) v tn hiu signal theo dng cu thang.
stem(signal) v chui d liu ri rc
bar(signal) v d liu theo dng ct
mesh(A) hin th ha dng 3D cc gi tr ma trn
Chi tit cc lnh s c lm r trong cc chng tip theo.
7. Kt chng Trong chng ny chng ta lm quen vi Matlab qua cc thao tc c bn, Matlab l
ngn ng cp cao, c cc chc nng x l nh mt ngn ng bnh thng. Ta s tm hiu k hn cc chc nng cc phn k tip.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 11
CHNG 2. MATLAB C BN
1. Nhp xut d liu t dng lnh MATLAB khng i hi phi khai bo bin trc khi dng. MATLAB phn bit ch hoa
v ch thng. Cc s liu a vo mi trng lm vic ca Matlab c lu li sut phin
lm vic cho n khi gp lnh clear all. Matlab cho php ta nhp s liu t dng lnh.
Khi nhp ma trn t bn phm ta phi tun theo cc quy nh sau:
Ngn cch cc phn t ca ma trn bng du , hay du trng
Dng du ; kt thc mt hng.
Bao cc phn t ca ma trn bng cp du ngoc vung [ ]
V d 2.1: nhp cc ma trn sau:
351523321
A 1241 B
741
C
ta dng cc lnh:
A = [ 1 2 3; 3 2 4; 1 5 3]
B = [ 1 4 2 1]
C = [ 1; 4; 7]
2. Nhp xut d liu t bn phm: Lnh input cho php ta nhp s liu t bn phm. V d: x = input(Nhap x: )
Lnh format cho php xc nh dng thc ca d liu.
V d 2.2.1:
format rat % so huu ti
format long % so s c 14 chu so sau dau phay
format long e % so dang mu
format hex % so dang hex
format short e %so dang mu ngan
format short %tro ve so dang ngan (default)
Mt cch khc hin th gi tr ca bin v chui l nh tn bin vo ca s lnh. Cng
Gio trnh Matlab cn bn Thi Duy Qu
Trang 12
c th dng disp v fprintf hin th cc bin.
V d:
disp(Tri so cua x = ), disp(x)
V d 2.2.2: Vit chng trnh vidu_2.2.2.m nh sau:
Kt qu chy vidu_2.2.2 ti dng lnh nh sau:
Trong trng hp ta mun nhp mt chui t bn phm, ta cn phi thm k t s vo i
s. V d:
ans = input(Ban tra loi hoac : ,s) ;
3. Nhp xut d liu t file: MATLAB c th x l hai kiu file d liu: nh phn (*.mat) v file ASCII (*.dat).
lu cc ma trn A, B,C di dng file nh phn, ta dung lnh:
save ABC A B C
v np li cc ma trn A, B bng lnh:
load ABC A B
Nu mun lu s liu ca ma trn B di dng file ASCII ta vit:
save b.dat B /ascii
V d 2.3: Vit chng trnh trong tp tin vidu_2.3.m nh sau:
clear
A = [1 2 3; 4 5 6]
B = [3; -2; 1];
Gio trnh Matlab cn bn Thi Duy Qu
Trang 13
C(2) = 2; C(4) = 4
disp('Nhan phim bat ky de xem nhap/xuat du lieu tu file')
save ABC A B C % luu A,B & C duoi dang MATfile co ten ABC.mat
clear('A', 'C') % xoa A va C khoi bo nho
load ABC A C %doc MAT file de nhap A va C vao bo nho
save b.dat B /ascii %luu B duoi dang file ASCII co ten b.dat
clear B % xoa B
load b.dat %doc ASCII
b
x = input('Nhap x:')
format short e
x
format rat, x
format long, x
format short, x
4. Cc hm ton hc: a. Cc hm ton hc c bn:
K hiu Tn hm K hiu Tn hm
exp(x) hm ex sqrt(x) cn bc hai ca x
log(x) logarit t nhin log10(x) logarit c s 10
abs(x) modun ca s phc x angle(x) argument ca s phc a
conj(x) s phc lin hp ca x imag(x) phn o ca x
real(x) phn thc ca x sign(x) du ca x
Cc hm lng gic cos(x), sin(x), tan(x), acos(x), asin(x),
atan(x), cosh(x), coth(x), sinh(x), tanh(x),
acosh(x), acoth(x), asinh(x), atanh(x)
b. Cc hm ton hc t to:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 14
Matlab cho php ta to hm ton hc v lu n vo mt file dng nh l hm c sn
ca Matlab.
V d 2.4: Ta cn to hm: 21 811)(
xxf
v hm:
5.232254
),(),(
)(21
21
22
21
212
2112 xxx
xxxxfxxf
xf
Mun th ta to ra file f1.m nh sau:
function y = f1(x)
y = 1/(1+8*x^2);
v file f2.m:
function y = f2(x)
y(1) = x(1)*x(1)+4*x(2)*x(2) 5;
y(2) = 2*x(1)*x(1)-2*x(1)-3*x(2) -2.5;
Khi nhp lnh f1(2) ta c gi tr ca hm f1 ti x = 2. Khi nhp lnh f2([2 4]) ta c gi tr
ca hm f2 ti x1 = 2 v x2 = 4. Lnh feval(f1, 2) v feval(f2, [2 4]) cng cho kt qu
tng t.
Bi tp: Vit chng trnh to hm sau y:
1241025441025
10432
),,(),,(),,(
)(23
233
32
31
232
3
23
22
3
3213
3212
3211
3
11
1
1
xxxxxxxxx
xxx
xxxfxxxfxxxf
xf
Cch th hai biu din mt hm ton hc mt bin trn dng lnh l to ra mt i
tng inline t mt biu thc chui. V d ta c th nhp t dng lnh hm nh sau:
f1 = inline(1./(1 + 8*x.^2),x);
f1([0 1]), feval(f1, [0 1])
Ta cng c th vit:
f1 = 1./(1 + 8*x.^2);
x = [0 1];
eval(f1)
Gio trnh Matlab cn bn Thi Duy Qu
Trang 15
Nu hm l a thc ta ch cn nhp ma trn cc h s t s m cao nht. V d vi a
thc P4(x) = x4 + 4x3 + 2x + 1 ta vit:
P = [1 4 0 2 1]
nhn hai a thc ta dng lnh conv; chia 2 a thc ta dng lnh deconv. Mun tnh
tr s ca a thc ta dng lnh polyval v lnh polyvalm dng khi a thc l ma trn.
c. Cc lnh x l hm: Lnh fplot v th hm ton hc gia cc gi tr cho. V d:
fplot(f1, [5 5 ])
grid on
Cho mt hm ton hc mt bin, ta c th dng lnh fminbnd ca Matlab tm cc tiu
a phng ca hm trong khong cho. V d:
f = inline(1./((x 0.3).^2+0.01) + 1./((x 0.9).^2 + 0.04) 6 );
x = fminbnd(f, 0.3, 1)
Lnh fminsearch tng t hm fminbnd dng tm cc tiu a phng ca hm nhiu
bin. Ta c hm 3 bin lu trong file three_var.m nh sau:
function b = three_var(v)
x = v(1);
y = v(2);
z = v(3);
b = x.^2 + 2.5*sin(y) z^2*x^2*y^2;
By gi tm cc tiu i vi hm ny bt u t
x = 0.6 , y = 1.2 v z = 0.135
bng cc lnh:
v = [0.6 1.2 0.135];
a = fminsearch(three_var, v)
Lnh fzero dng tm im zero ca hm mt bin. V d: tm gi tr khng ca hm
ln cn gi tr 0.2 ta vit:
f = inline(1./((x 0.3).^2 + 0.01) + 1./((x 0.9).^2 + 0.04) 6);
Gio trnh Matlab cn bn Thi Duy Qu
Trang 16
a = fzero(f, 0.2)
Zero found in the interval: [0.10949, 0.264].
a =
0.1316
5. Cc php ton trn ma trn v vector: a. Khi nim chung
Gi s ta to ra cc ma trn a v b bng cc lnh:
a = [1 2 3; 4 5 6];
b = [3 2 1];
Ta c th sa i chng:
A = [a; 7 8 9]
B = [b; [1 0 1]]
Ton t dng chuyn v mt ma trn thc v chuyn v lin hp mt ma trn phc.
Nu ch mun chuyn v ma trn phc, ta dng thm ton t . Ngha l phi vit .. V
d:
C = [1 + 2*i 2 4*i; 3 + i 2 2*j];
X = C
Y = C.
b. Ch s
Phn t hng i ct j ca ma trn mn c k hiu l A(i, j). Tuy nhin ta cng c th tham
chiu ti phn t ca mng nh mt ch s, v d A(k) vi k = i + (j 1)m. Cch ny thng
dng tham chiu vec t hng hay ct. Trong trng hp ma trn y th n c xem
l ma trn mt ct di to t cc ct ca ma trn ban u. Nh vy nu vit A(5) c ngha l
tham chiu phn t A(2, 2).
xc nh kch thc ca mt ma trn ta dng lnh length(tr v kch thc ln nht)
hay size(s hng v ct). V d:
c = [1 2 3 4; 5 6 7 8];
length(c)
Gio trnh Matlab cn bn Thi Duy Qu
Trang 17
[m, n] = size(c)
c. Ton t :
Ton t : l mt ton t quan trng ca Matlab. N xut hin nhiu dng khc nhau.
V d:
Lnh 1:10 to mt vec t hng cha 10 s nguyn t 1 n 10.
Lnh 100: 7: 50 to mt dy s t 100 n 51, gim 7 n v mi ln.
Lnh 0: pi/4: pi to mt dy s t 0 n pi, cch u nhau pi/4
Cc biu thc ch s tham chiu ti mt phn ca ma trn. Vit A(1:k, j) l tham chiu
n k phn t u tin ca ct j. Ngoi ra ton t : tham chiu ti tt c cc phn t ca
mt hng hay mt ct.
V d: B = A(:, [1 3 2 ]) to ra ma trn B t ma trn A bng cch i th t cc ct t [1
2 3] thnh [1 3 2].
d. To ma trn bng hm c sn Matlab cung cp mt s hm to cc ma trn c bn:
Tn hm Chc nng V d
zeros To ra ma trn m cc phn t u l zeros z = zeros(2, 4)
ones to ra ma trn m cc phn t u l 1 x = ones(2, 3)
y = 5*ones(2, 2)
rand to ra ma trn m cc phn t ngu nhin
phn b u
d = rand(4, 4)
randn to ra ma trn m cc phn t ngu nhin
phn b trc giao
e = randn(3, 3)
magic(n) to ra ma trn cp n gm cc s nguyn t 1
n n2 vi tng cc hng bng tng cc ct n
phi ln hn hay bng 3
pascal(n) to ra ma trn xc nh dng m cc phn
t ly t tam gic Pascal.
pascal(4)
eye(n) to ma trn n v. eye(3)
Gio trnh Matlab cn bn Thi Duy Qu
Trang 18
eye(m, n) to ma trn n v m rng eye(3, 4)
e. Lp ghp
Ta c th lp ghp(concatenation) cc ma trn c sn thnh mt ma trn mi.
V d:
a = ones(3, 3)
b = 5*ones(3, 3)
c = [a + 2; b]
f. Xo hng v ct.
Ta c th xo hng v ct t ma trn bng dng du [].
V d: xa ct th 2 ca ma trn b, ta vit:
b(:, 2) = []
Vit x(1: 2: 5) = [] ngha l ta xo cc phn t bt u t 1 n phn t th 5 v cch 2
ri sp xp li ma trn.
g. Cc lnh x l ma trn:
- Cng: X= A + B
- Tr: X= A B
- Nhn: X= A * B
X.*A nhn cc phn t tng ng vi nhau
- Chia: X = A/B lc X*B = A
X = A\B lc A*X = B
X=A./B chia cc phn t tng ng vi nhau
- Lu tha: X = A^2
X = A^2
- Nghch o: X = inv(A)
- nh thc: d = det(A)
6. To s ngu nhin: Matlab c cc lnh to s ngu nhin l rand v randn to ra cc s ngu nhin theo phn b
Gauss.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 19
- rand(m, n): to ra ma trn cc s ngu nhin phn b ng nht.
- randn(m, n): to ra ma trn cc s ngu nhin theo phn b chun Gauss.
V d:
rand(3, 3)
randn(3, 3)
7. Cc lnh dng lp trnh: a. Cc pht biu iu kin if, else, elseif
C php ca if:
if
end
Nu cho kt qu ng th phn lnh trong thn ca if c thc
hin. Cc pht biu else v elseif cng tng t.
V d 2.7: Ta xt chng trnh doantuoi. m on tui nh sau:
clc
disp(Xin chao! Han hanh duoc lam quen);
x = fix(30*rand);
disp(Tuoi toi trong khoang 0 30);
gu = input(Xin nhap tuoi cua ban: );
if gu < x
disp(Ban tre hon toi);
elseif gu > x
disp(Ban lon hon toi);
else
disp(Ban bang tuoi toi);
end
b. Lnh r nhnh switch
C php ca switch nh sau :
Gio trnh Matlab cn bn Thi Duy Qu
Trang 20
switch
case n1 :
case n2 :
. . .
case nn :
otherwise :
end
c. Lnh lp while
Vng lp while dng khi khng bit trc s ln lp. C php nh sau:
while
end
Xt chng trnh in ra chui Xin chao ln m hnh vi s ln nhp t bn phm
xinchao.m nh sau:
clc
disp(xin chao);
gu = input(Nhap so lan in: );
i = 0;
while i ~= gu
disp([Xin chao i]);
i = i + 1
end
d. Lnh lp for
Vng lp for dng khi bit trc s ln lp. C php nh sau:
for = : :
Ta xy dng chng trnh on s doanso.m:
clc
x = fix(100*rand);
Gio trnh Matlab cn bn Thi Duy Qu
Trang 21
n = 7;
t = 1;
for k = 1:7
num = int2str(n);
disp([Ban co quyen du doan , num, lan]);
disp(So can doan nam trong khoang 0 100);
gu = input(Nhap so ma ban doan: );
if gu < x
disp(Ban doan nho hon);
elseif gu > x
disp(So ban doan lon hon);
else
disp(Ban da doan dung. Xin chuc mung);
t = 0;
break;
end
n = n 1;
end
if t > 0
disp(Ban khong doan ra roi);
numx = int2str(x);
disp([Do la so: , numx]);
end
8. Kt chng Chng ny gip sinh vin lm quen vi mt s khi nim c bn v cch lp trnh, cch
khai bo bin trong Matlab cng nh cc cu trc c bn ca ngn ng lp trnh bc cao.
Chng tip theo s gip sinh vin lm quen vi cc lnh v th.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 22
CHNG 3. X L TH TRONG MATLAB
1. Khi nim chung X l th l mt trong nhng cng c kh mnh ca Matlab. Ngn ng ny cung cp
sn cc hm cho php ta v th 2D v 3D. Trong chng ny ta s lm quen vi mt s
lnh v cho php thc hin v th.
2. Cc lnh v Matlab cung cp mt lot hm v biu din cc vect s liu cng nh gii thch v in
cc ng cong ny.
- plot: ha 2D vi s liu 2 trc v hng v tuyn tnh
- plot3: ha 3D vi s liu 2 trc v hng v tuyn tnh
- polar: ho trong h to cc
- loglog: ho vi cc trc logarit
- semilogx: ho vi trc x logarit v trc y tuyn tnh
- semilogy: ho vi trc y logarit v trc x tuyn tnh
- plotyy: ho vi trc y c nhn bn tri v bn phi
3. To hnh v Hm plot c cc dng khc nhau ph thuc vo cc i s a vo. V d nu y l mt
vec t th plot(y) to ra mt ng thng quan h gia cc gi tr ca y v ch s ca n. Nu
ta c 2 vec t x v y th plot(x, y) to ra th quan h gia x v y.
V d:
t = [0: pi/100: 2*pi]
y = sin(t);
plot(t, y)
grid on
polar(t, y)
Gio trnh Matlab cn bn Thi Duy Qu
Trang 23
4. c t kiu ng v Ta c th dng cc kiu ng v khc nhau khi v hnh. Mun th ta chuyn kiu ng
v cho hm plot. Ta vit chng trnh to ra th hm hnh sin:
t = [0: pi/100: 2*pi];
y = sin(t);
plot(t, y, . ) % v bng ng chm chm
grid on
5. c t mu v kch thc ng v c t mu v kch thc ng v ta dng cc tham s sau:
- LineWidth: rng ng thng, tnh bng s im
- MarkerEdgeColor: mu ca cc cnh ca khi nh du
- MarkerFaceColor: mu ca khi nh du
- MarkerSize: kch thc ca khi nh du
Mu c xc nh bng cc tham s:
M Mu M Mu
R Red M Mangeta
G Green Y Yelloa
B Blue K Black
Gio trnh Matlab cn bn Thi Duy Qu
Trang 24
C cyan W White
Cc dng im nh du xc nh bng:
M Kiu nh du M Kiu nh du
+ Du cng . im
o Vng trn x Ch thp
* Du sao s Hnh vung
d Ht kim cng v im tam gic hng
xung
^ im tam gic hng ln < Tam gic sang tri
> Tam gic sang phi h Lc gic
p Ng gic
Cc dng ng thng xc nh bng:
M Kiu ng M Kiu ng
- ng lin : ng chm chm
-- ng nt t -. ng chm gch
Ta xt chng trnh dothi.m nh sau:
x = pi : pi/10 : pi;
y = tan(sin(x)) sin(tan(x));
plot(x, y, rs, LineWidth, 2, MarkerEdgeColor, k,...
MarkerFaceColor, g, MarkerSize, 10)
Chng trnh ny s v ng cong y = f(x) c cc c t sau :
ng v l ng t nt()
Khi nh du hnh vung (s), ng v mu (r)
ng v rng 2 point
Cc cnh ca khi nh mu en
Khi nh du mu green
Kch thc khi nh du 10 point
Gio trnh Matlab cn bn Thi Duy Qu
Trang 25
6. Thm ng v vo th c lm iu ny ta dng lnh hold. Khi ta nh lnh hold on th Matlab khng xo th
ang c. N thm s liu vo th mi ny. Nu phm vi gi tr ca th mi vt qu
cc gi tr ca trc to c th n s nh li t l xch.
V d:
plot(sin(x));
hold all
plot(sin(x+(pi/4)));
7. Ch v cc im s liu v cc im nh du m khng ni chng li vi nhau ta dng c t ni rng khng
c cc ng ni gia cc im, ngha l ta gi hm plot ch vi c t mu v im nh
du. V d: xt chng trnh nh sau:
x = pi : pi/10 : pi;
Gio trnh Matlab cn bn Thi Duy Qu
Trang 26
y = tan(sin(x)) sin(tan(x));
plot(x, y, s, MarkerEdgeColor, k)
8. V cc im v ng v c cc im nh du v ng ni gia chng ta cn m t kiu ng v kiu
im. Ta xt on chng trnh nh sau:
x = 0:pi/15:4*pi;
y = exp(2*sin(x));
plot(x, y, r, x, y, ok)
dng v ng cong y = f(x) c ng ni lin, mu . im nh du l ch o c mu
en.
9. V vi hai trc y Lnh plotyy cho php to mt th c hai trc y. Ta cng c th dng plotyy cho gi
tr trn hai trc y c kiu khc nhau nhm tin so snh. Ta xt chng trnh dothi.m nh sau:
t = 0:900;
A = 1000;
b = 0.005;
a = 0.005;
z2 = sin(b*t);
z1 = A*exp(a*t);
Gio trnh Matlab cn bn Thi Duy Qu
Trang 27
[haxes, hline1, hline2] = plotyy(t, z1, t, z2,semilogy, plot);
10. V ng cong vi s liu 3D Nu x, y, z l 3 vec t c cng di th plot3 s v ng cong 3D. Ta vit chng trnh
duongcong3D.m nh sau:
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
axis square;
grid on
11. t cc thng s cho trc Khi ta to mt hnh v, Matlab t ng chn cc gii hn trn trc to v khong cch
nh du da trn s liu dng v. Tuy nhin ta c th m t li phm vi gi tr trn trc
v khong cch nh du theo ring. Ta c th dung lnh sau:
- axis t li cc gi tr trn trc to
Gio trnh Matlab cn bn Thi Duy Qu
Trang 28
- axes to mt trc to mi vi cc c tnh c m t
- get v set: cho php xc nh v t cc thuc tnh ca trc to ang c.
- gca: tr v trc to c
Matlab chn cc gii hn trn trc to v khong cch nh du da trn s liu dng
v. Dng lnh axis c th t li gii hn ny. C php ca lnh:
axis[ xmin , xmax , ymin , ymax]
Ta xt chng trnh thongso.m nh sau:
x = 0:0.025:pi/2;
plot(x, tan(x), ro)
axis([0 pi/2 0 5])
Matlab chia vch trn trc da trn phm vi d liu v chia u. Ta c th m t
cchchia nh thng s xtick v ytick bng mt vec t tng dn.
V d: xt chng trnh nh sau:
x = pi: .1: pi;
y = sin(x);
plot(x, y)
set(gca, xtick, pi :pi/2:p);
set(gca, xticklabel, {pi, pi/2, 0, pi/2, pi})
12. Ghi nhn ln cc trc to Matlab cung cp cc lnh ghi nhn ln ho gm : - title: thm nhn vo ho
- xlabel: thm nhn vo trc x
- ylabel: thm nhn vo trc y
- zlabel: thm nhn vo trc z
- legend: thm ch gii vo th
- text: hin th chui vn bn v tr nht nh
Gio trnh Matlab cn bn Thi Duy Qu
Trang 29
- gtext: t vn bn ln ho nh chut
- \bf: bold font
- \it: italics font
- \sl: oblique font (ch nghing)
-\rm: normal font
Cc k t c bit xem trong String properties ca Help.
Ta dng cc lnh xlabel , ylabel , zlabel thm nhn vo cc trc to . Ta c th thm
vn bn vo bt k ch no trn hnh v nh hm text. Ta c chng trnh nh sau:
x = pi: .1: pi;
y = sin(x);
plot(x, y)
xlabel(t = 0 to 2\pi, Fontsize, 16)
ylabel(sin(t), Fontsize, 16)
title(\it{Gia tri cua sin tu zero n 2 pi}, Fontsize, 16)
text(3*pi/4, sin(3*pi/4),\leftarrowsin(t ) = 0.707, FontSize, 12)
13. nh v vn bn trn hnh v Ta c th s dng i tng vn bn ghi ch cc trc v tr bt k. Matlab nh v vn
bn theo n v d liu trn trc.
V d v hm y = Aet vi A = 0.25 vi t = 0 n 900 v = 0.005 ta vit chng trnh
nh sau:
t = 0: 900;
y = 0.25*exp(-0.005*t);
Gio trnh Matlab cn bn Thi Duy Qu
Trang 30
plot(t, 0.25*exp(-0.005*t))
plot(t,y)
text(300,.25*exp(-.005*300),...
'\bullet\leftarrow\fontname{times}0.25{\ite}^{ 0.005{\itt}} tai,... {\itt} = 300',
'FontSize', 14)
Tham s HorizontalAlignment v VerticalAlignment nh v vn bn so vi cc ta x,
y, z cho.
14. ho c bit a. Khi v vng
ho khi v vng biu din s liu l vec t hay ma trn. MATLAB cung cp cc hm
ho khi v vng:
- bar: hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar.
- barh: hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar nm ngang.
- bar3: hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar dng 3D.
- bar3h: hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar dng 3D
nm ngang.
Mc nh, mi phn t ca ma trn c biu din bng mt bar. Ta xt chng trnh nh
sau:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 31
y = [5 2 1
6 7 3
8 6 3
5 5 5
1 5 8];
bar(y)
b. M t d liu trn trc.
Ta dng cc hm xlabel v ylabel m t cc d liu trn trc. Ta xt chng trnh nh
sau:
nhdo = [29 23 27 25 20 23 23 27];
ngay = 0: 5: 35;
bar(ngay, nhdo)
xlabel(Ngay)
ylabel(Nhiet do (^{o}C))
set(gca,YLim,[15 30],Layer,top)
grid on
set(gca,YLim,[15 30])
Mc nh,phm vi gi tr ca trc y l t 0 n 30. xem nhit trong khong t 15
n 30 ta thay i phm vi gi tr ca trc y:
set(gca,YLim,[15 30],Layer,top)
v trn th, phm vi gi tr ca trc y thay i.
c. Xp chng th
Ta c th xp chng s liu trn th thanh bng cch to ra mt trc khc trn cng
mt v tr v nh vy ta c mt tr y c lp vi b s liu khc.
V d:
TCE = [515 420 370 250 135 120 60 20];
nhdo = [29 23 27 25 20 23 23 27];
ngay = 0:5:35;
Gio trnh Matlab cn bn Thi Duy Qu
Trang 32
bar(ngay, nhdo)
xlabel(Ngay)
ylabel(Nhiet do (^{o}C))
xp chng mt s liu ln mt th thanh trn, c trc th 2 cng v tr nh trc
th nht ta vit:
h1 = gca;
v to trc th 2 v tr trc th nht trc nht v b s liu th 2:
h2 = axes(Position,get(h1,Position));
plot(days,TCE,LineWidth,3)
trc th 2 khng gy tr ngi cho trc th nht ta vit:
set(h2,YAxisLocation,right,Color,none,XTickLabel,[])
set(h2,XLim,get(h1,XLim),Layer,top)
ghi ch ln th ta vit:
text(11,380,Mat do,Rotation,55,FontSize,16)
ylabel(TCE Mat do (PPM))
title(Xep chong do thi,FontSize,16)
d. ho vng.
Hm area hin th ng cong to t mt vec t hay t mt ct ca ma trn. N v cc
gi tr ca mt ct ca ma trn thnh mt ng cong ring v t y vng khng gian gia
cc ng cong v trc x ta xt chng trnh nh sau:
Y = [ 5 1 2
8 3 7
9 6 8
5 5 5
4 2 3];
area(Y)
Gio trnh Matlab cn bn Thi Duy Qu
Trang 33
hin th th c 3 vng, mi vng mt ct. cao ca mi th vng l tng cc phn
t trong mt hng. Mi ng cong sau s dng ng cong trc lm c s. hin th
ng chia li ta dng lnh:
set(gca,Layer,top)
set(gca,XTick,1:5)
grid on
e. th Pie
th pie hin th theo t l phn trm ca mt phn t ca mt vec t hay mt ma trn so
vi tng cc phn t. Cc lnh pie v pie3 to ra th 2D v 3D ta xt chng trnh nh
sau:
X = [19.3 22.1 51.6; 34.2 70.3 82.4; 61.4 82.9 90.8; 50.5 54.9 59.1; 29.4 36.3 47.0];
x = sum(X);
explode = zeros(size(x));
[c,offset] = max(x);
explode(offset) = 1;
h = pie(x,explode)
%A = [ 1 3 6];
%pie3(A)
Gio trnh Matlab cn bn Thi Duy Qu
Trang 34
Khi tng cc phn t trong i s th nht bng hay ln hn 1, pie v pie3 chun ho cc
gi tr. Nh vy cho vec t x, mi phn c din tch xi/sum (xi) vi xi l mt phn t ca x.
Gi tr c chun ho m t phn nguyn ca mi vng. Khi tng cc phn t trong i s
th nht nh hn 1, pie v pie3 khng chun ho cc phn t ca vec t x. Chng v mt
phn pie.
x = [.19 .22 .41];
pie(x)
f. Lm hnh chuyn ng:
C th to ra hnh chuyn ng bng 2 cch:
- To v lu nhiu hnh khc nhau v ln lt hin th chng
- V v xo lin tc mt i tng trn mn hnh, mi ln v li c s thay i.
Vi cch th nht ta thc hin hnh chuyn ng qua 3 bc:
- Hm moviein dnh b nh cho mt ma trn ln nhm lu cc khung hnh.
- Hm getframes to cc khung hnh.
- Hm movie hin th cc khung hnh.
Sau y l v d s dng movie quan st hm fft(eye(n)). Ta to chng trnh nh sau :
axis equal
M = moviein(16, gcf);
set(gca, NextPlot, replacechildren)
Gio trnh Matlab cn bn Thi Duy Qu
Trang 35
h = uicontrol(style, slider, position,[100 10 500 20], Min, 1, Max, 16)
for j = 1:16
plot(fft(eye(j + 16)))
set(h, Value, j)
M(:, j) = getframe(gcf);
end
clf;
axes(Position, [0 0 1 1]);
movie(M, 30)
Bc u tin to hnh nh chuyn ng l khi gn ma trn. Tuy nhin trc khi gi
hm moviein, ta cn to ra cc trc to c cng kch thc vi kch thc m ta mun
hin th hnh. Do trong v d ny ta hin th cc s liu cch u trn vng trn n v nn ta
dng lnh axis equal xc nh t l cc trc. Hm moviein to ra ma trn ln cha
16 khung hnh. Pht biu:
set(gca, NextPlot, replacechildren)
ngn hm plot a t l cc trc v axis normal mi khi n c gi. Hm getframe
khng i s tr li cc im nh ca trc hin hnh hnh hin c. Mi khung hnh gm
cc s liu trong mt vec t ct. Hm getframe(gcf) chp ton b phn trong ca mt ca s
hin hnh. Sau khi to ra hnh nh ta c th chy chng mt s ln nht nh v d 30 ln
nh hm movie(M, 30) .
Mt phng php na to hnh chuyn ng l v v xo, ngha l v mt i tng
ho ri thay i v tr ca n bng cch thay i to x, y v z mt lng nh nh mt
vng lp. Ta c th to ra cc hiu ng khc nhau nh cc cch xo hnh khc nhau. Chng
gm:
- none: khng xo i tng khi n di chuyn
- background: xo i tng bng cch v n c mu nn
- xor: ch xo i tng
V d: Ta to ra Mfile c tn l vidu.m nh sau:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 36
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])
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)) % thay doi toa do
drawnow
i = i + 1;
end
Gio trnh Matlab cn bn Thi Duy Qu
Trang 37
15. ho 3D a.Cc lnh c bn.
Lnh mesh v surf to ra li v mt 3D t ma trn s liu. Gi ma trn s liu l z m
mi phn t ca n z(i, j) xc nh tung ca mt th mesh(z) to ra mt li c mu th
hin mt z cn surf(z) to ra mt mt c mu z.
b. th cc hm hai bin
Bc th nht th hin hm 2 bin z = f(x,y) l to ma trn x v y cha cc to
trong min xc nh ca hm.
Hm meshgrid s bin i vng xc nh bi 2 vec t x v y thnh ma trn x v y. Sau
ta dng ma trn ny nh gi hm.
Ta kho st hm sin(r)/r. tnh hm trong khong 8 v 8 theo x v y ta ch cn chuyn
mt vec t i s cho meshgrid:
[x,y] = meshgrid(8:.5:8);
r = sqrt(x.^2 + y.^2) + 0.005;
ma trn r cha khong cch t tm ca ma trn. Tip theo ta dng hm mesh v hm.
z = sin(r)./r;
mesh(z)
c. th ng ng mc.
Cc hm contour to, hin th v ghi ch cc ng ng mc ca mt hay nhiu ma trn.
Chng bao gm:
- clabel: to cc nhn s dng ma trn contour v hin th nhn
- contour: hin th cc ng ng mc to bi mt gi tr cho trc ca ma trn Z.
- contour3: hin th cc mt ng mc to bi mt gi tr cho trc ca ma trn Z.
- contour: hin th th contour 2D v t mu vng gia 2 cc ng contourc hm cp
thp tnh ma trn contour
Hm meshc hin th contour v li v surfc hin th mt contour.
V d:
[X,Y,Z] = peaks;
Gio trnh Matlab cn bn Thi Duy Qu
Trang 38
contour(X,Y,Z,20)
Mi contour c mt gi tr gn vi n. Hm clabel dng gi tr ny hin th nhn
ng ng mc 2D. Ma trn contour cha gi tr clabel dng cho cc ng contour 2D.
Ma trn ny c xc nh bi contour, contour3 v contourf.
hin th 10 ng ng mc ca hm peak ta vit:
Z = peaks;
[C,h] = contour(Z,10);
clabel(C,h)
title({Cac contour co nhan,clabel(C,h)})
Hm contourf hin th th ng ng mc trn mt mt phng v t mu vng cn li
gia cc ng ng mc. kim sot mu t ta dng hm caxis v colormap. Ta vit
chng trnh ct1_26.m:
Z = peaks;
[C, h] = contourf(Z, 10);
caxis([20 20])
colormap autumn;
title({Contour co to mau, contourf(Z, 10)})
Cc hm contour(z, n) v contour(z, v) cho php ta ch r s lng mc contour hay mt
mc contour cn v no vi z l ma trn s liu, n l s ng contour v v l vec t cc
mc contour. MATLAB khng phn bit gia vec t mt phn t hay i lng v hng.
Nh vy nu v l vec t mt phn t m t mt contour n mt mc hm contour s coi
n l s lng ng contour ch khng phi l mc contour. Ngha l, contour(z, v) cng
nh contour(z, n). hin th mt ng ng mc ta cn cho v l mt vector c 2 phn t
vi c hai phn t bng mc mong mun. V d to ra mt ng ng mc 3D ca hm
peaks ta vit chng trnh ct1_27.m:
xrange = 3: .125: 3;
yrange = xrange;
[X,Y] = meshgrid(xrange, yrange);
Gio trnh Matlab cn bn Thi Duy Qu
Trang 39
Z = peaks(X, Y);
contour3(X, Y, Z)
hin th mt mc Z = 1, ta cho v l [1 1]
v = [1 1]
contour3(X, Y, Z, v)
Hm ginput cho php ta dng chut hay cc phm mi tn chn cc im v. N tr v
to ca v tr con tr. V d sau s minh ho cc dng hm ginput v hm spline to ra
ng cong ni suy hai bin.
V d: to mt Mfile c tn Vidu_02.m nh sau:
disp(Chuot phai tro cac diem tren duong ve)
disp(Chuot trai tro diem cuoi cua duong ve)
axis([0 10 0 10])
hold on
x = [];
y = [];
n = 0;
but = 1;
while but = =1
[xi,yi,but] = ginput(1);
plot(xi, yi, go)
n = n + 1;
x(n, 1) = xi;
y(n,1) = yi;
end
t = 1:n;
ts = 1: 0.1: n;
xs = spline(t, x, ts);
ys = spline(t, y, ts);
Gio trnh Matlab cn bn Thi Duy Qu
Trang 40
plot(xs, ys, c);
hold off
16. V cc vect C nhiu hm Matlab dng hin th cc vec t c hng v vec t vn tc. Ta nh ngha
mt vec t bng cch dng mt hay 2 i s. Cc i s m t thnh phn x v thnh phn y
ca vec t. Nu ta dng 2 i s th i s th nht s m t thnh phn x v i s th ha
m t thnh phn y. Nu ta ch dng mt i s th MATLAB x l n nh mt s phc,
phn thc l thnh phn x v phn o l thnh phn y.
Cc hm v vec t gm:
- compass: v cc vc t bt u t gc to ca h to cc
- feather: v cc vec t bt u t mt ng thng
- quiver: v cc vec t 2D c cc thnh phn (u, v)
- quiver3: v cc vec t 3D c cc thnh phn (u, v, w)
a. Hm compass.
Ta xt v d v hng v tc gi. Cc vector xc nh hng (gc tnh bng ) v tc
gi (km/h) l:
hg = [45 90 90 45 360 335 360 270 335 270 335 335];
td = [6 6 8 6 3 9 6 8 9 10 14 12];
Ta bin i hng gi thnh radian trc khi bin i n thnh to vung gc.
hg1 = hg * pi/180;
[x, y] = pol2cart(hg1, td);
compass(x, y)
v to ra ghi ch trn th:
gc = {Huong gio v suc gio tai san bay Da Nang)
text(28, 15, gc)
b. Hm feather
Hm feather hin th cc vector bt u t mt ng thng song song vi trc x. V d
to ra cc vec t c gc t 90 n 00 v cng di ta vit chng trnh nh sau:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 41
theta = 90: 10: 0;
r = ones(size(theta));
trc khi v, chuyn cc s liu sang to vung gc v tng ln thnh r d nhn:
[u, v] = pol2cart(theta*pi/180, r*10);
feather(u, v)
axis equal
Nu i s l s phc z th feather coi phn thc l x v phn o l y. Ta xt chng trnh
nh sau:
t = 0: 0.3: 10;
s = 0.05 + i;
Z = exp(s*t);
feather(Z)
c. Hm quiver
Hm quiver hin th cc vec t cc im cho trong mt phng. Cc vec t ny c
xc nh bng cc thnh phn x v y. V d to ra 10 contour ca hm peaks ta dng
chng trnh nh sau:
n = 2.0: .2: 2.0;
[X,Y,Z] = peaks(n);
contour(X, Y, Z, 10)
Gio trnh Matlab cn bn Thi Duy Qu
Trang 42
By gi dng hm gradient to cc thnh phn ca vec t dng lm i s cho quiver:
[U, V] = gradient(Z, .2);
t hold on thm ng contour:
hold on
quiver(X,Y,U,V)
hold off
d. Hm quiver3.
Hm quiver3 hin th cc vec t c cc thnh phn (u,v,w) ti im (x, y, z). V d ta biu
din qu o ca mt vt c nm i theo t. Phng trnh ca chuyn ng l:
z(t) = v0t + 2
2at
Ta vit chng trnh chuyendong.m, trc ht ta gn vn tc ban u v gia tc a:
v0 = 20; % Van toc ban dau
a = 32; % gia toc
Tip theo tnh z ti cc thi im:
t = 0:.1:1;
z = vz*t + 1/2*a*t.^2;
Tnh v tr theo hng x v y:
vx = 2;
x = vx*t;
vy = 3;
Gio trnh Matlab cn bn Thi Duy Qu
Trang 43
y = vy*t;
Tnh cc thnh phn ca vec t vn tc v hin th bng cc dng quiver3:
u = gradient(x);
v = gradient(y);
w = gradient(z);
scale = 0;
quiver3(x, y, z, u, v, w, scale)
axis square
17. Kt chng Trong chng ny, sinh vin lm quen vi mt s lnh c bn trong v th da trn
d liu. Chng cng gip sinh vin lm quen vi mt s lnh v th 3D v nng cao.
Chng tip theo s gip sinh vin lm quen vi phng php lp trnh giao din ha
ngi dng trn Matlab
Gio trnh Matlab cn bn Thi Duy Qu
Trang 44
CHNG 4. LP TRNH GIAO DIN NGI DNG (GUI)
Chng ny s hng dn ngi dung lp trnh bng ca s, y l dng lp trnh giao
din ngi dng thng thy cc ngn ng cp cao hin nay.
1. Cch thc hin M phn mm Matlab, g lnh sau vo ca s Command:
>> guide
Ca s GUIDE Quick Start hin ra nh sau:
Trong ca s GUIDE Quick Start c nhiu la chn theo cc khun mu nh sau:
Th Create New GUI: To mt hp thoi GUI mi theo mt trong cc loi sau:
- Blank GUI (Default): Hp thoi trng, khng c mt iu khin uicontrol no c.
- GUI with Uicontrols: Hp thoi vi mt vi uicontrol nh button,...
- GUI with Axes and Menu: Hp thoi vi mt uicontrol axes v button, cc menu hin
th th.
- Modal Question Dialog: Hp thoi t cu hi Yes, No.
Th Open Existing GUI: gip ngi dng m mt project c sn to trc.
Trong hng dn ny, khi to mt project mi s chn Blank GUI
Gio trnh Matlab cn bn Thi Duy Qu
Trang 45
2. Lp trnh giao din vi Blank GUI
Giao din rt ging vi cc chng trnh lp trnh giao din nh Visual Basic, Visual
C++, C# ... Di chut qua cc biu tng bn tri s thy tn ca cc iu khin.
Sau y l mt s iu khin thng dng:
Push Button: L cc nt bm nh nt OK, Cancel m ta vn bm (tng t Button
trong cc ngn ng bc cao)
Slider: Thanh trt c mt con trt chy trn .
Radio Button: Chn la 1 iu kin trong mt tp iu kin.
Check Box: Chn la nhiu iu kin trong mt tp iu kin.
Edit Text: L mt cho ngi dung nhp vn bn
Static Text: L hin th vn bn ca ngi dng
Pop-up Menu: Ngi dng chn mt i tng trong danh sch s xung.
List Box: Cho php ngi dng chn 1 i tng trong danh sch hin ra.
Axes: Thc hin v h trc ta .
Panel: L mt dng phn ca cc thnh phn trn giao din.
Button Group: Nhm cc button.
ActiveX Control: Cc Control do ngi dung nhng thm vo.
Toggle Button: Dng nt bm bt - tt.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 46
Pha trn cng l menu, trng nht l menu Tools c:
Run (Ctr + T): Chy chng trnh vit, s bo li nu chng trnh cha li.
chy c chng trnh, h thng bt buc ngi dng phi lu li ng dng.
Align Object: dng sp xp cc iu khin v cn l cho cc i tng.
Grid and Rulers: Hin th li v thc trong giao din.
Menu Editor: To menu cho ng dng.
Tab Order Editor: sp xp th t cc xut hin chut ln i tng khi nhn phm
Tab lc chy ng dng.
Gui Options: Mt s la chn cho giao din GUI.
Khi ta lu li (vo File\Save hoc nhn Ctrl + S) vi mt tn no (v d: vidu), khi h
thng ng thi xut hin hai ca s l ca s son tho v ca s thit k. Trong th mc
va lu s c hai tp tin:
vidu.fig: Tp tin ny cha giao din ca chng trnh, l ni cho ngi dung thit k
bng cch ko th cc iu khin to ng dng.
vidu.m: tp tin ny cha cc m thc thi cho chng trnh nh cc hm khi to, cc
hm callback...
3. Ko th v thit lp thuc tnh cho cc iu khin V d: Thc hin chng trnh cho ngi dng nhp vo hai s, khi nhn nt s hin th
kt qu php tnh cng ca 2 s va nhp.
Thc hin cc bc nh sau:
- To mt Blank GUI: Vo File\New\GUI chn Blank GUI, t tn l vidu.fig
- Ko th vo trong giao din 2 Edit Text, 1 Static Box v 1 Push Button.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 47
Click i vo Edit Text xut hin ca s cc thuc tnh ca iu khin nh sau:
Mt s thuc tnh quan trng nht ca Edit Box bao gm:
Tag: y l tn ca iu khin. Dng tn ny c th thao tc n cc thuc tnh ca
i tng. y ta t tn l: txtX.
String: l xu k t hin ln Edit Box. C th trng hoc thit lp bng 0.
Tng t, thay i thuc tnh tag ca Edit Box th 2 thnh txtY, Static Box cng tng t
thnh txtKetQua.
Vi Push Button: thuc tnh tag t l cmdCalculate, String t l ket qua
4. Vit lnh cho chng trnh Chng trnh c tc dng khi nhn vo nt Push Button s hin ln kt qu Static Box.
V th s phi vit vo hm no m khi nhn vo Push Button s gi. Chnh l hm
Callback. iu khin no cng c hm callback, ging nh hm ngt trong vi iu khin
vy.
Click chut phi vo nt + chn View Callbacks\ Callback:
Trong phn ny cn mt s hm na s gii thiu sau.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 48
Nhn vo nh ngha ca hm trong Editor ta s thy l: hm ny c thc hin khi nhn
vo nt buttonCalculate.
Hm c mt s tham s:
hObject : handle ca iu khin buttonCalculate
eventdata: d liu khi s kin xy ra.
handles: l mt cu trc cha tt c cc iu khin v d liu ngi dng, dng
truy xut cc iu khin khc.
Qua thuc tnh tag ca cc iu khin ta s truy sut n thuc tnh string ca cc iu
khin txtX, txtY, txtKetQua bng lnh get v set.
get(handles.tag_dieu_khien, 'ten thuoc tinh');
set(handles.tag_dieu_khien, 'ten_thuoc_tinh', gia_tri);
Mt hm quan trng na bin t chui sang s: str2num v num2str bin tr li. Vy
chng ta s vit hm nh sau:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 49
Nhn nt Run kim tra kt qu:
5. Cc tnh cht ca cc iu khin trong GUIDE Matlab hin ca s cc tnh cht Property Inspector ca mt iu khin, c 3 cch sau:
Nhn p chut vo mi iu khin.
Chn iu khin ri vo menu View, chn Property Inspector.
Chn iu khin ri nhn vo biu tng Property Inspector, gn ch M-file editor.
Khi , ca s Property Inspector s hin ra. Khi nhn vo cc iu khin khc th ca s
ny s hin thng tin tng ng cho iu khin .
Mt vi tnh cht chung ca cc iu khin m cc bn nn ch :
Tnh cht (property) Gi tr (value) M t
Enable on, inactive, off
Mc nh l: on
Xc nh khi no th iu khin hin th ln giao
din. t = off, th iu khin s khng xut hin.
Max Mc nh l 1. Gi tr ln nht, ty thuc vo tng iu khin.
Min Mc nh l 0 Gi tr nh nht, ty thuc vo tng iu khin.
Position Vector gm 4 phn t
(left, bottom, width,
height)
Kch thc ca iu khin v v tr tng i ca
n vi iu khin cha n.
String Chui hin th
Units n v o lng dng trong xc nh v tr.
Value V hng hoc vector Gi tr ca component, ty thuc vo tng
component.
Ngoi ra, thuc tnh cc k quan trng m cc bn phi ch l tag. Thuc tnh ny chnh
l tn ca i tng, l duy nht dng phn bit i tng ny v i tng khc.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 50
6. Tng quan v hm Callback trong lp trnh GUI Sau khi to giao din xong th phn lp trnh rt quan trng, chnh l lp trnh cc hnh vi
ca cc iu khin p ng li cc s kin nh nhn phm, ko thanh trt, khi chn
menu, ... chnh l cc hm Callback (ging nh cc hm s kin trong cc ngn ng
khc).
a. Th no l hm Callback Callback l mt hm m khi vit miu t hnh vi ca mt thnh phn GUI xc nh hoc
l ca chnh GUI figure, iu khin cc hnh vi ca chng bng cch thc hin mt s hnh
ng c vit trong hm, p ng li mt s kin ca chnh thnh phn . Cch lp
trnh ny thng gi l: Lp trnh li s kin (event driven programming).
V d, khi bn nhn mt Button th v th, tnh tng, Vy th khi nhn phm th hin
nhin gi hm Callback nhn phm ca Button , v trong hm Callback ny s thc
hin lnh v th, tnh tng, tng ng.
b. Cc loi hm Callback Mi thnh phn c nhiu hm Callback khc nhau, sau y lit k cc loi hm Callback
v cc iu khin c th c hm ny.
Callback property S kin xy ra Thnh phn c hm ny
ButtonDownFcn Thc hin khi ngi dng nhn
chut ln hoc trong 5 pixels ca
component hoc figure. Nu l
component th thuc tnh Enable phi
on ( tt nhin ri ).
Axes,figure,button
group,panel,user
interfacecontrols
Callback Hnh ng ca cc component, v d
nh thc thi khi ngi dng click ln
Push Button hoc chn mt thnh
phn menu.
Contextmenu,
menu,userinterface
controls
CloseRequestFcn Thc thi trc khi figure ng. Figure
CreateFcn To cc thnh phn.N c dng
khi to cc thnh phn khi n c
Axes,figure,button
group,contextmenu,
Gio trnh Matlab cn bn Thi Duy Qu
Trang 51
to ra. N thc thi sau khi thnh
phn hoc figure c to, nhng
trc khi hin th ln trn giao din
ngi dng.
menu,panel,user
interfacecontrols
DeleteFcn Xa thnh phn. N c th c
dng thc hin hnh ng xa b
trc khi component hoc figure b
hy b.
Axes,figure,button
group,contextmenu,
menu,panel,user
interfacecontrols
KeyPressFcn Thc thi khi ngi dng nhn mt
phm trong keyboard v component
hoc figure ca hm callback
ang c focus.
Figure,userinterface
controls
KeyReleaseFcn Thc thi khi ngi dng nh mt
phm ang bm v figure vn ang
c focus.
Figure
ResizeFcn Thc thi khi ngi dng thay i
kch thc ca panel, button group,
hoc figure vi iu kin thuc tnh
Resize ca figure = on.
Buttongroup,figure, panel
SelectiononChangeFcn Thc thi khi ngi dng la chn
mt nt Radio Button khc hoc
toggle button khc trong thnh phn
Button Group.
Buttongroup
WindowButtonDownFcn Thc thi khi bn nhn chut (tri
hoc phi) trong khi con tr vn nm
trong vng ca s figure.
Figure
WindowButtonMotionFcn Thc thi khi bn di chuyn con tr
trong vng ca s figure.
Figure
WindowButtonUpFcn Ban u bn nhn chut (tri, hoc
phi) th khi nh phm ra th hm
Figure
Gio trnh Matlab cn bn Thi Duy Qu
Trang 52
ny s c gi.
WindowScrollWheelFcn Thc thi khi nt cun ca chut cun
trong khi figure vn trong tm focus.
Figure
7. Chng trnh Calculator C rt nhiu cch to ra mt chng trnh "My tnh bm tay" hay Calculator. V d
sau y s hng dn to ra mt chng trnh my tnh bm tay n gin s dng k thut
trng "Callback" trong lp trnh giao din GUI.
S dng GUIDE, thit k giao din ca chng trnh nh sau:
t thuc tnh cho cc i tng nh sau:
- Edit Text: Tag=edit1 (mc nh); FontSize=20; Enable=Inactive; HorizontalAligment=right;...
- t thuc tnh Tag ca tt c cc nt l: pushadd (ngoi tr 3 nt: "=" v "%" v "C")
- Nt "=": Tag=pushequal
- Nt "%": Tag=pushpercent
- Nt "C": Tag=pushclear
iu chnh kch thc v s dng cng c "Align Objects" sp xp v tr cc nt nh hnh
trn.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 53
Lu li fig-file vi tn mycalc.fig, trong file mycalc.m tm cc hm tng ng v thm vo
cc lnh sau:
% --- Executes on button press in pushadd.
function pushadd_Callback(hObject, eventdata, handles)
textstr = get(handles.edit1,'String');
addstr = get(hObject,'String');
newstr = strcat(textstr, addstr);
set(handles.edit1,'String', newstr)
% --- Executes on button press in pushequal.
function pushequal_Callback(hObject, eventdata, handles)
textstr = get(handles.edit1,'String');
try
set(handles.edit1,'String', eval(textstr))
catch err
set(handles.edit1,'String', err.message)
end
% --- Executes on button press in pushpercent.
function pushpercent_Callback(hObject, eventdata, handles)
textstr = get(handles.edit1,'String');
try
set(handles.edit1,'String', 100*eval(textstr))
catch err
set(handles.edit1,'String', err.message)
end
% --- Executes on button press in pushclear.
function pushclear_Callback(hObject, eventdata, handles)
set(handles.edit1,'String','')
Gio trnh Matlab cn bn Thi Duy Qu
Trang 54
Lu li file mycalc.m v chy chng trnh. S dng chut click cc nt nhp vo mt
php tnh, sau Click nt "=" thu c kt qu:
Cui cng, Click nt "C" bt u mt php tnh khc.
8. Kt chng Trong chng ny, sinh vin tm hiu cc vn lin quan n lp trnh giao din ngi
dng. Thng qua tm hiu hm Callback, kt hp vi v d v chng trnh Calculator sinh
vin s c ci nhn r hn v lp trnh giao din ngi dng GUI.
Chng tip theo s gii thiu mt s phng php lp trnh x l vi Matlab.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 55
CHNG 5. MT S PHNG PHP X L TNH TON TRN MATLAB
1. Tnh nh thc ca ma trn Cho mt ma trn vung cp n. Ta cn tm nh thc ca n. Trc ht nhc li mt s
tnh cht quan trng ca nh thc:
- Nu nhn tt c cc phn t ca mt hng (hay ct) vi k th nh thc c nhn vi k.
- nh thc khng i nu ta cng thm vo mt hng t hp tuyn tnh ca cc hng
cn li.
- Nu i ch hai hng cho nhau th nh thc i du
Trc khi i n nh ngha v nh thc ta tm hiu khi nim v hon v v php th.
Cho mt dy s, nu ta i ch cc s trong dy cho nhau th ta thc hin mt php hon
hon v. V d 123, 132,.. l cc hon v ca dy s {1, 2, 3}. Trong hon v
12ijn ta ni i lm mt nghch th vi j nu i < j m i > j. V d trong hon
v 1432 s 4 lm vi s 3 mt nghch th, s 4 lm vi s 2 mt nghch th, s 3 lm
vi s 2 mt nghch th. Mt hon v gi l chn nu tng s nghch th trong hon v
l mt s chn; mt hon v gi l l trong trng hp ngc li. Nh vy 1432 l mt
hon v l.
Cho mt dy s, nu ta to ra mt dy s mi bng cch i ch cc phn t cho nhau
th ta thc hin mt php th.
V d
32413412
p l php th bin 2 thnh 1, 1 thnh 4, 4 thnh 2 v 3 thnh 3.
Mt php th gi l chn nu tnh chn l ca dng trn v dng di nh nhau v l
trong trng hp ngc li. Php th trn l php th l.
Cho ma trn vung [A] cp n. Cc phn t ca hng th i l ai,1, ai,2,,ai,n. Cc
phn t ca ct th j l a1,j, a2,j ,, an,j. Ta xem hng th i l mt vector, k hiu l Ai* v ct
th j cng l mt vec t, k hiu l A*j. Vi mi php th:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 56
n
n
jjjiii
p......
21
21 (1)
ta lp tch:
nn jijijiaaa ...
2211 (2)
Trc mi tch (2) ta t du + nu v du nu php th (1) l. Sau ta lp tng ca n!
tch c du nh vy, ngha l tng:
p
jijijipt
nnaaa ...)1(
2211
)( (3)
trong :
t(p) = 1 nu php th p l
t(p) = 0 nu php th p chn
Tng (4) c gi l nh thc ca ma trn vung [A], cp n.
Ta xy dng hm determinant() tnh nh thc ca ma trn theo nh ngha:
function d = determinant(A)
% DETERMINANT tinh dinh thuc theo dinh nghia.
[m, n] = size(A);
if ( m ~= n )
fprintf ( \n );
fprintf ( Chi ma tran vuong moi co dinh thuc!\n );
return
end
p = zeros(1, n);
nf = prod([1:n]);
d = 0.0;
for i = 1:nf
p = nextperm(p);
s = permsign(p);
x = diag(A([1:n],p)); 91
d = d + s*prod(x);
Gio trnh Matlab cn bn Thi Duy Qu
Trang 57
end
function psign = permsign(p)
% PERMSIGN tra ve dau phep the .
% +1, neu phep the chan,
% 1, neu phep the le.
n = length ( p );
psign = 1;
for i = 1:n1
j = i;
while (p(j) ~= i)
j = j + 1;
end
if ( j ~= i )
temp = p(i);
p(i) = p(j);
p(j) = temp;
psign = psign;
end
end
function q = nextperm(p)
n = length(p);
q = p;
if(n == 1)
q = 1;
elseif (q == 0)
q = [1:n];
else
i = n 1;
Gio trnh Matlab cn bn Thi Duy Qu
Trang 58
while (q(i) > q(i+1))
i = i 1;
if (i == 0)
break; 92
end
end
if (i == 0)
q = [1:n];
else
j = n;
while (q(j) < q(i))
j = j 1;
end
t = q(j);
q(j) = q(i);
q(i) = t;
q(i+1:n) = q(n:1:i+1);
end
end
tnh nh thc ta dng chng trnh ctdeterminant.m:
clear all, clc
%a = [1 2; 3 5];
a = [1 3 5; 3 4 6; 4 6 3];
d = determinant(a)
Gio trnh Matlab cn bn Thi Duy Qu
Trang 59
2. Nghch o ma trn bng cch dng Minor Cho ma trn [A], ta c:
]det[)( ,,
1
AA
a ijji
Trong : (a-1)i,j l phn t hng i, ct j ca ma trn [A]1 , Ai,j l phn b i s ca
phn t ai,j ca ma trn [A].
Ta xy dng hm minorinv() thc hin thut ton trn:
function c = minorinv(a)
% Tim ma tran nghich dao bang thuat toan minor
n = size(a, 1);
ms = det(a);
for i = 1:n
for k = 1:n
b = cofactor(a, i, k);
c(i, k) = b/ms;
end
end
c = transpose(c);
tm ma trn nghch o ta dng chng trnh ctminorinv.m:
clear all, clc;
a = [1 3 5; 3 4 9; 5 9 6];
b = minorinv(a)
Gio trnh Matlab cn bn Thi Duy Qu
Trang 60
3. Nghch o ma trn bng thut ton gauss-Jordan. Cho ma trn [A] v ma trn n v [E] tng ng. Dng ca ma trn [E] cp 4, l:
1000010000100001
E
Nh vy, vn l ta cn tm ma trn [A]1. Phng php loi tr nhn c ma
trn nghch o [A]1 c thc hin qua n giai on, mi mt giai on gm hai bc.
i vi giai on th k:
- Chun ho phn t akk bng cch nhn hng vi nghch o ca n.
- Lm cho bng khng cc phn t pha trn v pha di ng cho cho n ct th k.
Khi k = n th [A](k) s tr thnh ma trn n v v [E] tr thnh [A]1
Ta xy dng mt hm nghch o invmat():
function x = invmat(a)
% Nghich dao ma tran a 102
%Cu phap: x = invmat(a)
k = size(a, 1);
n = k;
b = eye(n);
a = [a, b];
i = 1;
while i
Gio trnh Matlab cn bn Thi Duy Qu
Trang 61
c = a(k, i);
a(k, i:2*n) = a(k, i:2*n) a(i, i:2*n)*c;
end
end
i = i+1;
end
x(:, 1:k) = a(:, (1+k):(2*k));
nghch o ma trn:
211121112
][A
ta dng chng trnh ctinvmat.m:
clear all, clc
a = [ 2 1 1; 1 2 1; 1 1 2];
b = invmat(a)
4. Lp trnh giao din: Gii phng trnh bc 2 Chy Matlab, vo Menu File\New\GUI s thy hin ra hp thoi sau:
Chn Blank GUI, nhn OK.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 62
Trong hp thoi hin ra, ko th cc iu khin Push button, Edit Text v Static
Text vo figure nh giao din sau:
Mi iu khin u c nhiu thuc tnh, c 2 thuc tnh quan trng nht l: Tag,
String. Tag l thuc tnh ch a ch ca iu khin (dng gi khi cn). String l thuc
tnh cha ni dung (s c hin th ra ngoi) ca iu khin. Sau y ta t cc thuc tnh
ny:
- Push button 1:
+ Tag : start
+ String : Bat dau
- Push button 2:
+ Tag : close
+ String : Close
- Edit Text 1:
+ Tag : heso_a
+ String : (xa trng)
- Edit Text 2:
+ Tag : heso_b
Gio trnh Matlab cn bn Thi Duy Qu
Trang 63
+ String : (xa trng)
- Edit Text 3:
+ Tag : heso_c
+ String : (xa trng)
- Edit Text 4:
+ Tag : nghiem_x1
+ String : (xa trng)
- Edit Text 5:
+ Tag : nghiem_x2
+ String : (xa trng)
- Static Text 1: (i vi cc Static Text thuc tnh Tag khng quan trng, tr cc trng
hp c bit)
+ String : Giai phng trinh bac 2: ax2 + bx + c = 0
- Static Text 2:
+ String : a =
- Static Text 3:
+ String : b =
- Static Text 4:
+ String : c =
- Static Text 5:
+ String : Ket luan
- Static Text 6:
+ Tag : kl
+ String : (xa trng)
- Static Text 7:
+ String : x1 =
- Static Text 8:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 64
+ String : x2 =
- figure: (click p vo nn ca figure):
+ Tag : fig1
+ Name : Giai phng trinh bac 2
Sau khi t cc thuc tnh, cn chnh (s dng chut hoc cng c Align Objecs)
c figure c dng nh sau:
Lu li figure (Menu File\Save) di tn GPTB2.fig. Sau Matlab t sinh file
GPTB2.m; trong file ny tm hm start_callback v nh vo cc dng lnh sau:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 65
Hm set l hm t thuc tnh cho iu khin.
Hm get l hm ly gi tr thuc tnh ca iu khin
Hm str2double l hm bin chui thnh s
Cui cng ghi li file m (GPTB2.m) v chy chng trnh (nhn F5 hoc nt run hnh
tam gic mu xanh). Nhp vo cc h s a, b, c v click nt Bat dau xem kt qu.
5. Kt chng Trong chng ny, sinh vin lm quen vi mt s phng php lp trnh phc tp trn
Matlab. Thng qua cc v d, sinh vin s c iu kin hiu r hn cc phng php x l
lp trnh trn Matlab hin nay.
Gio trnh Matlab cn bn Thi Duy Qu
Trang 66
PH LC Hng dn s dng cng c Simulink
Simulink l mt cng c trong Matlab dng m hnh, m phng v phn tch cc
h thng ng vi mi trng giao din s dng bng ha. Vic xy dng m hnh c
n gin ha bng cc hot ng nhp chut v ko th. Simulink bao gm mt b th vin
khi vi cc hp cng c ton din cho c vic phn tch tuyn tnh v phi tuyn.
Simulink l mt phn quan trng ca Matlab v c th d dng chuyn i qua li trong
qu trnh phn tch, v v vy ngi dng c th tn dng c u th ca c hai mi
trng.
C th m Simulink bng 2 cch:
- Click vo biu tng nh hnh di (Simulink icon)
- T ca s lnh, nh lnh simulink v enter
Ca s th vin Simulink s hin th:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 67
To mt m hnh mi bng cch:
- Click vo icon New model hoc g Ctrl-N
- Menu File\New\Model
Ca s xy dng m hnh xut hin:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 68
To cc khi: t th vin Simulink chn khi cn dng, nhp chut vo v ko ra ra ca
s m hnh:
Lu tr m hnh bng lnh Save (File\Save) hoc nhp vo icon Save. Dch chuyn cc
khi n gin bng cch nhp vo khi v ko th:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 69
Ni tn hiu: a con chut ti ng ra ca khi (du >), khi con chut s c dng
+. Ko r chut ti ng vo ca mt khi khc v th ra kt ni tn hiu.
M phng m hnh: Dng lnh Start (Menu Simulation\Start) hoc nhp chut vo
icon Start
Xem tn hiu t Scope: nhp i vo khi Scope:
Gio trnh Matlab cn bn Thi Duy Qu
Trang 70
Chnh thng s ca mt khi bng cch nhp i vo khi cn chnh
Trc khi m phng m hnh Simulink, chng ta cn t cc thng s m phng bng
cch chn menu Simulation Configuration Parameters
ca s Configuration Parameters, chng ta c th t mt s thng s nh Start time,
Stop time (second giy), v phng php gii Solver, Solver options,.. sau nhn nt OK
Gio trnh Matlab cn bn Thi Duy Qu
Trang 71
TI LIU THAM KHO
[1].Phan Thanh Tao, Gio trnh Matlab, i hc Nng, 2004
[2].Trn Vn Chnh, Matlab ton tp, i hc Bch Khoa h Ni, 2005.
[3].Ebook, The Student Edition of Matlab, Mathworks, Inc;
[4].Brian R. Hunt Ronald L. Lipsman JonathanM. Rosenberg, A Guide to MATLAB
for Beginners and Experienced Users, Cambridge University Press, 2001.
[5]. http://www.mathworks.com.
V mt s ti liu tham kho khc trn Internet.