You are on page 1of 71

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

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

Trang 2

Gio trnh Matlab cn bn

Thi Duy Qu

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

Trang 3

Gio trnh Matlab cn bn

Thi Duy Qu

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).

Trang 4

Gio trnh Matlab cn bn

Thi Duy Qu

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.
Trang 5

Gio trnh Matlab cn bn

Thi Duy Qu

* 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

Ca s son tho xut hin, g chng trnh cn thit vo file. Sau khi hon tt

nhn vo biu tng

hoc vo File\New\M-File:

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.

Trang 6

Gio trnh Matlab cn bn

Thi Duy Qu

- 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
Trang 7

Gio trnh Matlab cn bn

Thi Duy Qu

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

<=

nh hn hay bng

>

ln hn

>=

ln hn hoc bng

==

bng

~=

khng bng

Cc ton t logic:
&

or

not

Cc hng:
s o

pi

3.14159265

tng t i

eps

sai s 252

realmin s thc nh nht 21022

realmax

s thc ln nht 21023

inf

NaN

Not a number

v cng ln

Cc lnh c bn:
Trang 8

Gio trnh Matlab cn bn

Thi Duy Qu

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
If: R 2 nhnh

C php/ Chc nng


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,
Trang 9

Gio trnh Matlab cn bn

Thi Duy Qu

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.

Trang 10

Gio trnh Matlab cn bn

Thi Duy Qu

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:
1 2 3
A 3 2 5
1 5 3

B 1 4 2 1

1
C 4
7

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
Trang 11

Gio trnh Matlab cn bn

Thi Duy Qu

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 <co> hoac <khong>: ,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];
Trang 12

Gio trnh Matlab cn bn

Thi Duy Qu

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:
Trang 13

Gio trnh Matlab cn bn

Thi Duy Qu

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: f1 ( x)

1
1 8x 2

f1 ( x1 , x2 )
x12 4 x22 5

f 2 ( x1 , x2 ) 2 x1 2 x1 3 x2 2.5

v hm: f 2 ( x)

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:

2 x 13 3x 22 4 x 32 10
f 1 ( x1 , x 2 , x 3 )

f 3 ( x ) f 2 ( x1 , x 2 , x 3 )
x 13 5 x 2 2 x 32 10 x1 4

f 3 ( x1 , x 2 , x 3 ) 4 x 13 5 x 23 2 x 33 10 x 12 4 x 32 12

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)
Trang 14

Gio trnh Matlab cn bn

Thi Duy Qu

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);
Trang 15

Gio trnh Matlab cn bn

Thi Duy Qu

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)
Trang 16

Gio trnh Matlab cn bn

Thi Duy Qu

[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 d = rand(4, 4)


phn b u

randn

to ra ma trn m cc phn t ngu nhin e = randn(3, 3)


phn b trc giao

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 pascal(4)


t ly t tam gic Pascal.

eye(n)

to ma trn n v.

eye(3)
Trang 17

Gio trnh Matlab cn bn

Thi Duy Qu

to ma trn n v m rng

eye(m, n)

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.
Trang 18

Gio trnh Matlab cn bn

Thi Duy Qu

- 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 <biu thc iu kin>
<pht biu>
end
Nu <biu thc iu kin> 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 :
Trang 19

Gio trnh Matlab cn bn

Thi Duy Qu

switch <biu thc>


case n1 : <lnh 1>
case n2 : <lnh 2>
...
case nn : <lnh n>
otherwise : <lnh n+1>
end
c. Lnh lp while
Vng lp while dng khi khng bit trc s ln lp. C php nh sau:
while <biu thc>
<pht biu>
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 <ch s> = <gi tr u> : <mc tng> : <gi tr cui>
Ta xy dng chng trnh on s doanso.m:
clc
x = fix(100*rand);
Trang 20

Gio trnh Matlab cn bn

Thi Duy Qu

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.

Trang 21

Gio trnh Matlab cn bn

Thi Duy Qu

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)

Trang 22

Gio trnh Matlab cn bn

Thi Duy Qu

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

Mu

Red

Mangeta

Green

Yelloa

Blue

Black

Trang 23

Gio trnh Matlab cn bn

Thi Duy Qu

cyan

White

Cc dng im nh du xc nh bng:
M

Kiu nh du

Kiu nh du

Du cng

im

Vng trn

Ch thp

Du sao

Hnh vung

Ht kim cng

im

tam

gic

xung
^

im tam gic hng ln

<

Tam gic sang tri

>

Tam gic sang phi

Lc gic

Ng gic

Cc dng ng thng xc nh bng:


M

Kiu ng

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

Trang 24

hng

Gio trnh Matlab cn bn

Thi Duy Qu

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;
Trang 25

Gio trnh Matlab cn bn

Thi Duy Qu

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);
Trang 26

Gio trnh Matlab cn bn

Thi Duy Qu

[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
Trang 27

Gio trnh Matlab cn bn

Thi Duy Qu

- 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
Trang 28

Gio trnh Matlab cn bn

Thi Duy Qu

- 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);
Trang 29

Gio trnh Matlab cn bn

Thi Duy Qu

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:

Trang 30

Gio trnh Matlab cn bn

Thi Duy Qu

y = [5 2 1
673
863
555
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;
Trang 31

Gio trnh Matlab cn bn

Thi Duy Qu

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=[ 512
837
968
555
4 2 3];
area(Y)

Trang 32

Gio trnh Matlab cn bn

Thi Duy Qu

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)

Trang 33

Gio trnh Matlab cn bn

Thi Duy Qu

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)
Trang 34

Gio trnh Matlab cn bn

Thi Duy Qu

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:
Trang 35

Gio trnh Matlab cn bn

Thi Duy Qu

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

Trang 36

Gio trnh Matlab cn bn

15.

Thi Duy Qu

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;
Trang 37

Gio trnh Matlab cn bn

Thi Duy Qu

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);
Trang 38

Gio trnh Matlab cn bn

Thi Duy Qu

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);
Trang 39

Gio trnh Matlab cn bn

Thi Duy Qu

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:
Trang 40

Gio trnh Matlab cn bn

Thi Duy Qu

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)
Trang 41

Gio trnh Matlab cn bn

Thi Duy Qu

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 +

at 2
2

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;
Trang 42

Gio trnh Matlab cn bn

Thi Duy Qu

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

Trang 43

Gio trnh Matlab cn bn

Thi Duy Qu

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
Trang 44

Gio trnh Matlab cn bn

Thi Duy Qu

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.


Trang 45

Gio trnh Matlab cn bn

Thi Duy Qu

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.

Trang 46

Gio trnh Matlab cn bn

Thi Duy Qu

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.

Trang 47

Gio trnh Matlab cn bn

Thi Duy Qu

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:

Trang 48

Gio trnh Matlab cn bn

Thi Duy Qu

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

Xc nh khi no th iu khin hin th ln giao

Mc nh l: on

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

Kch thc ca iu khin v v tr tng i ca

(left, bottom, width,

n vi iu khin cha n.

height)
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.
Trang 49

Gio trnh Matlab cn bn

Thi Duy Qu

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
ButtonDownFcn

S kin xy ra

Thnh phn c hm ny

Thc hin khi ngi dng nhn

Axes,figure,button

chut ln hoc trong 5 pixels ca

group,panel,user

component hoc figure. Nu l

interfacecontrols

component th thuc tnh Enable phi


on ( tt nhin ri ).
Callback

Hnh ng ca cc component, v d

Contextmenu,

nh thc thi khi ngi dng click ln

menu,userinterface

Push Button hoc chn mt thnh

controls

phn menu.
CloseRequestFcn

Thc thi trc khi figure ng.

CreateFcn

To cc thnh phn.N c dng Axes,figure,button


khi to cc thnh phn khi n c
Trang 50

Figure

group,contextmenu,

Gio trnh Matlab cn bn

Thi Duy Qu
to ra. N thc thi sau khi thnh

menu,panel,user

phn hoc figure c to, nhng

interfacecontrols

trc khi hin th ln trn giao din


ngi dng.
DeleteFcn

KeyPressFcn

Xa thnh phn. N c th c

Axes,figure,button

dng thc hin hnh ng xa b

group,contextmenu,

trc khi component hoc figure b

menu,panel,user

hy b.

interfacecontrols

Thc thi khi ngi dng nhn mt

Figure,userinterface

phm trong keyboard v component

controls

hoc figure ca hm callback


ang c focus.
KeyReleaseFcn

Thc thi khi ngi dng nh mt

Figure

phm ang bm v figure vn ang


c focus.
ResizeFcn

Thc thi khi ngi dng thay i

Buttongroup,figure, panel

kch thc ca panel, button group,


hoc figure vi iu kin thuc tnh
Resize ca figure = on.
SelectiononChangeFcn

Thc thi khi ngi dng la chn

Buttongroup

mt nt Radio Button khc hoc


toggle button khc trong thnh phn
Button Group.
WindowButtonDownFcn

Thc thi khi bn nhn chut (tri

Figure

hoc phi) trong khi con tr vn nm


trong vng ca s figure.
WindowButtonMotionFcn

Thc thi khi bn di chuyn con tr

Figure

trong vng ca s figure.


WindowButtonUpFcn

Ban u bn nhn chut (tri, hoc


phi) th khi nh phm ra th hm
Trang 51

Figure

Gio trnh Matlab cn bn

Thi Duy Qu
ny s c gi.

WindowScrollWheelFcn

Thc thi khi nt cun ca chut cun Figure


trong khi figure vn trong tm focus.

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.
Trang 52

Gio trnh Matlab cn bn

Thi Duy Qu

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','')

Trang 53

Gio trnh Matlab cn bn

Thi Duy Qu

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.

Trang 54

Gio trnh Matlab cn bn

Thi Duy Qu

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

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.
2 1 4 3

l php th bin 2 thnh 1, 1 thnh 4, 4 thnh 2 v 3 thnh 3.


V d p
1 4 2 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:

Trang 55

Gio trnh Matlab cn bn


i1
p
j1

Thi Duy Qu
i2
j2

... i n

... j n

(1)

ta lp tch:
(2)

ai1 j1 ai2 j 2 ...ai n j n

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:

(1)

t( p)

(3)

ai1 j1 ai 2 j 2 ...ai n j n

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);
Trang 56

Gio trnh Matlab cn bn

Thi Duy Qu

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;
Trang 57

Gio trnh Matlab cn bn

Thi Duy Qu

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)

Trang 58

Gio trnh Matlab cn bn

Thi Duy Qu

2. Nghch o ma trn bng cch dng Minor


Cho ma trn [A], ta c:

( a 1 )i , j

Aj ,i
det[ A]

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)

Trang 59

Gio trnh Matlab cn bn

Thi Duy Qu

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:
1

0
E
0

0
1
0
0

0
0
1
0

0
0

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<=n
if a(i, i) ~= 0
c = a(i, i);
a(i, i:2*n) = a(i, i:2*n)/c;
end
for k = 1:n
if k~=i
Trang 60

Gio trnh Matlab cn bn

Thi Duy Qu

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:
2 1 1

[ A] 1 2 1
1 1 2

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.


Trang 61

Gio trnh Matlab cn bn

Thi Duy Qu

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
Trang 62

Gio trnh Matlab cn bn

Thi Duy Qu

+ 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:
Trang 63

Gio trnh Matlab cn bn

Thi Duy Qu

+ 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:

Trang 64

Gio trnh Matlab cn bn

Thi Duy Qu

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.

Trang 65

Gio trnh Matlab cn bn

Thi Duy Qu

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:

Trang 66

Gio trnh Matlab cn bn

Thi Duy Qu

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:
Trang 67

Gio trnh Matlab cn bn

Thi Duy Qu

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:

Trang 68

Gio trnh Matlab cn bn

Thi Duy Qu

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:

Trang 69

Gio trnh Matlab cn bn

Thi Duy Qu

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

Trang 70

Gio trnh Matlab cn bn

Thi Duy Qu

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.

Trang 71

You might also like