Professional Documents
Culture Documents
MatLabToanTap PDF
MatLabToanTap PDF
Matlab ton tp
ci t
H thng IBM hoc tng thch 100% vi b vi x l 486 Intel cng vi b ng x l ton hc
487 ( ngoi tr 486 DX c b x l bn trong ), Pentium hoc Pentium Pro Processor.
Microsoft Window 95 hoc Window NT.
a) CD ROM
b ) B nh.
Cc khuyn ngh
B nh ph vo (B nh b sung: additional Memory).
V mch tng tc ho b tr cho Microsoft Window.
My in tr gip cho Microsoft Window.
V mch m thanh tr gip cho Microsoft Window.
Microsoft Word 7.0 hoc hn ( nu bn c nh s dng MATLAB NoteBook ).
Trnh bin dch Watcom C, Borland, Microsoft (xy dng file MEX).
Netscape Navigator 2.0 hoc version cao hn hoc Microsoft Internet Explorer 3.0 chy
MATLAB Help Desk.
Qu trnh ci t
---------------oOo----------------
Chng1
GII THIU chung
Khi bn chy chng trnh MATLAB, n s to mt hoc nhiu ca s trn mn hnh ca bn, v
ca s lnh (command) l ca s chnh bn giao tip vi MATLAB, ca s ny xut hin nh hnh
di y.
Cc k t EDU>> l du nhc ca MATLAB trong student MATLAB. Trong cc version khc
ca MATLAB, du nhc n gin ch l >>. Khi ca s lnh xut hin, l ca s hot ng, con tr
xut hin bn phi du nhc nh hnh di. Con tr v du nhc ny ca MATLAB bo rng
MATLAB ang i thc hin lnh.
Ging nh my tnh n gin thng thng, MATLAB c th thc hin cc php ton n gin,
nh v d di y:
Mary n mt ca hng vn phng phm v mua 4 cc ty, 25 xu mt cc, 6 tp v, 52 xu mt
tp, hai cun bng i, 99 xu mt cun. Hy tnh xem Mary mua bao nhiu vt, v tng s tin l bao
nhiu?
Nu dng my tnh thng thng, ta vo cc s:
4 + 6 + 2 = 12 ( vt)
4x25 + 6x52 + 2x99 = 610 (xu)
Trong MATLAB chng ta c th gii quyt vn ny theo nhiu cch. Trc tin ging nh my
tnh trn, chng ta c th tnh:
>> 4 + 6 + 2
ans=
12
>> 4*25 + 6*52 + 2*99
ans=
610
Ch rng MATLAB khng ch n nhng khong trng, cho tt c cc phn, v php nhn c
mc u tin cao hn php cng. V mt ch khc l MATLAB gi kt qu ans (vit tt ca
answer) cho c hai php tnh.
Nh ni trn, vn trn c th gii quyt bng cch cha cc thng tin vo bin ca
MATLAB:
>> erasers = 4
erasers=
4
>> pads = 6
pads=
6
>> tape = 2;
>> iterms = erases + pads + tape
iterms=
12
>> cost = erases*25 + pads*52 + tape*99
cost=
4
610
y chng ta to 3 bin MATLAB: erases, pads, tape cha s lng mi loi vt.
Sau khi vo cc gi tr cho cc bin ny, MATLAB hin th kt qu ra mn hnh, tr trng hp bin
tape. Du hai chm ng sau cu lnh >> tape = 2; thng bo cho MATLAB nhn gi tr gn nh-
ng khng hin th ra mn hnh. Cui cng khc vi gi kt qu ans, chng ta yu cu MATLAB gi
kt qu tng s cc vt l iterms, v tng s tin l cost. Ti mi bc MATLAB u a ra cc
thng tin. V c lu gi cc bin nn chng ta c th yu cu MATLAB tnh gi tr trung bnh cho
mi vt:
Trong cc php ton trn c mc u tin khc nhau, khi tnh t tri sang phi ca mt dng
gm nhiu lnh th php ton lu tha c mc u tin cao nht, tip theo l php nhn v php chia
c mc u tin bng nhau cui cng l php cng v php tr cng c mc u tin bng nhau.
>> tape
tape=
2
>> who
Your variables are:
ans cost iterms tape
average_cost erasers pads
1.3 Bin
Ging nh nhng ngn ng lp trnh khc, MATLAB c nhng quy nh ring v tn bin. Tr-
c tin tn bin phi l mt t, khng cha du cch, v tn bin phi c nhng quy tun th nhng
quy tc sau:
Quy nh v tn bin
Tn bin c phn bit ch hoa ch thng.
V d: Iterms, iterms, itErms, v ITERMS l cc bin khc nhau
Tn bin c th cha nhiu nht 31 k t, cn cc k t sau k t th 31 b l i.
V d: howaboutthisveriablename
Tn bin bt u phi l ch ci, tip theo c th l ch s, s gch di
V d: how_about_this_veriable_name, X51483. a_b_c_d_e
K t chm cu khng c php dng v n c nhng ngha c bit
Cng vi nhng quy nh trn, MATLAB c nhng bin c bit trong bng sau:
Cc bin c bit Gi tr
ans Tn bin mc nh dng tr v kt qu
pi = 3.1415..
Eps S nh nht, nh vy dng cng vi 1 cs nh nht ln hn 1
flops S ca php ton s thc
inf ch s v cng nh kt qu ca 1/0
NaN hoc nan Dng ch s khng xc nh nh kt qu ca 0/0
i (v) j i=j=
nargin S cc i s a vo hm c s dng
narout S cc i s hm a ra
realmin S nh nht c th c ca s thc
realmax S ln nht c th c ca s thc
>> erases = 4;
>> pads = 6;
>> tape = 2;
>> iterms = eases + pads + tape
iterms=
12
>> erases = 6
erases=
6
>> iterms
iterms=
6
12
Nh v d trn, ta c th dng du ba chm (...) ch cu lnh c tip tc hng di, php tnh
thc hin c khi du ba chm ngn cch gia ton t v bin, ngha l tn bin khng b ngn cch
gia hai hng:
1.5 S phc
-7.7782 - 4.9497i
>> check_it_out = i^2 % Bnh phng ca i phi l -1
check_it_out=
-1.0000 + 0.0000i
trong v d ny ch cn li phn thc, phn o bng khng. Chng ta c th dng hm real v imag
kim tra tng phn thc v o.
Chng ta c th biu din s phc dng ln v gc (dng cc):
M M.ej = a+bi
trn s phc c biu din bng ln M v gc , quan h gia cc i lng ny v phn thc,
phn o ca s phc biu din di dng i s l:
M=
= tan-1(b/ a)
a = Mcos
b = Msin
Trong MATLAB, chuyn t dng cc sang dng i s, dng cc hm real, imag, v angle:
>> c1 % Gi li c1
c1=
1.0000 - 2.0000i
>> M_c1 = abs(c1) % Tnh argument ca s phc
M_c1=
2.2361
>> angle_c1 = angle(c1) % Tnh gc ca s phc theo radian
angle_c1=
-1.1071
>> deg_c1 = angle_c1*180/ pi % Chuyn t radian sang
-63.4349
>> real_c1 = real(c1) % Tnh phn thc
real_c1=
1
>> imag_c1 = imag(c1) % Tnh phn o
imag_c1=
-2
-------------------oOo------------------
9
Chng2
CC C tnh K THUT
>> x = sqrt(2)/2
x=
0.7071
>> y = sin(x)
y=
0.7854
>> y_deg = y*180/pi
y_deg=
45.0000
Cc hm thng thng
abs(x) Tnh argument ca s phc x
acos(x) Hm ngc ca cosine
acosh(x) Hm ngc ca hyperbolic cosine
angle(x) Tnh gc ca s phc x
asin(x) Hm ngc ca sine
asinh(x) Hm ngc ca hyperbolic sine
atan(x) Hm ngc ca tangent
atan2(x, y) L hm arctangent ca phn thc ca x v y
atanh(x) Hm ngc ca hyperbolic tangent
ceil(x) Xp x dng v cng
conj(x) S phc lin hp
cos(x) Hm cosine ca x
cosh(x) Hm hyperbolic cosine ca x
exp(x) Hm ex
fix(x) Xp x khng
floor(x) Xp x m v cng
gdc(x, y) c s chung ln nht ca hai s nguyn xv y
10
Mt s v d khc:
>> y = sqrt(3^2 + 4^2) % Tnh cnh huyn ca tam gic pitago 3-4-5
y=
5
>> y = rem(23,4) % 23/4 c phn d l 3
y=
3
>> x = 2.6,y1 = fix(x),y2 = floor(x),y3 = ceil(x),y4 = round(x)
11
x=
2.6000
y1=
2
y2=
2
y3=
3
y4=
3
>> gcd(18,81) % 9 l c s chung ln nht ca 18 v 81
ans=
9
>> lcm(18,81) % 162 l bi s chung ln nht ca 18 v 81
ans=
162
(khng thy)
Hnh 2.1
tan() =
>> h = 2
h =
2
>> theta = 60
theta =
60
>> D = 50
D =
50
>> buiding_height = h+D*atan(theta*pi/180)
buiding_height =
54.3599
Vn : S phn r phn t polonium c chu k phn r l 140 ngy, tc l sau 140 ngy th lng
poloniun cn li l 1/2 lng ban u. Hi nu ban u c 10 grams polonium, n s cn li bao
nhiu sau 250 ngy?
Gii quyt: Sau 1 chu k phn r hoc 140 ngy, cn li 10x0.5 = 5 grams; sau 2 chu k phn r
hoc 280 ngy, cn li 5x0.5 = 10x(0.5)2 = 2.5grams, t ta c kt qu nm trong khong 5 v 2.5
grams, v ta c cng thc tnh phn cn li sau khong thi gian bt k:
P=A
20267.47
>> Diff = T2 - T1
Diff=
651.41
V d: Vn nng acid
Vn : Nh mt phn ca qu trnh sn xut b phn ca vt c ti mt nh my t ng, b phn
c nhng trong nc lm ngui, sau nhng trong bn ng dung dch acid lm sch.
Trong ton b ca qu trnh nng acid gim i khi cc b phn c ly ra khi bn acid v khi
nhng b phn ca vt c vo bn th mt lng nc cn bm trn vt c khi nhng b trc
cng vo theo v khi nhc ra khi bn mt lng acid bm theo vt. m bo cht lng th nng
acid phi khng c nh hn mt lng ti thiu. Bn hy bt u vi nng dung dch l 90%
th nng ti thiu phi l 50%. Lng cht lng thm vo v ly i sau mi ln nhng dao ng
trong khong t 1% n 10%. Hi bao nhiu b phn c th nhng vo b dung dch acid trc khi
nng ca n gim xung di mc cho php?
Gii php:
Ban u nng acid l initial_con = 90% = acid/ (acid + water)
sau ln nhng th nht nng acid cn:
con =
acid l lng acid ban u trong dung dch, water l lng nc ban u trong dung dch,
lost l lng phn trm nc thm vo. S acid cn li trong dung dch sau ln nhng th nht
l:
acid_left =
con =
con =
n=
14
>> initial_con = 90
initial_con=
90
>> min_con = 50
min_con=
50
>> lost = 0.01;
>> n = floor(log( initial_con/min_con)/log(1+lost))
n=
59
-------------------oOo----------------------
chng 3
NHNG C IM CA CA S LNH
>> who
D h
buiding_height theta
Cc bin ny c dng trong v d c lng chiu cao ngi nh. xem chi tit hn v cc bin ta
dng lnh whos:
>> whos
Name Size Bytes Class
buiding_height theta
CLEAR ALL also has the side effect of removing all debugging
breakpoints since the breakpoints for a file are cleared
whenever
the m-file changes or is cleared.
16
Cui cng, khi lm vic trong khng gian lm vic ca MATLAB, n thng thun tin
ghi hoc in mt bn sao cng vic ca bn, lnh diary ghi d liu ngi dng a vo v ca s lnh
v a ra file vn bn dng m ASCII c tn l diary trong th mc hin ti.
Cha tt c cc bin trong MATLAB theo kiu nh phn trong file MATLAB.mat
cha tt c cc bin trong MATLAB theo kiu nh phn trong fle data.mat.
Ghi cc bin erasers, pads, tape trong dng m ASCII 8 s trong file data. File dng m
ASCII c th sa i bng bt c chng trnh son tho vn bn no, ch rng file ASCII khng c
phn m rng .mat.
Ghi cc bin erasers, pads, tape dng ASCII 16 s trong file data.
Lnh load cng dng vi c php tng t.
Mt ch quan trng l MATLAB khng thay i s khi nh li khun dng hin th c chn, m
ch thay i mn hnh thay i.
---------------oOo-----------------
Chng 4
Script M_files
function example1
% example1.m V d c lng chiu cao ngi nh
h = 2
theta = 60
D = 50;
building_height = h + D*tan(theta*pi/180)
18
Bn c th ghi v lu gi file nybng cch chn Save t bng chn file. Khi bn ghi ln file ch
phi nh tn file trng vi tn hm (example) khng cn nh vo phn m rng, MATLAB t
gn vo cho n. Khi t du nhc ta c th nh:
>> example1
h=
2
theta=
60
building_height=
54.3599
Khi MATLAB din gii cc trng thi ca example1 trn, n s c ni k hn chng
sau, nhng mt cch ngn gn, MATLAB dng cc trng thi ca bin MATLAB hin ti v to ln
cc lnh ca n, bt u bng tn M_file. Ngha l, nu example1 khng phi l bin hin ti, hoc
mt lnh MATLAB xy dng ln, MATLAB m file example1.m (nu n tm thy) v tnh gi tr
cc lnh tm thy ch khi chng ta vo cc thng s chnh xc ti du nhc ca ca s lnh. Nh
thy lnh trong M_file truy cp n tt c cc bin trong khng gian lm vic ca MATLAB, v tt c
cc bin trong M_file tr thnh mt phn ca khng gian lm vic. Bnh thng cc lnh c trong
M_file khng c hin th nh l n c tnh trong ca s lnh, nhng lnh echo on yu cu
MATLAB hin th hoc lp li lnh i vi ca s lnh nh chng ta c v tnh. Tip theo bn c
th on c lnh echo off lm g. Ging nh vy, lnh echo lp li bi chnh n lm thay i chnh
trng thi ca n.
Vi c im ny ca M_file bn c th thay i li ni dung ca file, v d bn c th m
M_file example1.m thay i li cc gi tr ca h, D, hoc theta, ghi li file v yu cu
MATLAB tnh li lnh trong file. Thm na, bng cch to M_file, cc lnh ca bn c lu trn a
v c th ng dng v sau khi bn cn.
Nhng ng dng ca ch dn ca MATLAB gip chng ta hiu c khi dng script file nh
trong example1.m, ch dn cho php bn lu gi cng cc lnh trong script file, v vy bn nh -
c nhng lnh lm g khi bn nhn li file sau y. Thm na, du chm phy ng sau cu lnh
khng cho hin th kt qu, t bn c th iu chnh script file a ra nhng kt qu cn thit.
V nhng ng dng ca script file, MATLAB cung cp mt s hm c bit c ch khi bn s
dng trong M_file:
Cc hm M_file
disp(ans) Hin th cc kt qu m khng hin tn bin
echo iu khin ca s lnh lp li cc lnh ca script file
input S dng du nhc a d liu vo
keyboard Trao iu khin tm thi cho bn phm
pause Dng li cho n khi ngi dng nhn mt phm bt k
pause(n) Dng li n giy
waitforbuttonpress Dng li cho n khi ngi dng nhn chut hoc phm.
Khi lnh ca MATLAB khng kt thc bng du chm phy, kt qu ca lnh c hin th
trn ca s lnh cng vi tn bin. i lc n thun tin khi khng cho hin tn bin, trong MATLAB
ta dng lnh disp thc hin vic ny:
gip bn son tho script file khi tnh ton cho nhiu trng hp, lnh input cho php bn
to cu nhc vo d liu c an ton. V d example1.m vi nhng phn c sa:
function example1
% example1.m V d c lng chiu cao ngi nh
h = 2
theta = 60
D = input( Vo khong cch gia ngi v ngi nh: )
building_height = h + D*tan(theta*pi/180)
>> example1
h=
2
theta=
60
Vo khong cch gia ngi v ngi nh: 60
D=
60
building_height=
64.8319
>> example1
h=
2
theta=
60
Vo khong cch gia ngi v ngi nh: sqrt(1908)+5
D=
48.6807
building_height=
52.9783
echo on
function example1
% example1.m V d c lng chiu cao ngi nh
h = 2
theta = 60
D = input( Vo khong cch gia ngi v ngi nh: )
building_height = h + D*tan(theta*pi/180)
echo off
20
>> example1
% example1.m V d c lng chiu cao ngi nh
h = 2
h=
2
theta = 60
theta=
60
D = input( Vo khong cch gia ngi v ngi nh: )
Vo khong cch gia ngi v ngi nh: 60
building_height = h + D*tan(theta*pi/180)
building_height=
64.8319
echo off
Nh bn thy trong trng hp ny, lnh echo lm cho kt qu kh c hn, nhng ngc
li lnh n c th rt c ch khi g ri nhiu script file ng dng.
------------------oOo-------------------
Chng 5
QUN L Tp
MATLAB cung cp mt s cc hm file h thng v cc lnh cho php bn lit k tn file, xem, v
xo M_file, hin th v thay i th mc cha n. Mt s tng kt cc lnh c wa ra trong bng d-
i y. Thm vo bn c th xem v sa ng dn ca MATLAB (matlabpath). Nhng ng
dn ny ch cho MATLAB ni cha script file v hm M_file trong my tnh ca bn. C rt nhiu tr-
ng hp cc hm trong MATLAB l cc M_file n gin c cha trong a, nhng MATLAB
thng bo khng bit hm ny, nh vy do n khng tm c ng dn ca MATLAB, bn cn
phi thay i li ng dn:
Cc hm h thng file
addpath dir1 Thm th mc dir1 vo bt u ca ng dn
cd Hin th th mc hin thi
p = cd Gn th mc lm vic hin thi cho bin p
cd path Thay i th mc a ra bng ng dn
delete test.m Xo M_file test.m
dir Danh sch tt c cc file trong th mc hin thi
d = dir Tr li file trong th mc hin thi trong cu trc
bin d
edit test M test.m son tho, ging nh Open trong
bng chon file
exist(cow,file) Kim tra s tn ti ca file cow.m trong ng
dn
exist(d,dir) Kim tra s tn ti ca th mc d trong ng dn
filesep Tch file nh\ trong Windows95 v NT, : trn
Macintosh
fullfile To tn file vi ng dn y
21
ng dn ca MATLAB
Khi bn g >> cow, MATLAB s lm nh sau:
(1) Kim tra nu cow l mt bin trong khng gian lm vic ca MATLAB, nu khng th...
(2) N kim tra nu cow l mt hm c xy dng, nu khng th...
(3) N kim tra nu mt tn M_file cow.m tn ti trong th mc hin thi, nu khng th...
(4) N kim tra nu cow.m tn ti bt c ni no trn ng dn ca MATLAB bng cch tm
kim ng dn.
Khi no s ph hp c tm thy th MATLAB chp nhn n. V d nh cow tn ti nh mt
bin trong khng gin lm vic ca MATLAB, th MATLAB khng dng hm hoc bin c tn l
cow. V vy bn trnh khng nn to bin c tn trng vi tn hm nh:
>> sqrt = 1.2;
>> sqrt(2);
Nhng lnh trn s to ra li, bi v sqrt y khng phi l hm tnh cn bc hai, n l
bin c gi tr l 1.2. Th tc ng dn cn c dng khi lnh load c dng. u tin MATLAB
tm kim trong th mc hin ti, sau n tm theo ng dn ca MATLAB n file d liu.
Thc t th tc tm kim ca MATLAB phc tp hn l trnh by trn rt nhiu v MATLAB
dng rt nhiu file c phn m rng l .m . Hm M_file c th cha nhiu hn mt bin, th mc
trong matlabpath c th c th mc con gi l private, v MATLAB cung cp chng trnh hng i
tng vi cc ton t nh ngha li M_file trong th mc con, bt u bng k t @. Nu tt c
nhng c im ny c cng thm vo bng trn th n s y hn, nhng s rt kh hiu. Nu
bn mun nghin cu thm v phn ny th xem cc ti liu cung cp trong a CD.
Nu bn c M_file hoc MAT_file cha trong th mc khng phi trong ng n ca
MATLAB v khng trong th mc hin ti, MATLAB khng th tm thy chng. C hai gii php
cho vn ny l:
22
(1)_To th mc thit k thnh th mc hin ti, dng lnh cd hoc pwd t trong bng trc.
(2)_Cng thm th mc thit k trong ng dn ca MATLAB .
Cui cng n rt d dng khi ta s dng phng php duyt qua cc ng dn (path browser)
hoc cc lnh trong ca s lnh path v addpath. dng path browser, ta chn set path t bng chn
file hoc nhn chut trn nt path browser trn thanh cng c ca ca s lnh. Lm nh vy ta s -
c mn hnh ging nh hnh 5.1:
Ging nh thit k cc GUI, n lin quan trc tip khi ta s dng. ng dn matlabpath c hin
th bn tri, th mc con nm trong ng dn c chn nm bn tri, cn cc nt thay i -
ng dn nh thm ng dn mi (add to path), loi b ng dn (remove from path) pha trn.
ghi li s thay i ta chn save path t bng chn file ca ca s
path browser trc khi ng GUI.
----------------oOo-----------------
24
chng 6
cc php ton vi MNg
6.1 Mng n
>> x=[0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi pi]
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
>> y = sin(x)
y=
Columns 1 through 7
0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
Columns 8 through 11
0.8090 0.5878 0.3090 0.0000
Kt qu trn ta c mng ca y gm cc phn t tng ng l sine ca cc phn t ca x, y
MATLAB ngm hiu l ta tnh sine ca tng phn t ca x.
to mng, ta t cc phn t ca mng vo gia hai du ngoc vung "[...]"; gia hai phn
t ca mng c th l du cch hoc du phy ","
6.2 a ch ca mng
0.3142
>> y(5) % phn t th 5 ca mng
ans=
0.9511
+) truy nhp n nhiu phn t ca mng, v d ta truy nhp t phn t th nht n phn t th
nm ca mng x:
>> x(1:5)
ans=
0 0.3142 0.6283 0.9425 1.2566
>> y(7:end)
ans=
0.9511 0.8090 0.5878 0.3090 0.0000
>> y(3:-1:1)
ans=
0.5878 0.3090 0
v d trn 3 l phn t th 3, 1 l ch phn t u tin, cn -1 l gi tr cng (v tr phn t sau bng
v tr phn t trc cng vi -1)
Truy nhp n cc phn t trong khong t phn t th 2, n phn t th 7, v tr ca phn t sau
bng v tr ca phn t trc cng vi 2, ca mng x:
>> x(2:2:7)
ans=
0.3142 0.9425 1.5708
>> x(1:3)
ans=
0 0.3142 0.6283
>> x= (0:0.1:1)*pi
26
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
>> x = linspace(0,pi,11)
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
>> d=[a(1:2:5) 1 0 1]
d=
1 3 5 1 0 1
Trong cc v d trc, mng cha mt hng v nhiu ct, ngi ta thng gi l vector hng.
Ngoi ra ta cn c mng l vector ct, tc l mng c mt ct v nhiu hng, trong trng hp ny tt
c mi thao tc v tnh ton i vi mng nh trn l khng thay i.
T cc hm to mng minh ho phn trc (tt c u to vector hng), c nhiu cch to
vector ct. Mt cch trc tip to vector ct l vo tng phn t ca mng nh v d sau:
>> c = [1;2;3;4;5]
c=
1
2
3
4
5
Khc vi trc l ta dng du cch hay du phy phn cch gia hai ct ca vector hng.
Cn v d ny ta dng du chm phy phn cch gia hai hng ca vector ct.
Mt cch khc to cc vector ct l dng cc hm linspace, logspace, hay t cc vector
hng, sau dng phng php chuyn v. MATLAB dng ton t chuyn v l ( ' ) chuyn t
vector hng thnh vector ct v ngc li.
V d to mt vector a v vector b l chuyn v ca vector a, vector c l chuyn v ca vector b:
>> a= 1:5
a=
1 2 3 4 5
>> b= a'
b=
1
2
3
28
4
5
>> c= b'
c=
1 2 3 4 5
Ngoi ra MATLAB cn s dng ton t chuyn vi du chm ng trc ( .' ) ( ton t chuyn v
chm). Ton t ny ch khc vi ton t chuyn v ( ' ) khi cc phn t ca mng l s phc, tc l t
mt vector ngun vi cc phn t l s phc, ton t ( ' ) to ra vector phc lin hp chuyn v, cn
ton t ( .' ) ch to ra vector chuyn v.
V d sau y s lm r iu trn:
>> c = a.' % To vector c t vector a trn bng ton t chuyn v chm
c=
1
2
3
4
5
>> d = a + i*a % To vector s phc d t vector a
d=
Columns 1 though 4
1.0000+1.0000i 2.0000+2.0000i 3.0000+3.0000i 4.0000+4.0000i
Columns 5
5.0000+5.0000i
>> e = d.' % To vector e t vector d bng ton t chuyn v chm ( .' )
e=
1.0000 + 1.0000i
2.0000 + 2.0000i
3.0000 + 3.0000i
4.0000 + 4.0000i
5.0000 + 5.0000i
>> f = d' % To ra vector f t vector d bng ton t chuyn v ( ' )
f=
1.0000 - 1.0000i
2.0000 - 2.0000i
3.0000 - 3.0000i
4.0000 - 4.0000i
5.0000 - 5.0000i
>> g = [1 2 3 4;5 6 7 8]
g=
1 2 3 4
5 6 7 8
>> g = [1 2 3 4
5 6 7 8
9 10 11 12]
g=
1 2 3 4
5 6 7 8
9 10 11 12
Ch : Khi nhp vo ma trn th gia cc hng s phn t phi bng nhau nu khng chng
trnh s b bo li nh v d sau:
>> h = [1 2 3;4 5 6 7]
Numbers of elements in each row must be the same
>> g = [1 2 3 4; 5 6 7 8; 9 10 11 12];
>> -2 % Tr cc phn t ca mng g i 2
ans=
-1 0 1 2
3 4 5 6
7 8 9 10
>> 2*g - 1 % Nhn tt c cc phn t ca mng g vi 2 sau tr i 1
ans=
1 3 5 7
9 11 13 15
17 19 21 23
7 8 9 10
12 13 14 15
>> ans - h % Ly kt qu trc tr i mng h, ta c li mng g.
ans=
1 2 3 4
5 6 7 8
9 10 11 12
>> 2*g - h % Nhn ma trn g vi 2 sau ly kt qu tr i ma trn h.
ans=
1 3 5 7
8 10 12 14
15 17 19 21
>> g.*h % Nhn tng ng cc phn t ca mng g vi cc phn t ca mng h
ans=
1 2 3 4
10 12 14 16
27 30 33 36
>> g*h
??? Error using ==> *
Inner matrix dimensions must agree.
>> g/h
Warning: Rank deficient, rank = 1 tol = 503291e-15.
ans=
0 0 0.8333
0 0 2.1667
0 0 3.5000
>> h/g
Warning: Rank dificient, rank = 2 tol = 1.8757e-14.
ans=
- 0.1250 0 0.1250
31
- 0.2500 0 0.2500
- 0.3750 0 0.3750
ans=
1 4 9 16
25 36 49 64
81 100 121 144
>> g.^-1 % Cc phn t ca g c lu tha vi s m l -1.
ans=
1 0.5 0.33333 0.25
0.2 0.16667 0.14286 0.125
0.11111 0.1 0.090909 0.083333
>> 2.^g % Cc phn t ca g l s m ca 2.
ans=
2 4 8 16
25 36 49 64
729 1000 1331 1728
D liu minh ho: a = [a1 a2 ... an] , b = [b1 b2 ... bn] , c l s v hng
Cng vi s n a+c = [a1 +c a2 +c ... an+c]
Nhn vi s n a*c = [a1 *c a2 *c ... an*c]
Cng mng a+b = [ a1+b1 a2+b2 ... an+bn ]
Nhn mng a.*b = [ a1*b1 a2*b2 ... an*bn ]
Chia phi mng a./ b = [ a1/ b1 a2/ b2 ... an/ bn ]
Chia tri mng a.\ b = [ a1\ b1 a2\ b2 ... an\ bn ]
Lu tha mng a.^c = [ a1^c a2^c ... an^c ]
c.^a = [ c^a1 c^a2 ... c^an ] a.^b = [ a1^b1 a2^b2 ... an^bn ]
ans=
0 0 0 0 0
0 0 0 0 0
>> A = [1 2 3; 4 5 6; 7 8 9]
A=
1 2 3
4 5 6
7 8 9
y ma trn A khng c 6 ct, kch c ca ma trn A phi tng ln cho ph hp, cc phn t tng
thm c in bng cc con s khng.
>> B = B.'
B=
1 4 7
3 6 9
>> B(2,:) = []
B=
1 4 7
>> A(2,:) = B % Thay hng th hai ca ma trn A bng ma trn B.
A=
1 2 3
1 4 7
7 8 9
>> B = A(:,[2 2 2 2])
B=
2 2 2 2
4 4 4 4
8 8 8 8
>> A(2,2) = []
??? Indexed empty matrix assignment is not allowed.
>> B = A(4,:)
??? Index exeeds matrix dimension.
>> B(1:2,:) = A
??? In an assignment A(matrix, :) = B, the number of columns in A
and B must be the same.
>> B = [1 4 7];
>> B(3:4,:) = A(2:3,:)
B=
35
1 4 7
0 0 0
1 4 7
7 8 9
Nhng ta c th gn hai hng ca ma trn A cho hai hng ca ma trn B, khi ma trn A v ma trn B
c cng s ct. Ma trn B ch c mt hng nn khi thm hng th ba v hng th t th hng th hai
ca ma trn B c mc nh cho thm cc phn t 0 vo.
>> D = [1 2 3 4; 5 6 7 8; 9 10 11 12]
D=
1 2 3 4
5 6 7 8
9 10 11 12
>> D(2) % Phn t th hai ca mng.
ans=
5
>> D(5) % Phn t th nm ca mng ( ct 2, hng 2 ).
ans=
6
>> D(end) % Phn t cui cng ca mng.
ans=
12
>> D(4:7) % T phn t th t n phn t th by ca ma trn.
ans=
2 6 10 3
>> y = x( abs(x)>1)
y=
-3 -2 2 3
To mng y bng cch ly nhng phn t ca x m c tr tuyt i ln hn mt.
Nhiu khi chng ta mun bit cc ch s hay danh sch cc ch s ca nhng phn t ca mt
mng m n tho mn mt biu thc quan h, trong MATLAB thc hin vic ta s dng hm
find, hm ny tr v danh sch con ch s ti nhng phn t m biu thc quan h ca chng l ng:
>> x = -3:3
x=
-3 -2 -1 0 1 2 3
>> k = find(abs(x)>1)
37
k=
1 2 6 7
tm nhng ch s ti nhng v tr m ti abs(x)>1
y = x(k)
y=
-3 -2 2 3
To mng y, dng cc ch s trong mng k.
Hm find cng c th s dng trong ma trn:
>> A = [1 2 3; 4 5 6; 7 8 9]
A=
1 2 3
4 5 6
7 8 9
>> [i,j] = find(A>5)
i=
3
3
2
3
j=
1
2
3
3
y i l ch s hng, cn j l ch s ct; gia i v j c mi quan h tng ng ch nhng v tr
m ti biu thc quan h l ng.
Ch : khi MATLAB tr li hai hoc nhiu bin, chng c t trong du ngoc vung, v c
t bn tri du bng. C php ny khc vi c php thao tc i vi mng trn, khi m [i,j]c
t bn phi du bng, v n xy dng ln mt mng m j c kt ni vo bn phi du bng.
Bng di y tm tt dng lnh ca phn tm kim mng:
Tm kim mng
i = find(x) Tr li cc ch s ca mng x ni m cc phn t ca n khc khng
[ r, c ] = find(x) Tr li ch s hng v ch s ct ca mng x ni m cc phn t ca
n khc khng.
>> A = [1 2 3; 4 5 6; 7 8 9]
A=
1 4 7
2 5 8
3 6 9
>> B = A.*(-1).^A
B=
-1 4 -7
2 -5 8
38
-3 6 -9
>> C = 1:9 % To mng c cng gi tr vi A nhng c khun dng khc.
1 2 3 4 5 6 7 8 9
>> isequal(A,C)
ans=
0
>> isequal(A,B)
ans=
0
>> isequal(A,A)
ans=
1
>> isequal(C,C)
ans=
0
Hm isequal tr li gi tr logic l ng (1) khi hai mng c cng kch c, cc phn t ging nhau.
Ngoi ra n tr li gi tr l sai (0).
Thm vo , hm ismember ch ra cc phn t ging nhau gia hai mng:
ans=
0 1 1 1 1 0 0 0 0 0 0
y l mng c cng kch c vi x, vi 1 ti cc phn t chung.
>> ismember(x,A)
ans=
0
1
0
1
0
1
0
1
0
-9
-7
-5
-3
-1
1
3
5
7
9
Nhng hm ny c tng kt li trong bng di y:
So snh mng
phn trc chng ta bit lnh who cung cp tn bin do ngi dng nh ngha. Trong trng
hp ca mng, n cn rt quan trng khi bit kch c ca mng. Trong MATLAB, lnh whos cung
cp nhng thng tin ny:
>> whos
Name size Bytes Class
A 3x3 72 double array
B 1x3 24 double array
ans 1x4 32 double array (logical)
Grand total is 16 elements using 128 bytes
>> A = [1 2 3 4; 5 6 7 8];
>> s = size(A)
s=
2 4
Vi mt thng s ra, hm size tr li mt vector hng trong c hai phn t, phn t th nht l
ch s hng, cn phn t th hai ch s ct.
>> [r,c] = size(A)
r=
2
c=
4
Vi hai thng s a ra, hm size tr li s hng trong bin th nht, v s ct trong bin th hai.
41
>> r = size(A,1)
r=
2
>> c = size(A,2)
Gi hai thng s, hm size ch tr v s ct hoc s hng.
>> length(A)
ans=
4
Tr v gi tr s hng hoc s ct, gi tr no ln hn c tr v.
>> B = pi:0.01:2*pi;
>> size(B)
ans=
1 315
Cho bit rng B l vector hng, v
>> length(B)
ans=
315
tr li di ca vector.
>> size([ ])
Kch c ca mng
whos Hin th cc bin, m tn ti trong khng gian lm vic v kch c ca
chng.
s = size(A) Tr li vector hng s, m phn t th nht l s hng ca A, phn t th
hai l s ct ca A.
[ r, c ] = size(A) Tr li hai s v hng r, c cha s hng v s ct ca A.
r = size(A, 1) Tr li s hng ca A trong bin r.
c = size(A, 2) Tr li s ct ca A trong bin c.
n = length(A) Tr li max(size(A)) trong bin n khi A khng rng.
c=
0 3
3 0
>> d = cat(3,a,b,c)
d(:,:,1)=
1 0
0 1
d(:,:,2)=
2 2
2 2
d(:,:,3)=
0 3
3 0
>> size(d)
ans=
2 2 3
To cc mng hai chiu a, b, c, sau ghp chng lai vi nhau thnh mng ba chiu bng cch
s dng hm cat. Nh vy mng d l mng c hai hng, hai ct, v ba trang. Mng a to trang th
nht, b l trang th hai, v c l trang th ba. Thng s trang din t chiu th ba ca mng, cung cp
mt cch hnh dung v mng ba chiu nh mng hai chiu, cc trang xp th t t mt cho n cui
nh trong mt quyn sch. i vi cc mng c s chiu cao hn, khng c tn chung, v n cng rt
kh tng tng!
Thao tc vi mng nhiu chiu cng ging nh cc th tc a ra trn i vi mng mt chiu
v hai chiu. Ngoi ra MATLAB cn cung cp mt s hm thao tc trc tip i vi mng nhiu
chiu:
amount_left=
Columns 1 through 7
9.6594 9.3303 9.0125 8.7055 8.4090 8.1225 7.8458
Columns 8 through 10
7.5786 7.3204 7.0711
Dng ton t mng lm cho n tnh cc gi tr mt cch n gin hn khi nhn nhiu gi tr ca
mt bin. Ch rng nhn chm (.^) c s dng v chng ta mun lu tha 0.5 ln i vi mi
phn t ca mng. Nhng d liu ny c th d dng v chng trong MATLAB nh hnh di:
>> plot(time/7,amount_left)
>> xlabel(Week number), ylabel(Amount of Polonium left)
Hnh 6.1
V d: Tm kim gii php s dng vectors
>> pow
number =
142
number =
71
number =
24
number =
12
number =
2
n=
301 721
n=
function example6_2
% script M_file example6_2
initial_con=90;
min_con=50;
lost=1:10 % consider 1% to 10% in increments of 1%
n=floor(log(initial_con/min_con)./log(1+lost/100))
stem(lost,n)
xlabel('Percent Lost with Each Dip')
ylabel('Number of Dips')
45
lost =
1 2 3 4 5 6 7 8 9 10
n =
59 29 19 14 12 10 8 7 6 6
Hnh 6.2
--------------------oOo------------------
chng 7
V c bn, MATLAB c vit i vi nhng ma trn v thc hin php ton s hc tuyn tnh
n gin m xut hin trong nhiu ng dng. Mt vn chung nht ca s hc tuyn tnh l vic gii
phng trnh. V d to phng trnh:
. =
A.x = b
Biu tng php nhn ton hc (.) c nh ngha trong php ton trn, khc vi k hiu ta dng
i vi mng trc kia. Trong MATLAB php nhn ma trn ny c nh ngha bng du sao (*).
Tip theo nh ngha du bng, ma trn to ra t ma trn A v vector x bng vi vector b. Gii php
tn ti cho s cn bng cp trn l nhng vn c bn ca s hc tuyn tnh. Thm na, khi li
gii khng tn ti, c rt nhiu cch gn ng tm kim gii php, nh php loi tr Gaussian, s
tm tha s LU, hoc tnh trc tip A-1 .b. Di y chng ta s cp n mt s cch gii quyt nh
trn:
Trc tin nhp vo ma trn A v b:
>> A = [1 2 3; 4 5 6; 7 8 0]
A=
1 2 3
4 5 6
7 8 0
>> b = [366; 804; 315]
b=
366
804
351
Nu bn c kin thc v s hc tuyn tnh, n rt d bn kim tra xem nh thc ca ma trn trn
c khc khng hay khng:
>> det(A)
ans=
27
Nu n ng, MATLAB c th gii phng trnh theo hai cch, mt cch hay c dng hn,
mt cch t s dng, nhng trc tip hn, phng php ny l chuyn thnh dng x=A-1.b.
>> x = inv(A)*b
x=
25.0000
22.0000
99.0000
y inv(A) l hm ca MAYLAB dng tnh A-1; v ton t nhn ( * ), khng c du chm pha
trc, y l php nhn ma trn. Phng php c dng nhiu hn l dng ton t chia ma trn tri:
>> x = A\b
x=
25.0000
22.0000
99.0000
47
804
351
>> x = A\b % phng php vi s phn t 0 cc i.
x=
0
-165.9000
99.0000
168.3000
>> xn = pinv(A)*b % Tm kim gii php tiu chun nh nht.
xn=
30.8182
-168.9818
99.0000
159.0545
>> norm(x) % Tiu chun O_clit vi cc phn t 0.
ans=
256.2200
>> norm(xn) % Gii php tiu chun nh nht
ans=
254.1731
7.2 Cc hm ma trn .
>> a = [1 2 3; 4 5 6];
>> b = find(a>10)
b=
[ ]
y b l ma trn rng. MATLAB tr li ma trn rng khi php ton khng c kt qu. Trong v
d trn khng c phn t no ca a ln hn 10. Ma trn rng khng c kch c, nhng tn bin ca
chng vn tn ti trong khng gian lm vic.
>> randn(2)
50
ans=
1.1650 0.0751
0.6268 0.3516
ma trn 2x2 ca cc s cung cp bi hm random vi gi tr trung bnh l 0. Thut ton cho hm rand
v randn c th tm thy trong S.K>Park and K.W.Miller,Random Number Generator: Good Ones
Are Hard to Find, Comm. ACM, 32, 10, Oct. 1988-1201.
>> eye(3)
ans=
1 0 0
0 1 0
0 0 1
Ma trn ng nht 3x3
>> eye(3,2)
ans=
1 0
0 1
0 0
Ma trn ng nht 3x2
Ngoi ra ch kch c ca mt ma trn, bn c th dng hm size to mt ma trn c kch c
ging nh ma trn khc:
>> A = [1 2 3; 4 5 6];
>> ones(size(A))
ans=
1 1 1
1 1 1
Cc ma trn c bit
[ ] Ma trn rng
compan To ma trn rng
eye Ma trn ng nht
gallery Ma trn kim tra nh vi phn t
hadamard Ma trn Hadamard
hankel Ma trn Hankel
hilb Ma trn Hilbert
invhilb Chuyn thnh ma trn Hilbert
magic Ma trn vung, gi tr cc phn t bng t 1 n gi tr s phn t
ones Ma trn 1
pascal Ma trn tam gic Pascal
rand Ma trn vi cc phn t ngu nhin t 0 n 1.
randn Ma trn ngu nhin thng thng vi gi tr trung bnh bng 0
rosser Ma trn kim tra i xng trc chnh
toeplitz Ma trn Toeplitz
vander Ma trn Vandermond
wilkinson Ma trn kim tra Wilkinson
51
V d
Vn : Ta c mch in nh trong hnh 7.1 c m t bng phng trnh in p nt khi ngun
a vo l sng hnh sin.
Hnh 7.1
function circuit
% circuit.m script file to solve circuit proplem
A(1,1)=1/2; % poke in nonzero values as needed
A(1,2)=-1/2;
A(2,1)=-1/2;
A(2,2)=1/2 + 0.2j + 1/10j;
A(2,3)= -1/10j;
A(3,2)=-1/10j;
A(3,3)=1/10 + 1/10j;
y=[-1 0 0]'; % right hand side vector
v=A\y % complex solution
vmag=abs(v) % solution magnitudes
vphase=angle(v)*180/pi % solution phase in degrees
theta=linspace(0,2*pi); % plot results in time
v1=vmag(1)*cos(theta-vphase(1));
v2=vmag(2)*cos(theta-vphase(2));
v3=vmag(3)*cos(theta-vphase(3));
thd=theta*180/pi;
plot(thd,v1,thd,v2,thd,v3)
vmag =
7.2111
52
6.3246
4.4721
vphase =
123.6901
108.4349
63.4349
Hnh 7.2
---------------------oOo---------------------
chng 8
Thm vo nhng ton t truyn thng, MATLAB cung cp ton t logic v quan h. Bn c th
quen thuc vi nhng php ton ny, nu bn lm quen vi cc ngn ng lp trnh khc. Mc ch
ca nhng ton t v hm ny l tr li cu hi True_False (ng_sai).
i vi cc s th trong ton t logic v quan h quy nh cc s khc khng l True cn s khng
l False. Kt qu ca php ton logic v quan h a ra l 1 cho True, 0 cho False.
53
Ton t quan h MATLAB c th dng so snh hai mng c cng kch c hoc so snh mt
mng vi mt s n. Trong trng hp th hai, s n so snh vi tt c cc phn t ca mng, kt
qu tr v ging nh kch c ca mng. V d:
>> A = 1:9, B = 9 - A
A=
1 2 3 4 5 6 7 8 9
B=
8 7 6 5 4 3 2 1 0
>> tf = A>4
tf=
0 0 0 0 1 1 1 1 1
tm kim cc phn t ca A m ln hn 4. Kt qu bng 0 khi A 4, bng 1 khi A>4.
>> tf = (A==B)
tf=
0 0 0 0 0 0 0 0 0
>> tf = B - (A>2)
tf=
8 7 5 4 3 2 1 0 -1
Tm cc phn t A>2 v b tr bi vector B. V d ny ch ra rng kt qu a ra ca ton t logic l
mt mng s bao gm cc s khng v mt, chng cng c th dng trong cc php ton s hc.
>> B = B + (B==0)*eps
B=
Columns 1 through 7
8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000
Columns 8 through 9
1.0000 0.0000
V d trn a ra cch thay th cc phn t ca B m trng vi khng bng s c bit ca MATLAB
l eps, c gi tr xp x 2.2e-16. Cch thay th ny i khi c ch l trnh trng hp chia cho s
khng nh v d sau:
>> x = (-3:3)/3
54
>> x = x + (x==0)*eps;
>> sin(x)/x
ans=
0.8415 0.9276 0.9816 1.0000 0.9816 0.9276 0.8415
Ton t logic cung cp mt cch din t mi quan h ph nh hay t hp. Ton t logic
MATLAB bao gm:
>> A = 1:9; B = 9 - A;
>> tf = A>4
tf=
0 0 0 0 1 1 1 1 1
Tm kim cc phn t ca A m ln hn 4.
>> tf = ~(A>4)
1 1 1 0 0 0 0 0
ph nh ca kt qu, tng ng vi v tr no bng khng thay bng mt v ngc li.
>> tf = (A>2)&(A<6)
tf=
0 0 1 1 1 0 0 0 0
Tr li mt ti nhng v tr m phn t ca A ln hn 2 v nh hn 6.
Cc hm kim tra
isa(X, name) True nu X c lp i tng l name
iscell(X) True nu i s l mng phn t.
iscellstr(X) True nu i s l mng phn t ca cc xu.
ischar(S) True nu i s l xu k t.
isempty(X) True nu i s l rng.
isequal(A, B) True nu A v B ging nhau.
isfield(S, name) True nu namel mt trng ca cu trc S.
isfinite(X) True khi cc phn t c hn.
isglobal(X) True khi i s l bin ton cc.
ishandle(h) True khi i s l s iu khin i tng hp l
ishold True nu th hin ti gi trng thi ON.
isiee True nu my tnh thc hin php s hc IEEE
isinf(X) True ti nhng phn t v cng
isletter(S) True khi cc phn t thuc bng ch ci.
islogical(X) True khi i s l mng logic
ismember(A, B) True ti nhng v tr m phn t ca A v B trng nhau
isnan(X) True khi cc phn t l khng xc nh (NaN)
isnumeric(X) True khi i s l mng s
isppc True cho Macintosh vi b x l PowerPC
isprime(X) True khi cc phn t l s nguyn t
isreal(X) True khi i s khng c phn o
isspace(S) True khi cc phn t l k t trng
issparse(A) True nu i s l ma trn Sparse
isstruct(S) True nu i s l mt cu trc
isstudent True nu Student Edition ca MATLAB
isunix True nu my tnh l UNIX
isvms True nu my tnh l VMS
----------------------oOo--------------------
chng 9
VN Bn
9.1 Xu k t
V d:
>> double(t)
ans=
Columns 1 through 12
72 111 119 32 97 98 111 117 116 32 116 104
Columns 12 through 24
105 115 32 99 104 97 114 97 99 116 101 114
Columns 25 through 32
32 115 116 114 105 110 103 63
>> abs(t)
ans=
Columns 1 through 12
72 111 119 32 97 98 111 117 116 32 116 104
Columns 13 through 24
105 115 32 99 104 97 114 97 99 116 101 114
Columns 25 through 32
32 115 116 114 105 110 103 63
>> char(t)
ans=
How about this character string?
>> u = t(16:24)
u=
character
a ch ca xu cng ging nh mng. y phn t t 16 n 24 cha t character
>> u = t(24:-1:16)
retcarahc
57
y l t character c ngc li
>> u = t(16:24)
u=
c
h
a
r
a
c
t
e
r
>> w = [u,v]
w=
character I can t find the manual!
>> disp(v)
I can't find the manual
9.2 Chuyn i xu
Cc hm chuyn i xu
Trong trng hp chng ta to mt thng bo c cha cc s khng phi l xu, nhng hm chuyn
i s gip chng ta lm vic .
9.3 Cc hm v xu
Cc hm xu
blanks(n) Tr li mt xu gm cc k t trng hay du cch
deblank(s) Tr li cc vt trng t mt xu
eval(xu) c lng xu nh l mt lnh ca MATLAB
eval(try, catch) c lng xu v bt li
feval(f, x, y, ...) Hm evaluate a ra bng xu
findstr(s1, s2) Tm kim mt xu trong mt xu khc
ischar(s) True nu a vo l mt xu
isletter(s) True ti nhng v tr k t Alphabet tn ti
isspace(s) True ti nhng v tr l k t trng
lasterr Xu ca li cui cng MATLAB a ra
lower(s) Xu vi nhng ch ci thng
strcat(s1, s2, ...) Ni cc xu thnh hng
strcmp(s1, s2) True nu cc xu ging nhau
strmatch(s1, s2) Tm kim kh nng ging nhau ca xu
strncmp(s1, s2, n) True nu n k t u ging nhau
strrep(s1, s2) Thay th mt xu bng mt xu khc
strtok(s) Tm kim du hiu cho xu
strvcat(s1, s2, ...) Ni cc xu thnh ct
upper(s) Chuyn thnh ch in
>> strrep(b,'Peter','Pamela')
ans=
Pamela Piper picked a peck of pickled peppers
Nh trnh by trn, strrep n gin ch l s thay th mt xu. strrep khng lm vic vi ma trn
xu, v vy trc tin bn cn phi chuyn t ma trn thnh vector.
9.4 Ma trn t bo ca xu
60
>> C(2:)
ans=
'about'
'this for a'
>> C([4 3 2 1])
ans=
'cell array of strings?'
'this for a'
'about'
'How'
>> C(1)
ans=
How
y vn l mng t bo. thay i du nhy ca t bo, ta s dng ngoc nhn:
>> s = c{4}
ans=
cell array of strings?
>> size(s)
ans=
1 22
>> s = char(C)
How
about
this for a
cell array of strings?
>> size(s) % Kt qu l cc xu vi cc khong trng.
ans=
4 22
>> ss = char(C(1:2))
ss=
How
about
>> size(ss)
ans=
2 5
chuyn ngc li mng t bo, ta dng hm cellstr:
>> cellstr(s)
ans=
'How'
'about'
'this for a'
'cell array of strings?'
>> T = clock
T=
1997 1 21 16 33 39.934708
>> t = now
t=
729411.690045541
>> date
ans =
21-Jan-1997
8 'ddd' Wed
9 'd' W
10 'yyyy' 1995
11 'yy' 95
12 'mmmyy' Mar95
13 'HH:MM:SS' 15:45:17
14 'HH:MM:SS PM' 3:45:17 PM
'HH:MM' 15:45
16 'HH:MM PM' 3:45 PM
17 'QQ-YY' Q1-96
18 'QQ' Q1
v d vi hm datestr:
>> datestr(t)
ans=
21-Jan-1997 16: 33: 40
>> datestr(t,14)
ans=
4: 33: 40 PM
hoc
Hm datevec chuyn mt xu k t dng ngy (dng datestr dng 0, 1, 2, 6, 13, 14, 15, hoc
16) hoc mt s dng ngy sang vector.
day=
24
hr=
8
min=
22
sec=
0
10.3 Cc hm v ngy
Ngy ca tun c th tm t xu dng ngy hoc s dng ngy, dng hm weekday, MATLAB s
dng quy c Sunday = 1 v Saturday = 7.
>> [d w] = weekday(728647)
d=
2
w=
Mon
>> [d w] = weekday('21-Dec-1994')
d=
4
w=
Wed
Ngy cui thng c th tm bng hm eomday. Trong bt buc phi a vo nm, thng.
Hnh 10.1
Hnh 10.2
Ch s khc nhau v hm thi gian gia elapsed_time i vi lnh plot, lnh plot th hai
nhanh hn v MATLAB to hnh dng ca s v dch cc hm cn thit vo trong nh.
Hm cputime tr v tng s thi gian ca CPU (Central Processing Unit), tnh theo giy, trong
thi gian MATLAB dng t khi n c khi ng ln.
Hm etime tnh khong thi gian gia hai vector thi gian. Cc vector phi l vector hng gm
6 phn t, ging nh kt qu tr v trong lnh clock v datevec. Ti thi gian hin ti etime khng
chuyn gia thng v nm.
Tt c cc hm c th s dng tnh ton thi gian.
>> t = (1900:10:1990)';
>> p = [75.995; 91.972; 105.771; 123.203; 131.669;
150.697; 179.323; 203.212; 226.505; 249.633];
67
>> plot(datenum(t,1,1),p)
>> datetick('x','yyyy') % use 4-digit year on the x-axis
>> title('Population by year')
Hnh 10.3
68
Hnh 10.4
V d: Tm th su ngy 13
By gi chng ta c gii thiu cc lnh v thi gian, hy dng chng to mt s hm c
ch. Nu bn l ngi cn thn, bn mun bit bao gi th su ngy 13 xy ra. Hm M_file s cho bn
nhng thng tin ny.
function m=friday(start)
% FRIDAY Date of the next Friday the 13th
% FRIDAY display the next occurrence of Friday the
% 13th
% FRIDAY(START) start the search at the date
% specified by START
% M=FRIDAY return the date number of the next Friday
% the 13th
if nargin==0
start=now; % use the current date if none
end % was supplied
[yr,mo,da]=datevec(start);
da=da+6-weekday(start); % Start with the Friday in
% this week
start=datenum(yr,mo,da,0,0,0);
while 1
[yr,mo,da]=datevec(start);
if (weekday(start)==6)&(da==13)
break;
69
end
start=datenum(start+7); % skip to the next Friday
end
if nargout==0
disp(['Friday,'datestr(start,1)]) % Display the
% the result
else
m=start; % or return the resulting date
end % number
>> friday
Friday,13-Aug-1999
function F=fridays(ynum)
% FRIDAY List the Friday the 13ths in the year ynum.
% M=FRIDAY return the date numbers found.
%
if nargin==0
[ynum dummy]=datevec(now); % use the current date if
end % non was supplied
MM=[];
trynum=datenum(ynum,1,13,0,0,0);
% check January 13 first
trynum=friday(trynum); % find the first one
[tyr dummy]=datevec(trynum);
while tyr==ynum % May be there are more this year
MM=[MM;trynum];
trynum=friday(trynum+7); % skip to the next week
[tyr dummy]=datevec(trynum);
end
if nargout==0
disp('Fridays'); % Display the results
disp(datestr(MM,1)) % Display the result
else
F=MM; % or return the vector of
end % date number
-------------------oOo-------------------
chng 11
VNG LP IU KHIN
Vng lp for cho php mt nhm lnh thc hin lp li mt s ln c nh. C php ca vng lp
for nh sau:
for x = array
commands % Khi cc lnh
end
Cc cu lnh gia hai trng thi for v end c thc hin mt ln cho tt c cc ct ca mng
(array). Ti mi ln lp li, x c gn cho phn t ct tip theo nh trong sut n ln ca vng lp, x =
array(:, n).
V d:
Columns 8 through 10
Ni mt cch khc, trng thi th nht yu cu: Cho n bng t 1 n 10, tnh gi tr ca tt c cc
trng thi cho n trng thi k tip trng thi end. u tin trong vng lp for n=1, tip theo n=2, v
c nh vy cho n trng hp n=10. Sau trng hp n=10, vng lp for kt thc, v tt c cc lnh sau
trng thi end ca vng lp c thc hin.
Vng lp for khng th b kt thc bng cch gn li bin iu khin n trong vng lp:
Trng thi 1:10 l mt trng thi to ln mng MATLAB tiu chun. Bt c kiu mng no ca
MATLAB u c chp nhn trong vng lp for:
>> data = [3 9 45 6; 7 16 -1 5]
data =
3 9 45 6
7 16 -1 5
>> for n = data
x = n(1)-n(2)
end
x=
-4
x=
-7
x=
46
x=
1
Bnh thng vng lp for c th lng vo nhau:
>> n = 1: 10;
>> x = sin(n*pi/10)
x=
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
Trong hai trng hp nh trn, trng hp th hai ta dng mng tnh ton cng c kt qu
nh vy, nhng n nhanh hn v cc tho tc cng t hn.
72
tng tc tnh ton, mng cn phi c khi to trc khi thc hin vng lp for (hoc vng
lp while). Trong v d trc c mi ln lnh trong vng lp for c tnh, kch c ca bin x li tng
ln 1. iu ny lm cho MATLAB mt thi gian cp nht thm b nh cho x trong mi vng.
rt ngn bc ny, v d v vng lp for trc vit li nh sau:
Vng lp while thc hin lp li mt nhm lnh mt s ln c nh, nhng khng bit trc -
c s ln lp li.
C php ca vng lp while nh sau:
Nhiu khi chng ta cn nhng cu lnh c thc hin theo mt iu kin no . Trong ngn ng
lp trnh, logic ny c cung cp bi cu trc if-else-end. C php ca cu trc ny nh sau:
end
Khi cc lnh gia hai trng thi if v end c thc hin khi tt biu thc iu kin l ng.
Trong trng hp iu kin bao gm cc iu kin con, th tt c cc iu kin con c tnh v tr v
mt trng thi logic ca iu kin. V d:
>> apple = 10 % s to
>> cost = apple*25
cost=
250
>> if apple > 5
cost = (1-20/100)*cost; % b i 20%
end
>> cost
cost
200
Trong mu dng ny th khi biu thc iu kin u tin ng th cc cu lnh sau khng c
kim tra na, cc cu trc if-else-end cn li c b qua. Hn na cu lnh else cui c th khng
cn cho vo.
i vi cu trc if-else-end, chng ta cng c th lng vo cc vng lp for v while:
>> EPS = 1;
>> for num = 1:100
EPS = EPS/ 2;
if (1+EPS)< 1
EPS = EPS*2
74
break
end
end
EPS =
2.2204e-16
>> num
num=
53
V d ny a ra cch khc tnh s eps. Trong v d, khi lnh break c thc hin th MATLAB
nhy ra khi vng lp n ang thc hin. Khi lnh break xut hin trong mt vng lp for hoc while
trong cc vng lp nng nhau th n ch nhy ra khi mt vng lp cha n ch n khng nhy ra
khi tt c cc vng lp.
Khi mt chui cc lnh nh gi da trn mt biu thc th hoc biu thc iu kin vi nhiu gi
tr th khc nhau, ngi ta thng dng cu trc switch-case. Cu trc switch-case c dng nh sau:
y biu thc iu kin phi l dng s hoc dng chui, nu biu thc iu kin l dng s th
lnh case s th xem gi tr ca biu thc c bng gi tr th i hay khng. Nu biu thc iu kin
l mt chui th lnh case s so snh chui vi gi tr th i. Trong v d trc, biu thc iu kin
c em so snh vi gi tr th 1, nu chng bng nhau th khi lnh u tin c thc hin, m cc
khi lnh tip theo cho n trc trng thi end c b qua, nu chng khng bng nhau th iu
kin tip tc c em so snh vi gi tr th 2, gi tr th 3, gi tr th 4, nu mt trong cc gi tr
ny bng biu thc iu kin th khi lnh 2 c thc hin. Nu tt c cc lnh so snh ca case u
khng ng th khi lnh 3 c thc hin. Ch rng trong cu trc switch-case c it nht mt
nhm lnh phi c thc hin. Sau y l mt v d v cu trc switch-case:
x = 2.7;
units = 'm';
switch units % Chuyn x ra centimeters
case {'inch','in'}
y=x*2.54;
case {'feet','ft'}
y=x*2.54*12;
case {'meter','m'}
y=x/ 100;
case {'millimeter','mm'}
y=x*10;
case {'centimeter','cm'}
y=x;
otherwise
75
V d: Vn v li xut
Vn : mua mt t, bn phi vay 10,000$ vi li xut hng thng l 8.9%, trong 3 nm gc
v li c tnh nh th no sau mi ln chi tr. Ngoi ra phn tin cn li sau mi ln chi tr l bao
nhiu?
Gii php: T chng 2, s tin chi tr P hng thng cho khon vay A dollar vi li xut hng thng
l R, tnh trong M thng l:
P = A.
Ti ln chi tr u tin, tin li phi tr l Ip1= R.A. Gi s s tin phi tr l P th tin gc phi tr l
Pr1= P - Ip1 v s tin cn li sau ln chi tr th nht l B1=A - Pr1. Trong tt c cc ln chi tr sau
tin li phi tr l Ipm= R.Bm-1 v s tin cn li l Bm= Bm-1 - Prm. S dng cc thng tin ny th ch-
ng trnh MATLAB s nh sau:
function amort
% amort.m script file
A=10000; % amount of loan
M=3*12; % number of months
R=8.9; % annual interest rate
r=(R/100)/12; % monthly interest rate
P=A*(r*(1+r)^M/((1+r)^M-1)); % payment required
B=zeros(M,1); %storage for balance remaining per month
Ip=B; % storage for interest paid per month
Pr=B; % storage for principle paid per month
for m=1:M
if m==1 % compute interest when balance is
Ip(m)=r*A; % original amount
else
Ip(m)=r*B(m-1);
end
Pr(m)=P-Ip(m); % principle paid this month
if m==1 % compute balance remaining after payment
B(m)=A-Pr(m);
else
B(m)=B(m-1)-Pr(m);
end
end
format bank
disp(['Amount=' num2str(A)])
disp(['Interest Rate=' num2str(R)])
disp(['Number of months = ' num2str(M)])
disp(['Payment =' num2str(P)])
disp(' ')
disp(' Amortization Schedule')
disp(' Payment Balance Interest Principle')
76
disp([(1:M)' B Ip Pr])
format short g
Chy chng trnh ny th kt qu nh sau:
>> Amount=10000
Interest Rate=8.9
Number of months = 36
Payment =317.5321
Amortization Schedule
Payment Balance Interest Principle
1.00 9756.63 74.17 243.37
2.00 9511.46 72.36 245.17
3.00 9264.48 70.54 246.99
4.00 9015.65 68.71 248.82
5.00 8764.99 66.87 250.67
6.00 8512.46 65.01 252.53
7.00 8258.07 63.13 254.40
8.00 8001.78 61.25 256.28
9.00 7743.60 59.35 258.19
10.00 7483.49 57.43 260.10
11.00 7221.47 55.50 262.03
12.00 6957.49 53.56 263.97
13.00 6691.56 51.60 265.93
14.00 6423.66 49.63 267.90
15.00 6153.77 47.64 269.89
V d ny minh ho cu trc lp for v if-else-end. N cng minh ho vic s dng script M_file.
tnh ton mt khon cho vay bt k bn ch cn thay i d liu vo phn u ca chng trnh
v bn chy li n.
V d: Chui ln xung
Vn : cho x0 l mt s nguyn bt k. Gi s chui xk c nh ngha nh sau:
function up_down
% up_down.m script file for up/down sequence proplem
x=zeros(500,1); %preallocate storage for x(k)
x(1)=round(abs(input('Enter a number> ')));
k=1;
while (x(k)>1)&(k<500)
if rem(x(k),2)==0 % x(k) is even
x(k+1)=x(k)/2;
else % x(k) is old
x(k+1)=3*x(k)+1;
77
end
k=k+1; % increment sequence counter
end
x=x(x>0) % keep values generated only and dispay them
M=0:499;
plot(M,x)
Hnh 11.1
--------------------oOo-------------------
chng 12
HM M_FILE
function y=flipup(x)
% FLIPUP Flip matrix in up/down directiopn.
% FLIPUP(x) return x with columns preserved and rows flipped
% in the up/down direction. For example.
%
% x = 1 4 becomes 3 6
% 2 5 2 5
% 3 6 1 4
%
% See also FLIPLR, ROT90, FLIPDIM.
% Copyright (c) 1984-96 by the MathWork, Inc.
% $Revision: 5.3 $ $Date: 1996/10/24 18: 41: 14 $
if ndim(x)~=2
error( X must be a 2-D matrix.);
end
[m, n] = size(x);
y = x(m: -1: 1, :);
Hm M_file phi tun theo nhng quy lut v thuc tnh nht nh, ngoi ra chng cn c mt s
tnh cht rt quan trng bao gm:
*) Tn hm v tn file phi l mt, v d hm flipud phi c lu trong file vi ci tn l flipud.m.
*) Ln u tin MATLAB thc hin hm M_file n s m file vn bn tng ng v dch cc dng
lnh ca file ra mt dng m lu trong b nh nhm mc ch tng tc thc hin cc li gi
hm tip theo. Nu trong hm c cha li gi hm M_file khc th cc hm cng c dch vo
trong b nh.
*) Cc dng ghi li ch thch cho ti dng u tin khng phi l ch thch trong hm M_file l
nhng dng vn bn, n s hin ra khi bn s dng lnh help. V d: >>help flipud s tr v 9
dng u tin trong hm M_file ni trn. Dng u tin l dng H1, n s xut hin khi bn dng ln
look for.
*) Mi hm c mt khng gian lm vic ring tch bit so vi mi trng MATLAB, mi quan h
duy nht gia cc bin trong hm vi mi trng MATLAB l cc bin vo v ra ca hm . Nu
trong thn hm gi tr b thay i th s thay i ny ch tc ng bn trong ca hm m khng
lm nh hng n cc bin ca mi trng MATLAB. Cc bin c to ra bn trong mt hm th ch
79
function tic
% TIC Start a stopwatch timer.
% The sequence of lnhs
% TIC, operation, TOC
% prints the time required for the operation.
%
% See also TOC, CLOCK, ETIME, CPUTIME.
% Copyright (c) 1984-96 by the MathWork, Inc.
% $Revision: 5.3 $ $Date: 1996/10/24 18: 41: 14 $
% TIC simple stores CLOCK in a global variable
global TICTOC
TICTOC = clock;
function t = toc
% TOC Read the stopwatch timer.
% TOC, by itself, prints the elapsed time in t,
% instead of printing it out.
%
% See also TIC, ETIME, CLOCK, CPUTIME.
% Copyright (c) 1984-96 by the MathWork, Inc.
80
if length(val) > 1
error(VAL phi l gi tr s!)
end
V d: Hm tr dn theo thi hn
Vn : Gi s c mt khon cho vay A dollar, vi li sut hng thng l R% v phi tr trong vng
M thng. Hy vit mt hm M_file th hin:
- Lch chi tr nu nh ban u cha bit cc s liu a ra.
- S tin chi tr hng thng nu bit mt s liu ra.
- S tin chi tr hng thng v mt ma trn s cha lch thanh ton nu bit trc hai i s ra.
Gii php: Trong chng 2, s tin phi chi tr hng thng P cho khon cho vay A dollar vi t gi
li xut l R, tr trong M thng: P = A.
Ti ln chi tr u tin, tin li phi tr l Ip1= R.A. Gi s s tin phi tr l P th tin gc phi tr
l Pr1= P - Ip1 v s tin cn li sau ln chi tr th nht l B1=A - Pr1 . Trong tt c cc ln chi tr sau
tin li phi tr l Ipm= R.Bm-1 v s tin cn li l Bm= Bm-1 - Prm. S dng cc thng tin ny th
chng trnh MATLAB s nh sau:
function [P,S]=loan(a,r,m)
%LOAN Loan Payment and Amortization Table.
81
V d: Gii m mu trn cc in tr
Vn : Gi tr ca mt in tr dng trong mch in c tnh thng qua cc vch mu in trn
thn ca n. i vi mt in tr vi chnh xc l 5% th c 3 di mu, tm gi l A, B, C. Gi tr
s c gn cho mi mu c tnh nh sau:
Nu A, B, C l cc gi tr ca cc mu trn gii mu th gi tr ca cc in tr l:
R = (10.A + B).10C
function r=resistor(a, b, c)
%RESISTOR(A, B, C) Resistor value from color code.
%RESISTOR(a, B, C) returns the resistace
%value of resistor
%given its three color bands, A, B, C.
%A, B, C must be one of the
%following character strings:
%
%'black', 'brown', 'red', 'orange', 'yellow',
%'green', 'blue', 'violet', 'gray', 'white'
% first some error checking
if nargin~=3
error('Three input arguments required')
end
if ~ischar(a)|~ischar(b)|~ischar(c)
error('Inputs Must be Character Xus')
end
%now solve problem
vals=zeros(1,3); % string cell array of three inputs
abc={a,b,c}; % tring cell aray thr input
83
S dng hm ny cho mt vi v d:
chng 13
PHN TCH D LIU
Bi v MATLAB l mt ng dng hng ma trn nn n d dng thc hin cc phn tch thng k
trn cc tp d liu, trong khi theo mc nh MATLAB coi cc tp d liu c lu tr trong cc
mng ct, vic phn tch d liu c th thc hin theo bt c chiu no. l tr khi c ch nh
theo mt cch khc, cc ct ca mt mng d liu th hin cc thng s o khc nhau, mi hng th
84
>> temps
temps=
12 8 18
15 9 22
12 5 19
14 8 23
12 6 22
11 9 19
15 9 15
8 10 20
19 7 18
12 7 18
14 10 19
11 8 17
9 7 23
8 8 19
15 8 18
8 10 20
10 7 17
12 7 22
9 8 19
12 8 21
12 8 20
10 9 17
13 12 18
9 10 20
10 6 22
14 7 21
12 5 22
13 7 18
15 10 23
13 11 24
12 12 22
Hnh 13.1
Lnh plot va dng trn y minh ho thm mt cch s dng. Bin d l mt vector di 31,
trong khi bin temps l mt ma trn 31x3. Cho trc nhng d liu ny, lnh plot s trc mi ct
ca bin temps cho vo d.
minh ho mt vi kh nng phn tch d liu ca MATLAB, hy xt cc lnh sau, da trn d
liu v nhit cho:
V d trn ch ra rng thnh ph th 3 l c nhit trung bnh cao nht, y MATLAB tnh
nhit trung bnh ca mi ct mt cch ring r. Nu tnh trung bnh c 3 thnh ph th:
>> temps-avg_temp
??? Error using ==> -
Matrix dimensions must agree.
Bi v thao tc ny khng phi l cc thao tc nh ngha trn mng (temps l mt mng 31x3,
cn avg_temp l mt mng 1x3). C l cch dng vng lp for l n gin nht:
Khi thc hin phng php ny ta thy n chm hn so vi cc cu lnh c MATLAB thit k
ring dng cho mng. Khi ta nhn bn bin avg_temp kch thc ca n bng vi kch thc
ca temps. Sau thc hin php tr th s nhanh hn rt nhiu:
min_temp=
8 5 15
cho bit gi tr nhit thp nht mi thnh ph v ch s hng n, ti gi tr thp nht xy ra.
Trong v d ny, n chnh l ngy lnh nht trong thng.
89
Cho bit s khc nhau v nhit gia cc ngy lin tip chnh l chnh lch nhit ca ngy
hm sau so vi ngy hm trc. Trong v d ny, hng u tin ca daily_change l chnh
lch nhit gia ngy u tin v ngy th hai trong thng.
Phn tch d liu trong MATLAB c thc hin thng qua cc ma trn hng ct, cc bin khc
nhau c lu gi trong cc ct khc nhau v mi hm th hin gi tr ca bin mt thi im quan
st nht nh. Cc hm thng k ca MATLAB gm c:
90
---------------------oOo-------------------
chng 14
A THC
thc. Trong MATLAB mt a thc c biu din bng mt vector hng cc h s vi bc gim dn.
V d a thc
x4-12x3+25x+116 c nhp vo nh sau:
>> r = roots(p)
r=
11.7374
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
Bi v trong MATLAB c a thc v cc nghim ca n u l vector nn MATLAB ngm quy
c rng a thc l vector hng, cn cc nghim l cc vector ct. Nu bit trc nghim ca mt a
thc th ta d dng bit c a thc . Trong MATLAB lnh poly s thc hin cng vic ny:
>> pp = poly(r)
pp=
1 -12 -1.7764e-14 25 116
>> pp(abs(pp)< 1e-12 = 0 % Gn nhng phn t qu nh bng khng
1 -12 0 25 116
Bi v trong tnh ton thng gp nhng sai s nn i khi kt qu ca lnh poly cho ra cc a thc
c cc h s gn bng khng v cc a thc c phn o rt nh nh c ch ra trn, cc gi tr bng
khng c th c lm trn bng cc cng c v mng. Tng t nh vy, ta c th lm trn mt s
phc tr thnh mt s thc bng hm real.
Hm conv thc hin nhn hai a thc (thc ra l hai ma trn), xt tch ca hai a thc sau:
khi ta nhn nhiu a thc vi nhau th ta phi s dng lnh conv nhiu ln.
MATLAB khng cung cp cc hm trc tip thc hin php cng hai a thc, dng php cng ma
trn ch c tc dng khi hai a thc l hai vector c cng kch thc. V d nh cng hai a thc a(x)
v b(x) trn:
>> d = a + b
d=
2 6 12 20
3 2
Kt qu l d(x)=2x +6x +12x+20. Khi hai a thc c bc khc nhau th a thc c bc thp hn
phi c thm vo cc h s 0 cho bc ca n c cng bc vi a thc c bc cao hn. Xt php
cng hai a thc c v d trn:
>> e = c + [0 0 0 d]
e=
1 6 20 52 81 96 84
function p=polyadd(a,b)
%POLYADD Polynomial addition
%POLYADD(A,B) adds the polynomials A and B
if nargin<2
error(Not enough input arguments)
end
a=a(:).; %make sureinputs are row vectors
b=b(:).;
na=length(a); %find lengths of a and b
nb=length(b);
p=[zeros(1,nb-na) a]+[zeros(1,na-nb) b];
% pad with zeros as necessary
>> f = polyadd(c,d)
f=
1 6 20 52 81 96 84
Kt qu cng ging nh a thc e trn. Tt nhin polyadd cng c th dng thc hin php tr.
>> g = polyadd(c,-d)
g=
1 6 20 48 69 72 44
14.4 Chia hai a thc
Trong mt s trng hp ta phi chia a thc ny cho mt a thc khc, trong MATLAB cng
vic ny c thc hin bi hm deconv, s dng cc a thc b v c trn ta c:
14.5 o hm
>> h = polyder(g)
h=
6 30 80 144 138 72
>> x = linspace(-1,3);
>> p = [1 4 -7 -10];
>> v = polyval(p,x);
Hnh 14.1
14.7 Phn thc hu t
i khi bn gp nhng bi ton lin quan n t s ca hai a thc hay cn gi l phn thc hu
t, v d nh cc hm truyn hay cc hm xp x pade c dng nh sau:
Trong MATLAB phn thc cng c m phng bng hai a thc ring r.
V d nh:
nd =
-1 20 -100 -2000 -10000
dd =
Columns 1 through 6
1 20 300 2000 10000 0
Column 7
0
y nd v dd l t thc v mu thc ca o hm. Mt thao tc thng thng khc l tm phn d
ca phn thc.
>> [r,p,k]=residue(n,d)
r =
0.0000 + 1.1547i
0.0000 - 1.1547i
1.0000
p =
-5.0000 + 8.6603i
-5.0000 - 8.6603i
0
k =
[]
Trong trng hp ny hm residue tr v cc h s m rng phn thc tng phn r, cc nghim ca
phn thc l p v phn thng chia ht ca phn thc l k. Nu bc ca t s nh hn bc ca mu s
th phn thc chia ht s bng khng. Trong v d trn th m rng phn thc tng phn ca phn thc
cho l:
Nu cho trc cc a thc ny th phn thc ban u s tm c bng cch s dng hm residue:
>> [nn,dd]=residue(r,p,k)
nn =
1.0000 -10.0000 100.0000
dd =
1.0000 10.0000 100.0000 0
V vy trong trng hp ny, hm residue c th thc hin c vic chuyn i hai chiu tu
thuc vo s lng cc tham s vo v ra truyn cho n.
--------------------oOo------------------
96
chng 15
php ni suy v mn ho -ng cong
Trong cc lnh vc ng dng s, nhim v ca chng ta l phi biu din s liu, thng l cc
s o bng cc chc nng phn tch. C hai cch gii quyt vn ny, trong phng php ni im
(interpolation) th d liu c coi l ng v ci chng ta cn l cch biu din d liu khng nm
gia cc gi tr o c, theo phng php th hai gi l phng php mn ho ng cong (curve
fitting or regression), bn tm mt ng cong khng gy khc m ph hp nht vi d liu c, nh-
ng khng cn thit phi i qua mt cch chnh xc bt k mt in no trn bng s liu. H15.1
minh ho hai phng php trn, ch o nh du cc im biu din d liu, cc on thng bng nt
lin ni cc ng biu din d liu li vi nhau theo phng php ni im cn ng chm chm l
mt ng cong v theo phng php mn ho d liu.
15.1 Mn ho ng cong
Hnh 15.1
97
>> x = [0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1];
>> y =[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];
s dng hm polyfit, chng ta phi truyn cho n d liu trn v bc ca a thc m chng ta
mun ph hp vi d liu, nu chng ta chn bc n l 1 th ng cong xp x gn nht s l ng
thng. Phng php ny c gi l phng php xp x tuyn tnh. Mt khc nu chng ta chon n=2
th chng ta s tm c mt tam thc bc hai. V d:
>> n = 2;
>> p = polyfit(x,y,n)
p =
-9.8108 20.1293 -0.0317
Kt qu ca polyfit l mt vector biu din h s ca mt a thc bc hai. y a thc l
y= -9.8108x2+20.1293x-0.0317. so snh mc xp x ca a thc vi cc im d
liu chng ta hy v hai ng:
>> xi = linspace(0,1,100);
>> z = polyval(p,xi)
Dng ny gi hm polyval ca MATLAB tnh gi tr ca a thc p ti cc im xi
>> plot(x,y,'-o',xi,z,':')
>> xlabel('x'),ylabel('y=f(x)')
>> title('Second Oder Curver Fitting')
>> pp = polyfit(x,y,10)
pp =
1.0e+006 *
Columns 1 through 7
-0.4644 2.2965 -4.8773 5.8233 -4.2948 2.0211 -
0.6032
Columns 8 through 11
98
Hnh 15.2
99
15.2 Ni im mt chiu
>> x1 = linspace(0,2*pi,60);
>> x2 = linspace(0,2*pi,6);
>> plot(x1,sin(x1),x2,sin(x2),'-')
>> xlabel('x'),ylabel('sin(x)')
>> title('Linear Interpolation')
Hnh 15.3
Cng ging nh phng php xp x ho ng cong, y chng ta cng phi thc hin mt s
la chn, c rt nhiu cch ni hai im, tu thuc vo gi nh m chng ta la chn. Hn na
chng ta c th ni cc im trong khng gian khng phi l mt chiu. Ni nh th nu bn c d
liu phn nh mt hm ph thuc vo hai bin z=f(x,y), bn c th ni gi tr nm gia hai im c x
v y khc nhau tm ra gi tr trung gian ca hai im. MATLAB cung cp mt s hm ni l :
interp1 ni cc d liu mt chiu, interp2 ni cc d liu hai chiu, interp3 ni cc d liu ba chiu,
interpn ni cc d liu c s chiu ln hn 3.
Sau y chng ta s xem xt cc d liu mt v hai chiu. minh ho vic ni d liu mt chiu,
hy xt v d sau, kh nng ca thnh gic, v d nh mc m thanh b nht hay cn gi l ngng
nghe ca tai ngi thay i theo tn s, d liu do ngi thng k c cho nh sau:
>> semilogx(Hz,spl,'-o')
>> xlabel('Frequency, Hz')
>> ylabel('Relative Sound Presure Level1, dB')
>> title('Threshold of Human Hearing')
Da vo hnh 15.4 ta thy tai ngi nhy cm ht i vi cc m thanh trong khong 3kHz. Da
vo cc s liu ny, chng ta hy d on ngng nghe tn s 2,5kHz bng mt vi cch khc nhau.
Hnh 15.4
Hnh 15.5
Trn hnh 15.5 ng gch gch s dng phng php ni im tuyn tnh, ng lin nt l mt
hm bc 3, cn nhng im d liu gc c nh du bi ch o. Bng cch nng cao phn gii
trn trc tn s v s dng ng bc 3 th cc s liu v ngng nghe m chng ta d on c s
mn hn.
Cn ch rng dc ca ng bc 3 khng thay i mt cch t ngt khi i qua im d
liu nh l khi s dng phng php ni tuyn tnh. Vi b d liu trn chng ta c th d on c
tn s m ti tai ngi nhy cm nht i vi m thanh.
Tai ngi nhy cm nht i vi m thanh c tn s khong 3.3kHz. Trc khi cp n vic xp
x ho hai chiu th chng ta cn nhn r hai hn ch ln ca interp1 l: Th nht khi yu cu tnh
ton ngoi khong ca mt bin c lp. V d nh interp1(Hz, spl, 1e5) th s sinh ra kt qu NaN.
Th hai l cc bin c lp phi n iu, ngha l cc bin c lp phi lun tng hoc l lun
gim. Trong v d trn ca chng ta th trc tn s Hz lun tng.
103
function ocean
% ocean depth data
x=0:.5:4; % x-axis (veries across the rows of z)
y=0:.5:6; % y-axis ( varies down the columns of z)
z=[100 99 100 99 100 99 99 99 100
100 99 99 99 100 99 100 99 99
99 99 98 98 100 99 100 100 100
100 98 97 97 99 100 100 100 99
101 100 98 98 100 102 103 100 100
102 103 101 100 102 106 104 101 100
99 102 100 100 103 108 106 101 99
97 99 100 100 102 105 103 101 100
100 102 103 101 102 103 102 100 99
100 102 103 102 101 101 100 99 99
100 100 101 101 100 100 100 99 99
100 100 100 100 100 99 99 99 99
100 100 100 99 99 100 99 100 99];
th ca d liu trn c v bi cc lnh sau:
mesh(x,y,z)
xlabel('X-axis, Km')
ylabel('Y-axis, Km')
zlabel('Ocean depth, m')
title('Ocean depth Measurements')
Hnh 15.6
104
>> zi = interp2(x,y,z,2.2,3.3)
zi =
1.0392e+002
>> zi = interp2(x,y,z,2.2,3.3,'linear')
zi =
1.0392e+002
>> zi = interp2(x,y,z,2.2,3.3,'cubic')
zi =
1.0419e+002
>> zi = interp2(x,y,z,2.2,3.3,'nearest')
zi =
102
Cng ging nh trong trng hp xp x ho mt chiu, xp x ho hai chiu cng c nhiu phng
php, m phng php n gin nht l phng php ni bng on thng, hay cn gi l ni tuyn
tnh. Mt ln na chng ta c th xp x ho cho th tr ln mn hn vi phn gii cao hn:
Hnh 15.7
105
chng 16
phn tch s liu
Cho d vic gii mt bi ton tch phn hoc tnh gi tr ca mt hm l tng i phc tp, nh-
ng i vi my tnh th ch n gin l vic x l cc s liu. Lnh vc ny ca tin hc v ton hc
c gi l x l s liu. Nh bn c th d on, MATLAB cung cp cc cng c gii quyt vn
ny. Trong chng trnh nychng ta xem xt cch s dng cc cng c .
16.1 V th
V d:
Hnh 16.1
function [out1,out2] = humps(x)
%HUMPS A function used by QUADDEMO, ZERODEMO and FPLOTDEMO.
% Y = HUMPS(X) is a function with strong maxima near x = .3
% and x = .9.
%
% [X,Y] = HUMPS(X) also returns X. With no input arguments,
% HUMPS uses X = 0:.05:1.
%
% Example:
% plot(humps)
%
% See QUADDEMO, ZERODEMO and FPLOTDEMO.
if nargout==2,
out1 = x; out2 = y;
else
out1 = y;
end
107
>> f = '2*exp(-x).*sin(x)';
Hnh 16.2
Da trn nhng tnh nng c bn ny, hm fplot c nhng kh nng rt mnh, hy xem phn tr
gip trc tuyn ca MATLAB hiu r hn v cch dng hm ny.
16.2 Cc tr ca mt hm
108
Ngoi vic s dng phng php v th thu c nhng thng tin trc quan v hm, chng
ta cn cn phi bit thm nhng thng tin v mt s thuc tnh nht nh ca hm. Trong nhiu
trng hp chng ta cn phi bit cc cc tr ca hm , l cc cc i, cc cc tiu. V mt ton
hc th cc tr c tm theo phng php gii tch bng cch tnh o hm ca hm v tm nhng
im m ti o hm bng 0. iu ny rt d hiu nu bn xem li th ca hm humps ni trn.
Nhng im m th ca hm nh ln cao l nhng im cc i, cn nhng im th lm xung
thp nht l nhng im cc tiu. R rng rng khi hm c nh ngha mt cch n gin th
phng php gii tch c th d dng thc hin c, tuy nhin i vi mt s hm cho d vic tnh
o hm l kh d dng th vic tm nghim ca o hm th li khng phi l n gin.Trong nhng
trng hp ny, v trong nhng trng hp kh c th tm ra cch phn tch o hm, th cn thit
phi tm hm v cng v s lng. MATLAB cung cp hai hm thc hin vic ny, l fmin v
fmins , hai hm ny tng ng tm gi tr cc tiu ca cc hm mt chiu v hm n chiu. Ta ch quan
tm n fmin trong phn ny. Hn na fmin c th tm thy trong help trc tuyn. Bi v max ca
f(x) hon ton tng ng vi min ca -f(x) , nn fmin v fmins , c hai u c dng tm gi
tr ln nht v nh nht.
minh ho php cc tiu ho v cc i ho, hy xem v d trc mt ln na.T hnh 16.2
c mt gi tr cc i gn xmax =0.7 v mt gi tr nh nht gn xmin =4. iu ny c th cho php ta
xem nh xmax=/40.785, xmin=5/43.93. Vit ra mt script-file dng ch son tho thun tin v s
dng fmin tm ra s ny:
function ex_fmin.m
%ex_fmin.m
fn='2*exp(-x)*sin(x)';
% define function for min
xmin=fmin(fn,2,5) % search over range 2<x<5
xmin =
3.9270
emin =
1.4523e-006
ymin =
-0.0279
109
xmax =
3.0000
emax =
-2.2146
ymax =
0.0141
Kt qu ny hon ton ph hp vi th trc . Ch rng fmin lm vic ni chung l nh
fplot. V d ny cn gii thiu hm eval , hm ny nhn mt xu k t v gii thch n nh l xu
c nh vo t du nhc ca MATLAB.
Cui cng, mt iu quan trng cn ch khc l vic ti thiu ho lin quan n vic tm gi tr
nh nht, fmin s c lng hm tm gi tr ny. Qu trnh tm kim s tn thi gian nu nh hm
c mt lng php tnh ln, hoc l hm c nhiu hn mt gi tr cc tiu trong di tm kim. Trong
mt s trng hp, qu trnh ny khng tm ra c p s. Khi m fmin khng tm c gi tr nh
nht th n dng li v a ra li gii thch.
16.3 Tm gi tr khng
MATLAB cung cp cho ta ba hm tnh cc php ton lin quan n tch phn: trapz, quad v
quad8. Hm trapz cho ta gi tr xp x tch phn pha di hm bng cch ly tng cc min hnh
thang ca cc im d liu nh trong hnh 16.4.
Nh thy trong hnh 16.4, cc min hnh thang c lp c gi tr c lng di mc thc t. Nu
ta chia nh ra nh php ni suy tuyn tnh th s xp x ca hm s cao hn. V d nu ta gp i s
lng cc hnh thang c, th xp x tng ln nh hnh
v 16.5.
50
40
30
20
10
-1 0
-1 -0 .5 0 0 .5 1 1 .5 2
Hnh 16.4
80
70
60
50
40
30
20
10
-1 0
-1 -0 .5 0 0 .5 1 1 .5 2
Hnh 16.5
Tnh ton cc vng ny bng hm y = humps(x) vi -1<x<2 , s dng trapz cho mi hnh trn ta
c:
110
Thng thng th kt qu ca chng l khc nhau, da trn s lng cc min c chia trong
hnh v. Tuy nhin, khng c g m bo rng qu trnh xp x no l tt hn, ngoi tr s ng n
ca php ton, hin nhin khi bn thay i mt cch c lp cc vng hnh thang, v nh lm cho n
nh i th chc chn l kt qu s chnh xc hn nhiu.
Hm quad v quad8 u l cc hm c cch tnh nh nhau. S nh gi ca c hai hm l rt cn
thit t kt qu chnh xc. Hn na xp x ca chng l cao hn so vi hnh thang n, vi
quad8 c kt qu chnh xc hn quad. Cc hm ny c gi ging nh gi fzero:
>> area = quad('humps',-1,2) % find area between -1 and 2
area =
26.3450
>> area = quad8('humps',-1,2)
area =
26.3450
bit thm chi tit v hm ny , bn hy xem trn h tr gip ca MATLAB.
So snh vi php ly tch phn, ta thy php ly vi phn kh hn nhiu. Php ly tch phn cho c
mt vng hoc c tnh v m ca hm trong khi php ly vi phn ch ly ti mt im no y, hay
cn gi l c tnh vi m ca hm. Kt qu l php tnh vi phn s khng n nh khi c tnh ca
hnh thay i trong khi php tnh tch phn th t chu nh hng hn.
Bi v php tnh tch phn l kh nn ngi ta c trnh nhng php tnh no m khng th thc
hin c, c bit khi d liu ly tch phn l kt qu ca thc nghim. V d, chng ta hy xem xt
v d lm trn hnh trong chng 15:
>> x = [0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1];
>> y = [-.447 1.978 3.28 6.16 7.08 7.34 ...
7.66 9.56 9.48 9.30 11.2]; % data
>> n = 2; % order of fit
>> p = polyfit(x,y,n) % find polynomial coefficients
p =
-9.8108 20.1293 -0.0317
>> xi = linspace(0,1,100);
>> z = polyval(p,xi); % evaluate polynomial
>> plot(x,y,'o',x,y,xi,z,':')
>> xlabel('x'),ylabel('y=f(x)')
>> title('Second Order Curve Fitting')
>> pd = polyder(p)
pd =
-19.6217 20.1293
Vi phn ca a thcy=-9.8108x2+20.1293x-0.0317ldx/dy= -19.6217x+20.1293.
Bi v o hm ca mt a thc cng c v v tnh gi tr ging nh l i vi a thc:
>> z = polyval(pd,xi); % evaluate derivative
>> plot(xi,z)
>> xlabel('x'),ylabel('dy/dx')
>> title('Derivative of a Curve Fit Polynomial')
Hnh 16.6
Hnh 16.7
khi h>0
Gi l s ra ca y chia cho s ra ca x, do hm diff tnh ton s khc nhau gia cc phn t trong
mng nn o hm c th c tnh mt cch xp x da vo hm diff:
>> dy = diff(y)./diff(x);
>> % compute differences and use array division
>> xd = x(1:length(x)-1);
>> % create new x axis array since dy is shorter than y
>> plot(xd,dy)
>> title('Approximate Derivative Using DIFF')
>> ylabel('dy/dx'),xlabel('x')
Hnh 16.8
Do hm diff tnh ra s khc nhau gia cc phn t nn kt qu ca v d trn l mt mng c s
phn t t hn mng ban u mt phn t. V vy v c th ca o hm th phi b i mt
phn t ca mng x. So sng hai th cui cng th thy hin nhin rng o hm tnh bng phng
php gn ng khc xa so vi thc t.
Trong nhng trng hp m phng trnh vi phn khng th gii c bng phng php gii tch
th vic s dng phng php s hc tr ln kh hiu qu. minh ho hy xt phng trnh Van Der
Pol, phng trnh biu din mt b dao ng.
Tt c cc phng php ton hc gii phng trnh dng ny u s dng mt phng trnh vi
phn cao cp hn, tng ng vi mt tp phng trnh vi phn bc nht. i vi phng trnh vi
phn trn th cch gii ny c thc hin bng cch nh ngha hai bin trung gian:
t y1 = x, v y2 =
suy ra:
i vi cc h phng trnh nh th ny MATLAB cung cp mt tp cc hm ODE gii xp x
ho chng mt cch s hc. Trong quyn hng dn ny chng ta khng c kh nng nu ht
nhng ni dung v ng dng ca tng hm trong b ODE. tm hiu thm v cc hmm ODE ng
dng trong rt nhiu bi ton th d, hy g >> odedemo ti du nhc ca MATLAB. Trc ht
chng ta hy xt v d sau y, chnh l v d ode45. Chng ta phi vit mt hm M_file tr v cc
o hm nu bit trc cc gi tr tc thi ca y1 v y2. Trong MATLAB cc o hm c cho bi
cc vector ct, trong trng hp ny gi l yprime. Tng t y1 v y2 c vit di dng vector ct
y. Kt qu ca mt hm M_file nh sau:
function yprime=vdpol(t,y);
% VDPOL(t,y) returns the state derivatives of
% the Van der Pol equation:
%
% x''-mu*(1-x^2)*x+x=0
%
% let y(1)=x and y(2)=x'
%
% then y(1)'=y(2)
% y(2)'=mu*(1-y(1)^2)*y(2)-y(1)
mu=2; % choose 0< mu < 10
yprime=[y(2)
mu*(1-y(1)^2)*y(2)-y(1)]; % output must be a column
Gi s thi gian ko di t 0 n 30 giy, v d tspan=[0 30]. Sau s dng lnh vdpol th
li gii cho bi ton nh sau:
>> tspan = [0 30];
>> yo = [1;0];
>> ode45('vdpol',tspan,yo);
Khi s dng hm m khng c i s ra, cc hm ODE s t ng chn nhng thi im thch hp
tnh o hm. c th truy nhp c d liu, ta ch cn cung cp cho hm nhng thng s ra.
>> [t,y] = ode45('vdpol',tspan,yo);
y t l mt vector ct cha nhng thi im tnh o hm, cn y l mt ma trn cha hai ct
v cc hng length(t), hng u tin ca ma trn y cha bin s y(1), hng th hai l bin s
y(2).
Da vo nhng c im ny chng ta c th v c th pha, l th gia y(2) v y(1):
>> plot(y(:,1),y(:,2))
4
-1
-2
-3
-4
0 5 10 15 20 25 30
Hnh 16.9
Cc hm ODE ca MATLAB u c tr gip trc tuyn, mi hm u c cc i s cng nh
cch s dng ring, nu bn mun nghin cu thm th hy tham kho thm phn tr gip trc tuyn
ca chng.
4
-1
-2
-3
-4
-3 -2 -1 0 1 2 3
Hnh 16.10
114
chng 17
ho trong h to phng
Hnh 17.1
By gi cng v hm sine v cosine trn cng mt th
>> z = cos(x);
>> plot(x,y,x,z)
115
Hnh 17.2
V d ny cho thy bn c th v nhiu hn mt th trn cng mt hnh v, bn ch vic a
thm vo plot mt cp i s, plot t ng v th th hai bng mu khc trn mn hnh. Nhiu -
ng cong c th cng v mt lc nu nh bn cung cp cc cp i s cho lnh plot.
Hnh 17.3
116
>> plot(W,x)
Hnh 17.4
Trong v d trc, MATLAB chn kiu nt v solid v mu blue v green cho th. Ngoi ra bn
c th khai bo kiu mu, nt v ca ring bn bng vic a vo plot mt i s th 3 sau mi cp d
liu ca mng. Cc i s tu chn ny l mt xu k t, c th cha mt hoc nhiu hn theo bng
di y:
Hnh 17.5a
17.3 Kiu th
Lnh colordef cho php bn la chn kiu hin th. Gi tr mc nh ca colordef l white . Kiu
ny s dng trc to , mu nn, nn hnh v mu xm sng, v tn tiu ca trc mu en. Nu
bn thch nn mu en, bn c th dng lnh colordef black. Kiu ny s cho ta nn trc to en,
nn hnh v mu ti xm, v tiu trc mu trng.
Lnh grid on s thm ng li vo th hin ti. Lnh grid off s b cc nt ny, lnh grid m
khng c tham s i km theo th s xen k gia ch on v off. MATLAB khi to vi
grid off . Thng thng trc to c nt gn kiu solid nn gi l hp cha trc. Hp ny c th tt
i vi box off v box on s khi phc li. Trc ng v trc ngang c th c nhn vi lnh xlabel v
ylabel. Lnh title s thm vo th tiu nh. Dng hm sine v cosine minh ho:
>> x = linspace(0,2*pi,30);
>> y = sin(x);
>> z = cos(x);
>> plot(x,y,x,z)
118
Hnh 17.5b
>> box off
>> xlabel('Independent variable X')
>> ylabel('dependent variable Y and Z')
>> title('Sine and Cosine Curve')
Hnh 17.6
Bn c th thm nhn hoc bt c chui k t no vo bt c v tr no bng cch s dng lnh
text. C php ca lnh ny l : text (x, y,string) trong x, y l to tm bn tri ca chui vn
bn. thm nhn vo hnh sine v tr (2.5, 0.7) nh sau:
>> grid on, box on
119
>> text(2.5,0.7,'sin(x)')
Nu bn mun thm nhn m khng mun b hnh v khi h trc ang xt, bn c th thm chui
vn bn bng cch di chut n v tr mong mun. Lnh gtext s thc hin vic ny.
V d (Hnh 17.8):
>> gtext('cos(x)')
Hnh 17.7
Hnh 17.8
120
MATLAB cung cp cho bn cng c c th kim sot hon ton hnh dng v thang chia ca c
hai trc ng v ngang vi lnh axis. Do lnh ny c nhiu yu t, nn ch mt s dng hay dng nht
c cp y. bit mt cch y v lnh axis, bn hy xem h tr gip help ca
MATLAB hoc cc tham kho khc. Cc c tnh c bn ca lnh axis c cho trong bng di
y:
Lnh M t
axis([xmin xmax ymin ymax]) Thit lp cc gi tr min,max ca h trc dng cc gi tr
c a ra trong vector hng
V=axis V l mt vector ct c cha thang chia cho th hin ti:
[xmin xmax ymin ymax]
axis auto Tr li gi tr mc nh thang chia
axis(auto) xmin = min(x), xmax = max(x), ..v.v...
axismanual Gii hn thang chia nh thang chia hin ti
axis xy S dng (mc nh ) h to decac trong gc to
Gc gc thp nht bn tri, trc ngang tng t tri qua
phi, trc ng tng t di ln
axis ij S dng h to ma trn, trong gc to nh gc
tri, trc ng tng t nh xung, trc ngang tng t tri
qua phi
axissquare Thit lp th hin ti l hnh vung, so vi mc nh hnh
ch nht
axisequal Thit lp thang chia ging nhau cho c hai h trc
axis tightequal Tng t nh axis equal nhng hp th va i vi d
liu
axis normal Tt i ch axis equal, equal, tight v vis3d
axis off Tt b ch nn trc, nhn, li, v hp, du. Thot khi
ch lnh title v bt c lnh label no v thay bi lnh
text v gtext
axison Ngc li vi axis off nu chng c th.
Hnh 17.9
121
>> axis on, grid off % turn the axis on, the grid off
Hnh 17.10
Hnh 17.11
122
Hnh 17.12
Hnh 17.13
123
17.6 In hnh
17.7 Thao tc vi th
Bn c th thm nt v vo th c sn bng cch dng lnh hold. Khi bn thit lp hold on,
MATLAB khng b i h trc tn ti trong khi lnh plot mi ang thc hin, thay vo , n thm
dng cong mi vo h trc hin ti. Tuy nhin nu nh d liu khng ph hp vi h trc to c,
th trc c chia li . Thit lp hold off s b i ca s figure hin ti v thay vo bng mt th
mi. Lnh hold m khng c i s s bt tt chc nng ca ch thit lp hold trc . Tr li
vi v d trc:
>> x = linspace(0,2*pi,30);
>> y = sin(x);
>> z = cos(x);
>> plot(x,y)
Hnh 17.14
By gi gi nguyn th v thm vo ng cosine
124
Hnh 17.15
Nu bn mun hai hay nhiu th cc ca s figure khc nhau, hy dng lnh figure trong
ca s lnh hoc chn new figure t bng chn file, figure khng c tham s s to mt figure mi.
Bn c th chn kiu figure bng cch dng chut hoc dng lnh figure(n) trong n l s ca s
hot hot ng.
Mt khc mt ca s figure c th cha nhiu hn mt h trc. Lnh subplot(m,n,p) chia ca s
hin ti thnh mt ma trn mxn khong v th, v chn p l ca s hot ng. Cc th thnh
phn c nh s t tri qua phi, t trn xung di, sau n hng th hai .v.v. . . V d:
>> x = linspace(0,2*pi,30);
>> y = sin(x);
>> z = cos(x);
>> a = 2*sin(x).*cos(x);
>> b = sin(x)./(cos(x)+eps);
>> subplot(2,2,1) % pick the upper left of
% 2 by 2 grid of subplots
>> plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')
>> subplot(2,2,2) % pick the upper right of the 4 subplots
>> plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
>> plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
>> subplot(2,2,3)% pick the lowwer left of the 4 subplots
>> plot(x,a),axis([0 2*pi -1 1]),title('2sin(x)cos(x)')
>> subplot(2,2,4)%pick the lowwer right of the 4 subplots
>> plot(x,b),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')
125
Hnh 17.6
loglog tng t nh plot ngoi tr thang chia l logarithm cho c hai trc.
semilogx tng t nh plot ngoi tr thang chia ca trc x l logarithm cn thang chia trc y l
tuyn tnh.
semology tng t nh plot ngoi tr thang chia ca trc y l logarithm, cn thang chia trc x l
tuyn tnh.
area( x, y ) tng t nh plot (x,y) ngoi tr khong cch gia 0 v y c in y, gi tr c bn
y c th c khai bo, nhng mc nh th khng.
S hnh mi tiu chun c to thnh t lnh pie(a, b), trong a l mt vector gi tr v b l
mt vector logic tu chn. V d:
>> a = [.5 1 1.6 1.2 .8 2.1];
>> pie(a,a==max(a));
>> title('Example Pie Chart')
Hnh 17.7
Mt cch khc quan st d liu l biu Pareto, trong cc gi tr trong cc vector c
v thnh mt khi ch nht. V d dng vector a ni trn:
126
>> pareto(a);
>> title('Example Pareto Chart')
Hnh 17.18
i khi bn mun v hai hm khc nhau trn cng mt h trc m li s dng thang chia khc
nhau, plotyy c th lm iu cho bn:
>> x = -2*pi:pi/10:2*pi;
>> y = sin(x);z = 2*cos(x);
>> subplot(2,1,1),plot(x,y,x,z),
>> title('Two Plots on the same scale');
>> subplot(2,1,2),plotyy(x,y,x,z)
>> title('Two plots on difference scale.');
Hnh 17.19
th bar v stair c th sinh ra bi vic dng lnh bar, bar3, barh v stairs. Di y l v d:
127
>> x = -2.9:0.2:2.9;
>> y = exp(-x.*x);
>> subplot(2,2,1)
>> bar(x,y)
>> title('Bar chart of bell Curve')
>> subplot(2,2,2)
>> bar3(x,y)
>> title('3-D Bar Chart of a Bell Cuve')
>> subplot(2,2,3)
>> stairs(x,y)
>> title('Stair Chart of a Bell Curve')
>> subplot(2,2,4)
>> barh(x,y)
>> title('Horizontal Bar Chart')
Hnh 17.20
>> v = randn(100,1)*pi;
>> rose(v)
>> title('Angle Histogram of Random Angle')
128
Hnh 17.21
----------------------oOo----------------------
chng 18
ho
trong khng gian 3 chiu
18.1 th ng thng.
Lnh plot t trong khng gian hai chiu c th m rng cho khng gian 3 chiu bng lnh plot3.
Khun dng ca plot3 nh sau:
plot3 ( x1, y1, z1, S1, x2, y2, z2, S2, .... ), trong xn, yn v zn l cc vector hoc ma trn, v
Sn l xu k t tu chn dng cho vic khai bo mu, to biu tng hoc kiu ng. Sau y l mt
s v d:
Hnh 18.1
Ch rng: hm zlabel tng ng vi hm hai chiu xlabel v ylabel. Tng t nh vy, lnh axis
cng c khun dng: axis ( [xmin xmax ymin ymax zmin zmax ] ) thit lp gii hn cho c 3 trc.
V d :
>> axis('ij') % thay i hng trc t sau ra trc
Hnh 18.2
18.2 th b mt v li
>> x = -7.5:.5:7.5;
>> y = x;
>> [X,Y] = meshgrid(x,y);
>> R = sqrt(X.^2+Y.^2)+eps;
>> % find the distance from the origin (0,0)
>> Z = sin(R)./R; % calculate sin(r)/ r
>> mesh(X,Y,Z)
Hnh 18.3
>> surf(X,Y,Z)
Hnh 18.4
>> mesh(peaks)
>> title('Mesh Plot of Peaks function')
Hnh 18.5
132
18.3 Thao tc vi th
>> mesh(peaks(20)+7)
>> hold on
>> pcolor(peaks(20))
>> hold off
>> title('Mesh with hiden on')
133
Hnh 18.8
By gi hy b ch du cc nt khut i ta s thy s khc nhau:
Hnh 18.9
134
>> x=linspace(0,10,50);
>> y=sin(pi*x);
>> ribbon(y,x)
Hnh 18.10
Hm clabel tng thm cao cho th ng vin. C ba mu clabel(cs), clabel(cs, V ) v
clabel( cs, manual). clabel(cs), trong cs l cu trc ng vin c tr v t lnh contour,
cs=contour(z), ly nhn tt c cc th ng vin vi cao ca n. V tr ca nhn c ly
ngu nhin. clabel (c, manual) nh v nhn ng vin v tr kch chut tng t nh lnh
ginput ni trn. Nhn phm Return kt thc vic to nhn ny.
Hm contourf s v mt th ng vin kn, khng gian gia ng vin c lp y bng
mu.
Hai mu trng thi ca lnh mesh dng vi th li l: meshc v th li v thm ng vin
bn di, meshz v th li v th c dng nh mn che.
Hm waterfall c xem nh mesh ngoi tr mt iu l hm mesh ch xut hin hng x.
C hai mu trng thi ca lnh surf, l surfc v mt th surf v thm ng bao bn di,
surflvex v mt th surf nhng thm vo s chiu sng b mt t ngun sng. Cu trc tng
qut l surfl( X,Y, Z, S, K ) trong X, Y,v Z tng t nh surf, S l mt vector tu chn trong
h to decac (S=[Sx Sy Sz]) hoc trong to cu (S=[az,el]) ch ra hng ca
ngun sng. Nu khng khai bo, gi tr mc nh ca S l 45 theo chiu kim ng h t v tr
ngi quan st, S l mt vector tu chn ch ra phn ng gp tu thuc vo ngun sng bao
quanh, s phn chiu nh sng v h s phn chiu (K=[ka,kd,ks,spread]).
>> colormap(gray)
>> surfl(peaks)
>> title('surf1 plot of peaks with default lighting')
135
Hnh 18.11
fill3, phin bn 3 chiu ca fill, v mt a gic u trong khng gian ba chiu. Khun dng tng
qut ca n l fill3(x, y, z, c), trong chiu ng ca a gic c ch bi ba thnh phn x, y, z.
Nu c l mt k t, a gic s c lp y mu nh bng mu. c cng c th l mt vector hng
c 3 thnh phn ([r g b]) trong r, g v b l cc gi tr gia 0 v 1 thay cho cc mu ,
xanh l cy v xanh da tri. Nu c l mt vector hoc ma trn, n c s dng nh mt ch s
ch ra s mu. Nhiu a gic c th c to ra bng cch cho thm nhiu i s nh fill3 (x1,
y1, z1,c1, x2, y2, z2, c2, ....). V d sau s v ngu nhin 4 tam gic vi mu:
>> color(cool)
>> fill3(rand(3,4),rand(3,4),rand(3,4),rand(3,4))
bar3 v bar3h l phin bn 3 chiu ca bar v barh, bie3 l phin ban ca pie.
18.5 Bng mu
1 0 1 tm
0 1 1 lam xm
-5 -5 -5 xm trung bnh
-5 0 0 ti
1 -62 -40 ng
-49 1 -83 ngc xanh bin
Function M t bng mu
hsv Gi tr mu bo ho (HSV)
hot en--vng-trng
gray xm cn bng tuyn tnh
bone xm c pha nh vi mu xanh
copper sc thi ca mu ng
pink mu hng nht nh
white trng hon ton
flag xen k , trng, xanh da tri, v en
jet s thay i mu bo ho
prism c mu sc lng knh
cool mu xanh tm
lines mu ca nt v
summe Bng ca xanh l cy v vng
autumn Bng ca v vng
winter Bng ca xanh l cy v xanh da tri
spring Bng ca magenta v yellow
>> [X,Y,Z]=peaks(30);
>> surf(X,Y,Z,atan2(X,Y))
>> colormap(hsv),shading flat
>> axis([-3 3 -3 3 -6.5 8.1]),axis off
>> title('using a color Argument to surf')
137
Hnh 18.12
Hnh 18.13
>> hot(8)
ans =
0.3333 0 0
0.6667 0 0
1.0000 0 0
1.0000 0.3333 0
1.0000 0.6667 0
1.0000 1.0000 0
1.0000 1.0000 0.5000
1.0000 1.0000 1.0000
>> colormap(jet(n))
>> n=8;
>> colormap(jet(n))
>> pcolor([1:n+1;1 :n+1]')
>> title('using pcolor to display a colormap')
139
Hnh 18.4
Hm colorbar thm mt thanh mu ng hoc thanh mu ngang (cn chnh mu ) vo ca s hnh
v ca bn, a ra biu mu cho trc hin ti. colorbar( h) nh v thanh mu ngang di hnh v
hin ti ca bn. colorbar( v) nh v thanh mu ng v bn phi hnh v ca bn. colorbar khng c
i s th l thm mt thanh mu ngang, nu thanh mu ny khng tn ti hoc l cp nht nu n
tn ti.
>> [X,Y,Z] = peaks;
>> mesh(X,Y,Z );
>> colormap(hsv)
>> axis([-3 3 -3 3 -6 8])
>> colorbar
Hnh 18.5
18.9 Thit lp v thay i bng mu.
>> pcolor([1:17;1:17]')
>> title('Default color range')
>> colormap(hsv(8))
>> axis('auto')
>> colorbar
>> caxis
ans =
1 17
Hnh 18.6
141
Chng19
Mng t bo v cu trc
19.1 Mng t bo
Mng t bo c th c xy dng bng cch dng cu lnh gn, hoc ch nh mng trc
bng cch s dng hm t bo sau gn d liu cho mng.
Nh mi loi mng khc, mng t bo c th to ra bng cch gn d liu cho tng t bo c
lp cng mt thi im. C hai cch khc nhau thm nhp vo mng t bo. Nu bn s dng c
php mng tiu chun, bn phi cc t bo trong du ngoc { }. V d:
>> C= cell ( 2, 3 )
C=
[] [] []
[] [] []
>> C= [A B]
C=
[3x3 double ] 2.0000+ 3.0000i [1x2 double] ' John Smith'
'A text string ' [1x7 double] [2.0000+3.0000i] [ 5 ]
>> C=[A;B]
C =
[3x3 double ] 2.0000 + 3.0000 i
' A text string ' [ 1x7 double ]
[ 1x2 double ] ' John Smith'
[ 2.0000+ 3.0000i ] [ 5 ]
>> F = D(2:2,2:3);
>> X = cells(3,4);
>> size(X)
ans =
3 4
>> X= reshape(X,6,2);
>> size(Y)
ans =
6 2
truy nhp d liu cha trong cc phn t ca mng t bo, s dng du ngoc nhn. Dng
du ngoc n thm nhp mt phn t nh l mt t bo. truy nhp ni dung ca phn t trong
mng t bo, kt ni cc biu thc nh sau:
>> class(x)
ans=
double
>> y = B[2,2] % truy nhp vo bn thn t bo.
y =
[5]
>> class(y)
ans=
cell
>> B{1,1} (1,2) % truy nhp vo phn t th hai ca
% vector trong t bo
ans=
2
truy nhp di cc phn t trong mng t bo, s dng hm deal
>> [a,b] = deal(B{2,:1})
a =
2.0000+ 3.0000i
b =
5
Hm deal cn mt danh sch cc bin phn bit nhau bi du phy. Biu thc B{2, :} c th s
dng mi ni v du phy dng phn tch danh sch cc bin. Do , B{2, :} tng ng vi
B(2,1) v B(2,2).
19.6 Cu trc
>> client
client =
name L ' John Doe '
cost :86.50
test : [1x1 struct]
>> client.test
ans=
AIC:6.3000 6.8000 7.1000 7.0000 6.7000 6.5000 6.3000 6.4000
CHC:2.8000 3.4000 3.6000 4.1000 3.5000
>> T = fieldnammes(bills)
T =
' name '
' cost '
' payment '
145
C hai phng php truy nhp vo trng cu trc. Ch s trc tip s dng k thut ch
mc thch hp, nh phng php truy nhp trng cu trc, v ch s mng thch hp truy nhp
vo mt s hoc mt mng t bo. Sau y l mt v d da trn cu trc bills v client xt trn:
>> bills.name
ans =
John Doe
ans=
Alice Smith
>> bills(2).cost
ans=
112.3500
>> bills(1)
ans=
name : ' John Doe '
cost : ' 86.5000 '
payment: 10.000 20.0000 45.0000
>> baldue = bills(1).cost - sum(bills(1).payment )
baldue=
6.5000
>> bills(2).payment(2)
ans =
12.3500
>> client(2).test.AIC(3)
ans=
7.000
Phng php ch mc trc tip thng c s dng truy nhp gi tr trng. Tuy nhin, cc
M-file nu tn cc trng c gi ra t hm fieldnames, th hm getfield v setfield c th c s
dng truy nhp d liu trong cu trc. V d :
---------------------oOo----------------------
Chng 20
Biu t-ng ca hp cng c ton hc
Cc chng trc, bn bit c MATLAB mnh ra sao trn phng din lp trnh, tnh
ton. Mc d kh nng tnh ton ca n rt mnh, tuy nhin n vn cn c nhng hn ch. Nh mt
my tnh, MATLAB c s s dng cc con s. N nhn cc s (123/4) hoc cc bin (x =[ 1 2 3 ]).
Hp cng c ton hc l mt tp hp cc cng c ( hm ) MATLAB s dng nhm gii
cc bi ton. C cc cng c t hp, n gin ho, tch phn, vi phn v gii cc php ton i s
v php ton vi phn. Cc cng c khc s dng trong i s hc tuyn tnh chuyn i chnh xc
dng nghch o, nh thc v cc khun mu tiu chun.
Cc cng c trong Symbolic Math Tollbox c to nn t chng trnh phn mm mnh c tn
l Maple@ pht trin khi u t trng i hc Waterloo Ontario, Canada v by gi l phn mm
ca hng Waterloo Maple Software. Khi bn yu cu MATLAB thc hin mt php ton, n s s
dng cc hm ca Symbolic Math Tollbox lm vic ny v tr li kt qu ca s lnh.
string . Hp cng c ton hc c trng dng nhng i tng ton hc thay th cc bin v cc
ton t, v d: x = sym ( x ). Cc i tng ton hc c s dng bi MATLAB trong nhiu trng
hp tng t nh cc bin s hc v chui c s dng. Biu thc ton hc l nhng biu thc c
cha i tng ton hc thay th cho cc s, hm, ton t.v cc bin. Cc bin khng yu cu phi
nh ngha trc. Thut ton l cng c thc hnh gii quyt nhng bi ton trn c s bit c
nhng quy lut v s nhn dng cc biu tng c a ra, chnh xc nh ci cch bn gii bng i
s hc v s tnh ton.. Cc ma trn ton hc l nhng mng m phn t ca n l cc i tng ton
hc hoc cc biu thc.
MATLAB c cc biu thc c trng ging nh l biu thc c cha i tng c trng khc
nhau gia chng v bin s, biu thc, php ton nu khng chng gn ging nh biu thc
MATLAB c bn. Sau y l mt vi v d ca biu thc c trng.
ans =
char
>> M = sym('[a,b;c,d ]') % mt i tng c trng nhng
[1, 2]
[c, d]
>> size(M)
ans=
sym
20.6 Tch cc t s v mu s
4
>> h = (x^2 + 3)/(2*x - 1) + 3*x/(x - 1) % tng ca a thc hu t
h =
x^3 + 5*x^2 - 3
d= (2*x - 1)*(x - 1)
>> h2 = n/d % to li biu thc cho h
h2 =
(x^2 + 3)/(2*x - 1) + 3*x/(x - 1)
Hai biu thc g v h c hu t ho hoc tr v biu thc n gin vi mt t s v mu s, trc
khi cc phn t c tch c th chia t s cho mu s to li biu thc nguyn gc.
Mt s php ton tiu chun c th biu din trn biu thc c trng s dng cc ton t
quen thuc. V d cho hai hm:
f = 2x2 + 3x - 5 g = x2 - x + 7
Thc s l mt php ton trn bt c biu thc no cha t nht mt bin s c trng s cho
kt qu ca mt biu thc c trng, bn hy t hp cc biu thc c nh to nhng biu thc
mi. V d:
ans=
sin(3/2*x^2)
>> b*f/(g - 5)+ x % kt hp chng
ans =
-3/2*sin(x - 1)/(sin(3/2*x^2)- 5 )+ x )
MATLAB c th biu din nhiu php ton nng cao hn biu thc c trng. Hm compose
kt hp f(x ) v g ( x) thnh f ( g(x)). Hm finverse tm hm nghch o ca mt biu thc v hm
symsum tm tng c trng ca mt biu thc. V d :
ans=
-(c*d - a)/(b - z)
20.9 Hm nghch o
>> x = sym('x')
>> f = x^3 + 2*x^2 - 3*x + 5 % f l a thc c trng
f =
x^3 + 2*x^2 - 3*x + 5
>> n = sym2poli(f) % tch vector cc h s
n =
1 2 -3 5
>> poly2sym(n) % to li a thc ca x ( mc nh )
ans =
x^3 + 2*x^2 - 3*x + 5
>> s = sym('s') % nh ngha s nh l bin c trng
>> poly2sym(n,s) % to li a thc ca f
ans=
s^3 + 2*s^2 - 3*s + 5
subs( f, old, new ), trong f l mt biu thc c trng, old l bin hoc biu thc c trng, v new
l bin c trng, biu thc hoc ma trn hoc mt gi tr s hoc ma trn. Ni dung ca new s thay
th old trong biu thc f. Di y l mt s v d:
Php ly vi phn ca mt biu thc c trng s dng hm diff theo mt trong 4 mu sau:
Hm diff cng c th thao tc trn mng. Nu f l mt vector c trng hoc ma trn, diff( f)
ly vi phn mi phn t trong mng:
Hm tch phn int(f ) trong f l biu thc tng trng, s tm ra mt biu thc tng trng
F khc sao cho diff(F)=f. Nh bn thy trong phn nghin cu php tnh, php tch phn phc tp hn
php vi phn.Tch phn hoc o hm khng tn ti di mt hnh dng khp kn; hoc n c th tn
ti nhng phn mm khng tm ra n hoc phn mm c th tm ra n nhng khng b nh hoc
thi gian chy. Khi MATLAB khng tm thy php tnh o hm n a ra cnh bo v s thay th
tng trng php tch phn khng th s dng vi hm pretty.
>> x = sym('x');
>> p = int(log(x)/exp(x^2)) % ly tch phn
Warning:Explicit integral could not be found.
In C:\MATLAB\toolbox\symbolic\@sym\int.m at line 58
p = int(....
>> pretty(p)
ans =
output from pretty
-cos(s + 2*x)
>> int(f,pi/2,pi) % ly tch phn theo bin x vi cn t pi/2 n pi
ans=
-cos(s)
>> int(f,s,pi/2,pi) % ly tch phn theo s, cn t pi/2 n pi
ans=
2*cos(x)^2 - 1 - 2*sin(x)*cos(x)
>> g = simple(int(f,m,n)) % ly tch phn theo x, cn t m n n
g =
-1/2*cos(s + 2*n) + 1/2*cos(s + 2*m)
Fox Mulder, ang gim st trn mt mi nh ca mt to cao c Roswell, New Mexico, trong
khi ang n ba tra th anh ta cht pht hin ra mt vt c hnh dng k l trn khng cao 50 m.
Anh ta ly mt qu c chua chn ra khi chic ti eo sau lng, t vo cnh ca mi nh ri nm
mnh qu c chua vo khng trung. Qu c chua c bay ln vi vn tc ban u l v0 = 20 m/s. Mi
cao 30 m so vi mt t, thi gian bay ca n l t giy. Hi khi no n t n cao cc i, cao
m qu c chua t ti so vi mt t? Khi no th qu c chua chm ti mt t? Gi s rng khng
c lc cn ca khng kh v gia tc ph thuc vo sc ht l khng i l a =-9.7536 m/s2.
Chng ta chn mt t cao l 0, y = 0 l mt t v y = 30 l nh ca to nh. Vn tc tc
thi s l v = dy/dt, v gia tc s l a = d2y/dt2 . Do nu ly tch phn mt ln gia tc, ta s c
vn tc tc thi, cn tch phn vn tc ta s c cao y.
y =
-4.8768*t^2+20.*t
>> y = y + 30 % cao khi t=0 l 30 m
y =
-4.8768*t^2 + 20.*t + 30
Kim tra xem kt qu c ng khng, nu nh chng ta thay t=0 vo trong biu thc, ta c:
>> yo = subs(y,t,0)
yo =
30.
kt qu ng nh cao qu c chua trc khi n c nm.
y = (- 4.8768)*t^2 + 20*t + 30
159
-4.8768*t^2+20.*t+30
50
40
30
20
10
-10
-20
-30
0 1 2 3 4 5 6
t
>> x = sym('x');
>> f = taylor(log(x+1)/(x-5))
f =
-1/5*x+3/50*x^2-41/750*x^3+293/7500*x^4-1207/37500*x^5
>> pretty(f)
2 41 3 293 4 1207 5
-1/5 x + 3/50 x - --- x + ---- x - ----- x
750 7500 37500
>> x = sym('x');
>> f = (x^2 - 1)*(x - 2)*(x - 3) % to mt hm
f =
(x^2 - 1)*(x - 2)*(x - 3)
>> collect(f) % gom tt c cc mc nhnhau
ans =
x^4 - 5*x^3 + 5*x^2 + 5*x - 6
>> horner(ans)
ans =
-6 + (5 + (5 + (-5 + x)*x)*x)*x
160
>> syms x y a
>> simplify(sin(x)^2 + 3*x + cos(x)^2 - 5)
ans =
-4 + 3*x
>> simplify(log(2*x/y))
ans =
log(2) + log(x/y)
>> simplify((-a^2 + 1)/(1 - a))
ans =
a + 1
20.15 Tm tt v mt s c im khc
Biu thc c trng s phc trong c php MATLAB c th c trnh by theo mt hnh mu m
ta c th d ng c bng vic s dng hm pretty.
C th c nhiu kiu tng t nhau ca biu thc c trng, mt s chng th d dng s dng hn
mt s khc trong nhng tnh hung khc nhau. MATLAB a ra mt s cng c thay i
khun dng trong biu thc. l :
Cng c M t
collect Gom tt c cc mc ging nhau
factor Biu din di dng mt a thc
expand M rng tt c cc mc
simplify n gin ho cc biu thc
simple Tm biu thc tng ng c chui k t ngn nht
Hm c trng MATLAB c th c s dng chuyn biu thc c trng thnh phn thc.,
cho mt a thc hu t th int( f ) s ly tch phn hm ny, v diff( f ) s ly vi phn hm ny. V
d:
>> s = sym('s');
>> Y =(10*s^2 + 40*s + 30 )/(s^2 + 6*s + 8)
Y =
(10*s^2 + 40*s + 30)/(s^2 + 6*s + 8)
>> diff(int(Y))
ans =
10 - 15/(s + 4) - 5/(s + 2)
>> pretty(ans)
15 5
10 - ----- - -----
161
s + 4 s + 2
>> x = sym('x');
>> g = (x^3 + 5)/(x^2 - 1)
g =
(x^3 + 5)/(x^2 - 1)
>> diff(int(g))
ans =
x + 3/(-1+ x) - 2/(x + 1)
>> pretty(ans)
3 2
x + ------ - -----
-1 + x x + 1
20.16 T lm
>> vpa('exp(pi*sqrt(163))',18)
>> syms a b c x
>> solve(a*x^2 + b*x + c)
ans =
[1/2/a*(-b + (b^2 - 4*a*c)^(1/2))]
[1/2/a*(-b - (b^2 - 4*a*c)^(1/2))]
Kt qu di dng s:
>> double(f)
ans =
0.7854
>> double(t)
ans =
0
3.1416
0.7854
-2.3562
C th gii vi php ton cng mt lc. Cu lnh [a1, a2, ..., an ] = solve(f1, f2, ...,fn ) gii n php
ton cho cc bin mc nh v tr li kt qu trong a1, a2, ..., an. Tuy nhin bin mc nh s c lu
tr . V d:
>> syms x y
>> [a1 a2] = solve(x^2 + x^y + y - 3, x^2 - 4*x + 3)
a1 =
[ 1]
[ 3]
a2 =
[ 1]
[ -(6*log(3)+lambertw(1/729*log(3)))/log(3)]
20.20 Php ton vi phn
Thng thng php ton vi phn rt kh gii, MATLAB cung cp cho bn mt s cng c
mnh tm kt qu ca php ton vi phn.
Hm dsolve s gii cc php ton vi phn v cho ta kt qu. C php ca dsolve khc vi phn
ln cc hm khc. i s ca hm phi l xu k t thay v biu thc, v nh xu cha mt du =.
iu ny r rng l khc so vi hm solve, m i s ca n phi l mt biu thc c trng khng c
du =.
163
Php ton vi phn c nhn ra bng k hiu ch hoa D v D2, D3, v.v... .Bt k mt ch no
theo sau Ds u ph thuc vo bin. Php ton ( d2y/dt2 ) c thay bi chui k t D2y=0. cc bin
c lp c th c ch ra, hoc nu khng s mc nh l t. V d gii php ton
(dy,dt) - 1+2y2:
>> clear
>> dsolve('Dy=1+y^2')
ans =
tan(t - C1)
trong C1 l hng s. Cng bi ton trn nhng cho gi tr ban u l y(0) =1 th s c kt qu sau:
Hm dsolve c th gii nhiu php ton vi phn cng mt lc. Khi gii nhiu php ton vi
phn dsolve tr cc bin vo mt cu trc hoc mt vector nh solve lm. Ch dsolve xp xp cc
bin trc khi c lp trc khi tr. V d:
Gii php ton sau:
df/dt = 3f + 4g dg/d = -4f + 3g
>> syms a b c s t
>> A = [a,b,c;b,c,a;c,a,b]
A =
[ a, b, c]
[ b, c, a]
[ c, a, b]
>> G = [cos(t),sin(t);-sin(t),cos(t)]
G =
[ cos(t), sin(t)]
[ -sin(t), cos(t)]
>> syms a b c d e f
>> S = [a,b,c;d,e,f]
164
S =
[ a, b, c]
[ d, e, f]
>> h = size(S)
h =
2 3
>> [m,n] = size(S)
m =
2
n =
3
>> length(S)
ans =
3
Phn t ca mng c trng cng c truy nhp tng t nh mng s
>> syms ab cd ef gh
>> G = [ab,cd,ef,gh]
G =
[ ab, cd, ef, gh]
>> G(1,2)
ans =
cd
>> H = sym(hilb(3))
H =
[1, 1/2, 1/3]
[1/2, 1/3, 1/4]
[1/3, 1/4, 1/5]
>> det(H)
ans =
1/2160
>> J = inv(H)
J =
[ 9, -36, 30]
[-36, 192, -180]
[ 30, -180, 180]
>> det(J)
ans =
2160
20.24 Hm bc v xung
Hm step, u(t) v hm impulse, (t) thng c dng trong h thng. Hm bc Ku(t-a ) trong
K l hng s c nh ngha nh sau: Ku(t-a) =0 nu t<a v Ku(t-a)= K nu T>=a. D-
i y l hm bc:
L(s) =
>> syms a s t w
>> f = exp(-a*t)*cos(w*t)
f =
exp(-a*t)*cos(w*t)
>> L = laplace(f,t,s)
L=
(s + a)/((s + a)^2 + w^2)
>> pretty(L)
s + a
-------------
2 2
s + a) + w
F() = f(t)=
MATLAB dng w thay cho trong biu thc c trng
>> syms t w
>> f=t*exp(-t^2)
f =
t*exp(-t^2)
>> f=fourier(f,t,w) % bin i fourier s dng tham s t v w
f =
-1/2*i*pi^(1/2)*w*exp(-1/4*w^2)
>> ifourier(f,w,t) % timbin i fourier ngc
ans =
1/2*4^(1/2)*t*exp(-t^2)
>> simplify(ans)
ans =
t*exp(-t^2)
--------------------------oOo-------------------------
chng 21
hp cng c h thng iu khin
Phn ln cc cng c trong Hp cng c h thng iu khin u c lun gii d hiu trn
c 2 phng din hm truyn v khng gian trng thi. Thm vo h thng nhiu u vo, nhiu
166
Zero-pole-Gain
Lin tc H(s)== m<n MATLAB: K, Z = [Z1 ; Z2 ; ....Zm], P=[ P1 ; ......Pn ]
Ri rc H(z)= = m<= n MATLAB: K, Z = [Z1 ; Z2 ; ....Zm], P=[ P1 ; ......Pn ]
MATLAB cung cp mt cch tm lc mng d liu tng quan thnh cc i tng tuyn
tnh, bt bin theo thi gian, hoc cc i tng LTI. iu ny gip cho vic qun l chng c d
dng. V d:
#1: .........
s+10
-1
#2: .....
s
Transfer function from input 2 to output ...
s+10
#1:..............
s^2+6 s+10
3s+1
#2: ............
s^2 + 3 s + 3
>> a = [ 0 1 ; -2 -4
] ; b = [ 0 1 ]; c = [ 1 1 ] ; d =0;
% inh ngha ma trn khng gian trng thi
>> system2=ss( a, b, c, d)
a=
x1 x2
x1 0 1.00000
x -2.00000 -4.00000
b =
u1
x1 0
x2 1.00000
c =
x1 x2
y1 1.00000 1.00000
d=
u1
y1 0
H thng lin tc theo thi gian
Trong trng hp ny, h thng s xc nh cc thnh phn bin gn vi mi phn t v xc nhn h
thng l lin tc theo thi gian.
xy dng mt h thng gin on theo thi gian, s dng hm zpk, tf, v hm ss, bn nht
thit phi khai bo chu k ly mu km theo vi h thng c xem nh l mt i s u vo cui
cng.V d:
Bn cnh vic tch cc i tng LTI thnh nhiu kiu khc nhau, chng cn c th c
chuyn i thnh cc dng khc nhau bng cch s dng cc hm t to. V d :
>> t = tf ( 100, [1 6 100]) % xy dng mt hm truyn.
Hm truyn :
100
.................
s^2 + 6 s + 100
>> sst = ss(t )
a = x1 x2
x1 -6.00000 -6.25000
169
x2 16.00000 0
b = u1
x1 2.00000
x2 0
c = x1 x2
y1 0 3.12500
d = u1
y1 0
H thng lin tc theo thi gian.
>> zpkt = zpkt(t)
Zero / pole / gain:
100
.................
(s^2+ 6 s + 100 )
S dng i tng LTI cng cho php bn thit lp thut ton s khi. V d, hm truyn
lp ca mt h thng hi tip l G( s ) . Th hm truyn lp gn nht ca l : T(s ) = G(s ) ( 1 + G(s) ).
Trong MATLAB, iu ny bt u:
>> g = tf( 100, [1 6 0]) % hm truyn lp
Hm truyn:
100
............
s^2 + 6 s
>> t = g/(1+g)
hm truyn:
100 s^2 + 600 s
...............................
s^4 + 12 s^3 + 136 s^2 + 600 s
>> t = minreal(t) % thit lp hm hu pole-zero
Hm truyn:
100
...................
s^2 + 6 s + 100
100
.....................................
(s+11.38 ) ( s^2 + 3.62 s ) + 8.789 )
Poles ca h thng ny l:
>>pole( t )
ans =
-11.387
-1.811 + 2.3472 i
-1.811 + 2.3472 i
Hnh 21.1
th Bode n gin ca h thng closed-loop l:
>> bode(t)
171
Hnh 21.2
p ng xung ca h thng
>> step(t)
Hnh 21.3
Ngoi cc phng php nu trn, hp cng c h thng iu khin cn a ra thm cho bn lnh tr
gip ltiview. Hm ny cho php bn la chn cc i tng LTI t ca s lnh v quan st cc p
ng khc nhau trn mn hnh.
172
c tnh ca cc loi
class kiu model ( ss , zpk , or tf )
size S chiu ca u vo/ u ra
isempty True cho kiu LTI rng
isct True cho kiu lin tc theo thi gian
isdt True cho loi gin on theo thi gian
isproper True cho kiu LTI ci tin
issiso True cho h thng mt u vo/ mt u ra
isa Kim tra Loi LTI c a ra
S nghch o
ss Chuyn i thnh khng gian trng thi
zpk Chuyn i thnh zero-pole-gain
tf Chuyn i thnh hm truyn
c2d Chuyn i t lin tc sang gin on
d2d Ly mu li h thng ri rc hoc thm tr u vo
Cc php ton
+ v - Cng v tr h thng LTI ( mc song song )
* Nhn h thng LTI (mc ni tip )
\ Chia tri: sys1\sys2 ngha l: inv (sys1)*sys2
/ Chia phi: sys1/sys2 c ngha sys1*inv(sys2 )
Hon v ngc
. Hon v u vo/u ra
[...] S kt ni h thng LTI ngang/ dc
inv Nghch o h thng LTI
173
ng hc
pole, eig H thng poles
tzero S truyn h thng cc s 0
pzma Biu Pole-Zero
dcgai nh hng DC ( tn s thp)
norm Ch tiu h thng LTI
covar Covar of response ln nhiu trng
damp Tn s t nhin v s suy gim cc h thng
esort Xp xp cc tnh lin tc bi phn thc
dsort Xp xp cc tnh ri rc bi bin
pade Xp x pade ca thi gian tr
p ng thi gian
step p ng bc
impulse p ng xung
inittial p ng h thng khng gian trng thi vi trng
thi khi to
lsim p ng u vo tu
Ltiview p ng phn tch GUI
gensig Pht sinh tn hiu u vo cho lsim
stepfun Pht sinh u vo n v -bc
p ng tn s
bode th Bode ca p ng tn s
sigma th gi tr tn s duy nht
nyquist th Nyquist
nichols Biu Nichols
ltiview p ng phn tch GUI
evalfr p ng tn s ti mt tn s nht nh
margin Gii hn pha v tng ch
Lin kt h thng
append Nhm h thng LTI bi vic thm cc u ra v u vo
parallel Kt ni song song ( tng t overload + )
series Kt ni ni tip ( tng t overload * )
feeback Kt ni hi tip hai h thng
star Tch s star( kiu lin kt LFT )
connect Chuyn ho t kiu khng gian trng thi sang c tnh biu khi
Dng c thit k c in
rlocus Qu tch nghim
acker S thay th cc SISO
place S thay th cc MIMO
estime Khun dng b nh gi
174
S biu din
crtldemo Gii thiu n hp cng c h thng iu khin
jetdemo Thit k kinh in b chng suy gim m ca phng
tin vn chuyn trc thng
diskdemo Thit k b iu khin s a cng
milldemo iu khin LQG SISO v MIMO ca h thng cn
thp trn
kalmdemo Thit k b lc Kalman v m phng
-----------------------oOo----------------------
Chng 22
Hp dng c x l tn hiu
Hp cng c x l tn hiu cung cp cng c cho kim tra v phn tch tn hiu; kim tra v phn
tch tn s ca n hoc ph v xy dng b lc.
chng ta xy dng mt tn hiu nhiu sau phn tch n.
Hnh 22.1
>> x = fft(x);
>> X = fft(x);
>> Ts = t(2)- t(1);
>> Ts = t(2)- t(1)
Ts =
0.0196
>> Ws = 2*pi/Ts;
>> Wn = Ws/2
Wn =
160.5354
>> W = linspace(0,Wn,length(t)/2);
>> Xp = abs(X(1:length(t)/2));
>> plot(w,Xp)
th c v hnh 22.2
176
Hnh 22.2
>> i = find(w<=20);
>> plot(w(i),Xp(i))
>> grid
>> xlabel('tan so, rad/s')
>> titile('Pho bien do cua tin hieu nhieu')
1200
1000
800
600
400
200
0
0 5 10 15 20
tan so, rad/s
Hnh 22.3
177
chng 23
tr gip
MATLAB tr gip mt s lnh gip bn truy nhp thng tin nhanh chng v cc lnh ca
MATLAB hoc cc hm bn trong ca s lnh, bao gm help, lookfor,whatsnew, v info.
Lnh help ca MATLAB l cch n gin nht nhn tr gip nu bn bit c topic ca
ci cn tr gip. Nhp vo lnh help topic, mn hnh s hin th ni dung ca topic nu nh n tn
ti. V nh:
>> help
HELP topics
MATLAB : general - mc ch chung ca cu lnh
MATLAB : ops - cc ton t v cc k hiu c bit
MATLAB : lang - xy dng ngn ng lp trnh.
MATLAB : elphun - cc hm ton hc s ng
MATLAB : specfun - cc hm ton hc c bit
MATLAB : matfun - hm ma trn - i s hc tuyn tnh
MATLAB : datafun - hm bin i fourier v phn tch d liu
MATLAB : polyfun - cc a thc v php ni suy
178
Lnh lookfor cung cp s tr gip bng vic tm kim tt c cc dng u ca help topic,v
cc M-file trn ng dn m MATLAB ang tm, v tr li danh sch tt c cc file cha t kho
m bn khai bo..Mt iu rt quan trng l t kho khng cn thit l mt lnh ca MATLAB. V
d:
23.2 Ca s tr gip
Hnh 23.1
Th mc MATLAB
Mc ch chung ca cu lnh
Qun l ng dn
path Nhn/to ng dn
addpath Thm th mc theo ng dn
rmpath Ri th mc t t ng dn
editpath Sa i ng dn
Qun l cc hm v lnh
what Danh sch cc file c trng ca MATLAB trong th mc
type Danh sch file-M
edit Son tho filr-M
lookfor Tm kim tt c cc file-M theo t kho
which Xc nh cc hm v file
pcode To file-P
inmem Danh sch cc hm trong b nh
mex Bin dch hm MEX
Cu lnh iu khin
echo Ly li lnh t file-M
more Kim sot u ra cc trang ca s lnh
diary Lu gi vn bn
format Thit lp nh dng cho u ra
M-file g ri
debug Danh sch cc lnh g ri
dbstop To im ngt
dbclear Di chuyn im ngt
dbcont Tip tc thc hin lnh
dbstack Hin th cc hm gi ngn xp
dbstatus Danh sch cc im ngt
dbstep Thc hin mt hoc nhiu dng
dbtype Danh sch file-M vi s lng dng
dbup Thay i phm vi khng gian lm vic a phng
dbquit Thot khi ch g ri
dbmex file- MEX g ri ( ch cho UNIX )
Cc ton t v cc k t c bit
Cc ton t
plus (+) Cng
uplus (+) Cng unary
minus ( - ) Tr
uminus (-) Tr unary
mtimes(. *) Nhn ma trn
times (*) Nhn mng
mpower (^) Lu tha ma trn
power (. ^ ) Lu tha mng
mldivide (\ ) Chia tri ma trn
mrdivide /) Chia phi ma trn
ldivide (.\ ) Chia tri mng
mdivide (./ ) Chia phi ma trn
kron Sn phm c cng
Ton t quan h
eq (== ) Bng
ne ( ~= ) Khng bng
lt (< ) Nh thua
gt (>) Ln hn
le (<= ) Nh thua hoc bng
ge (>= ) Ln hn hoc bng
182
Ton t logic
and ( & ) Logic v
or ( | ) Logic hoc
not ( ~ ) Logic ph nh
xor Logic hoc ph nh
any True nu mi phn t ca vector khc khng
all True nu tt c cc phn t khc khng
Cc ton t Bitwise
bitand Bitwise and
bitcmp Bit hon thnh
bitor Bitwise OR
bitmax Maximum floating point integer
bitset Thit lp bt
bitget Nhn bt
bitshift Dch bit
Thit lp cc k t
union Thit lp lin kt
unique Ch s duy nht
intersect Thit lp s giao nhau
setdiff To s khc nhau
setxor Thit lp hoc ph nh
ismember True nu thit lp cc thnh vin
Cc k t c bit
colon Du hai chm
() Du ngoc n
[] Du ngoc vung
{} Du ngoc nhn
. Chm thp phn
. Truy nhp cu trc trng
.. Th mc m
... S tip tc
, Du phy
; Du chm phy
% Ch thch
! Lin quan cu lnh ca h iu hnh
= Gn
Nhy
transpose(.) Chuyn v
ctranspose( ) Chuyn v s pc lin hp
horzcat [, ] Gp chui theo chiu ngang
vertcat[; ] Gp chui theo chiu ng
subsasgn Gn subscripted
bsref Tham chiu subscripted
subsindex Ch s subscripted
Cu lnh iu khin
if iu kin thc hin cu lnh
elseif Dng vi if
else Dng vi if
end Kt thc lnh if, for, while
for Lp li cu lnh mt s ln
while vng lp while
break Thot khi vng lp for v while
return Tr v t hm gi
pause Tm dng cho ti khi nhn mt phm bt k
Thi hnh v nh gi
eval Thc hin xu vi biu thc MATLAB
feval Thc hin hm ch ra bi xu
evalin nh gi cc biu thc trong khng gian lm vic
builtin Thc hin cc hm c to bi phng php xp chng
assignin Gn cc bin trong khng gian lm vic
run Chy script
Thao tc vi cc i s
nargchk Cng nhn s lng cc i s u vo
nargin S lng hm cc i s u vo
nargout S lng hm cc i s u ra
varagin Danh sch cc i s u vo, di cc bin
varaout Danh sch cc i s u ra, di cc bin
inputname Tn i s u vo
Hin th thng bo
error Hin th thng bo li v hm hu
warning Hin th thng bo cnh bo
lasterr Thng bo li trc
errortrap B qua li trong qu trnh kim tra
disp Hin th mt mng
fprintf Hin th thng bo nh dng
sprintf Ghi d liu nh dng vo mt xu
u vo tng h
input Nhc ngi s dng nhp vo
keyboard Gi bn phm t M-file
184
Ma trn c bn
zeros Mng s khng
ones Mng s 1
eye Nhn dng ma trn
repmat Ti to v mng
rand S ngu nhin xp xp ng u
randn S ngu nhin xp xp thng thng
linspace Vector khng gian tuyn tnh
logspace Vector khng gian logarthm
meshgrid Mng X-Y cho th 3 chiu
: Vector khng gian thng thng v ch s trong ma trn
Thao tc vi ma trn
reshape Thay i kch c
diag Ma trn ng cho v ng cho ca ma trn
tril Trch pha di ra ma trn tam gic
triu Trch pha trn ra ma trn tam gic
fliplr Ma trn flip theo hng tri /phi
flippud Ma trn flip theo hng trn/ di
flipdim Ma trn flip dc theo chiu khai bo
rot90 Quay i mt gc 90
find Tm ch s phn t khc khng
end Ch s cui
sub2ind Ch s tuyn tnh t multiple subscripts
ind2sub Multiple subscripts t ch s tuyn tnh
Hng v cc bin c bit
ans Tr li kt qu khi biu thc khng c gn
eps Vit di dng du phy ng
185
Cc bin c bit
ans Tr li kt qu khi biu thc khng c gn
eps chnh xc sau du phy ng
pi
i, j
inf
NaN Khng phi dng s
clock ng h tng
date Ngy
flops m s hot ng ca du phy ng
nargin S lng cc i s ca hm vo
narout S lng cc i s hm ra
tan Hm tangent
asin Hm arcsine
acos Hm arccosine
atan Hm arctangent
atan2 Hm arctan gc phn t
sinh Sine hyperpolic
cosh Cosine hyperpolic
tanh Tangent hyperpolic
asinh Arcsine hyperpolic
acosh Arccosine hyperpolic
atanh Arctangent hyperpolic
Cc hm ton hc
abs Tr tuyt i hoc bin s phc
angle Gc pha
sqrt Cn bc hai
real Phn thc
imag Phn o
conj Phc lin hp
round Lm trn n s nguyn gn nht
fix Lm trn n khng
floor Lm trn n m v cng
ceil Lm trn n v cng
sign Hm du
rem S lu li hoc cc khi ( modulus)
exp Hm m c s e
log Logarithm t nhin
log10 Log 10 c s
Cc hm c bit
airy Hm airy
besselj Hm Bessel loi th nht
bessely Hm Bessel loi th hai
besselh Hm Bessel loi th ba ( hm Hankel )
besseli Sa i hm Bessel loi th nht
besselk Sa i hm Bessel loi th hai
beta Hm beta
betainc Hm beta khng hon ton
betaln Hm logarithm beta
erf Hm li
erfc Hm li thnh phn
ellipk Php tch phn elliptic
ellipj Hm elliptic Jacobian
gamma Hm gamma
gammaln Hm logarithm gamma
inverf Hm li ngc
rat Xp x
Hm l thuyt s hc
factor H s s khai
isprime True nu l s s khai
primes Danh sch cc s s khai
gcd B chia chung ln nht
187
ho
Trang ho
plot th tuyn tnh X-Y
loglog th loglog X-Y
semilogx th semi-log X-Y
semilogy th semi-log X-Y
polar th to cc
mesh Mt li khng gian 3 chiu
contour th ng bao
meshdom Min trong ca th li
bar Biu hnh ch nht
errorbar Thm vo errorbars
title Tiu th
xlabel Nhn trc x
ylabel Nhn trc y
grid K ng li trong th
text Vn bn v tr bt k
gtext Vn bn v tr con tr
ginput Nhp ho
iu khin ca s ho
axis Cn chnh trc to v hnh dng ca n
zoom Co vo hoc dn ra th
hold Gi th trn mn hnh
shg Hin th th nn mn hnh
clg Xo th trn mn hnh
subplot Tch ca s ho
Cn chnh mu
colormap Tra ca bng mu
caxis S phn chia bng mu gi
shading Ch lm bng
hidden Ch du cc nt
188
Chiu sng
surfl Lm bng b mt khng gian 3 chiu bng chiu sng
lighting Ch chiu sng
material Ch phn chiu t nhin
specular S phn chiu
diffuse S phn chiu khuch tn
surfnorm B mt thng thng
Bng mu
hsv Bng gi tr mu bo ho
hot Bng mu en- trng- - vng
gray Bng mu chia theo xm tuyn tnh
pink Mu hng
white Mu trng
bone Mu xm pha ln xanh da tri
.
..
iu chnh trc
axis iu chnh hnh dng v phn chia
zoom Co vo hoc dn ra th
grid ng k li
box Hp cha trc to
hold Lu th hin ti
axes Xy dng trc mt v tr bt k
Ch thch ho
title Tiu ho
xlabel Nhn trc x
ylabel Nhn trc y
zlabel Nhn trc z
colorbar Hin th thanh mu
text Ch thch vn bn
gtext Di vn bn n v tr chut
chui k t
Chui v vn bn
abs Chuyn i t chui sang gi tr ASCII
num2str i t s thnh chui
int2str i s nguyn sang chui
settr Thit lp c ch rng ma trn l mt chui
sprintf i s sang chui
hex2num Chuyn i chui t h 16 sang dng s
file input/output
M v ng file
fopen M file
fclose ng file
V tr file
ferror Kim ra trng thi file
feof Kim tra xem kt thc file hay cha
fseek Thit lp b ch th v ch file
ftell Nhn t b ch th v tr file
frewind Rewind file
Ca s lnh I / O
clc Xo ca s lnh
home a con tr v u vn bn
disp Hin th mng
input Thng bo cho ngi s dng nhp vo
pause i t ngi s dng tr li
Gi v ngy hin ti
now Gi v ngy hin ti hin th dng s
date Gi v ngy hin ti hin th dng chui
clock Gi v ngy hin ti hin th dng vector
Cc hm c bn
datenum S ngy ni tip
datestr Chui thay th ngy
datevec Thnh phn ngy thng
Hm ngy thng
calendar Lch
weekday Ngy trong tun
eomday Kt thc thng
datetick Du tick nh dng cho ngy thng
Hm m
cputime Thi gian cpu tnh theo n v giy
tic, toc B m ngng hot ng
etime Thi gian thit lp
pause Dng trong mt giy
Kiu d liu
double Chuyn i thnh double
sparse Tto mt ma trn khng lin tc
char Xy dng mng k t
191
cell To mng t bo
struct Xy dng hoc chuyn i thnh mng cu trc
uint8 Chuyn i thnh s nguyn khng du 8 bit
inline Xy dng i tng INLINE
Hm ca mng t bo
cell To mng t bo
celldisp Hin th ni dung ca mng t bo
cellplot Hin th thut ho mng t bo
num2cell Chuyn i mng s thnh mng t bo
deal Phn pht u vo n u ra
cell2struct Chuyn i mng t bo thnh mng cu trc
struct2cell Chuyn i mng cu trc thnh mng t bo
iscell True nu l mng t bo
Hm cu trc
struct To hoc chuyn i thnh mng cu trc
fieldsnames Nhn tn trng cu trc
getfield Nhn li ni dung ca trng cu trc
setields Thit lp ni dung trng cu trc
isfield True nu trng trong mng cu trc
istruct True nu l mng t bo
chuyn i d liu ng
Hm t DDE
ddeadv Thit lp b gim st lin kt
ddeexec a xu ra thc hin
ddeinit Khi to s giao tip DDE
ddereq Yu cu d liu t cc ng dng
ddeterm Kt thc s giao tip DDE
ddeunadv Ci b b gim st lin kt
V d v s th hin
MATLAB/matrn
intro Gii thiu php ton ma rn c bn trong MATLAB
inverter Gii thch ma trn o
matmanip Gii thiu php nhn ma trn
192
Ca s lnh
clc Xo ca s lnh
home a con tr v u dng
format Thit lp dng hin th kt qu
disp Hin th ma trn hoc vn bn
fprintf In s c nh dng
echo Cho php gi li cu lnh
General
hlep Phng tin tr gip
demo Chy cc chng trnh mu
who Danh sch cc bin trong b nh
what Danh sch cc M-file trn a
size S chiu ca hng v ct
lengh di vector
clear Xo khng gian lm vic
computer Loi my tnh
^C Hu bin a phng
quit Lt thc chng trnh
exit Tng t nh quit
Cc file trn a
chdir i th mc hin ti
delete Xo file
diary Ghi mc
dir Th mc ca file trn a
load Np cc bin t file
save Lu cc bin nn file
type Lit k hm hoc file
what Hin th cc M-file trn a
fprintf Vit vo file
pack Nn b nh qua save
a thc
poly a thc c trng
193
Gi tr duy nht
svd S phn tch gi tr duy nht
svds Mt s gi tr duy nht
poly a thc c trng
polyeig Vn ca a thc
condeig S iu kin vi hy vng
qz S tm tha s cho hm suy rng
schur S phn tch chui
Hm ma trn
expm Ma trn theo hm m
logm Ma trn logarithm
sqrtm Ma ttrn bc hai
funm nh gi chung hm ma trn
Php ton c bn
max Thnh phn ln nht
min Thnh phn nh nht
mean Gi tr trung bnh
median Gi tr trung tuyn
std lch gc chun
sum Tng ca cc s hng
prod Kt qu ca cc phn t
hist Biu
trapz Hnh thang s nguyn
cumsum Tng tch lyca cc phn t
cumprod Kt qu tch luca cc phn t
cumtrapz S nguyn tch lu bc thang
Sai phn c hn
diff Sai phn v o hm xp x
gradient Gradient xp x
del2 Laplacien ri rc
Bin i fourier
fft Bin i fourier ri rc
fft2 Bin i fourier ri rc 2 chiu
fftn Bin i fourier ri rc n chiu
ifft Bin i fourier ri rc ngc
ifft2 Bin i fourier ri rc hai chiu
ifftn Bin i fourier ri rc n chiu
a thc v php ni suy
Php ni suy
interpl Php ni suy mt chiu ( tra bng )
interplq Php ni suy tuyn tnh mt chiu nhanh
interpft Php ni suy mt chiu s dng phng php FFT
interp2 Php ni suy hai chiu ( tra bng )
interp3 Php ni suy ba chiu ( tra bng )
interpn Php ni suy n chiu ( tra bng )
griddata iu chnh b mt v li d liu
195
Numaric Integration
quad Tch phn nh gi v s lng, phng php trt t thp
quad8 Tch phn nh gi v s lng, phng php trt t cao hn
dblquad Tch phn hai ln nh gi v s lng
i tng hm inline
inline Xy dng i tng INLINE
argnames Tn i s
formula Th thc hm
char Chuyn i i tng INLINE thnh mng k t
ma trn ri rc
mc lc
Matlab ton tp ...................................................................................................................... 1
ci t .......................................................................................................................................... 1
1. MATLAB for WIN .................................................................................................................... 1
a) CD ROM .1
b ) B nh 1
chng 1: GII THIU chung ............................................................................................... 2
1.1 Cc php ton n gin ............................................................................................................ 3
1.2 Khng gian lm vic ca MATLAB ....................................................................................... 4
1.3 Bin ......................................................................................................................................... 5
1.4 Cu gii thch (comment) v s chm cu ............................................................................... 6
196
1.5 S phc.................................................................................................................................... 7
chng 2: CC C tnh K THUT .................................................................................. 9
2.1 Cc hm ton hc thng thng............................................................................................... 9
chng 3: NHNG C IM CA CA S LNH........................................................... 14
3.1 Qun l khng gian lm vic ca MATLAB .......................................................................... 14
3.2 Ghi v phc hi d liu .......................................................................................................... 16
3.3 Khun dng hin th s .......................................................................................................... 16
chng 4: Script M_files............................................................................................... 17
chng 5: QUN L Tp ........................................................................................................ 20
5.1 MATLAB khi khi ng........................................................................................................ 23
chng 6: cc php ton vi MNg.............................................................................. 24
6.1 Mng n ............................................................................................................................... 24
6.2 a ch ca mng ................................................................................................................... 24
6.3 Cu trc ca mng.................................................................................................................. 25
6.4 Vector hng v vector ct ...................................................................................................... 27
6.5 Mng c cc phn t l 0 hoc 1............................................................................................ 31
6.6 Thao tc i vi mng............................................................................................................ 32
6.7 Tm kim mng con ............................................................................................................... 36
6.8 So snh mng ......................................................................................................................... 37
6.9 Kch c ca mng .................................................................................................................. 40
6.10 Mng nhiu chiu................................................................................................................. 41
chng 7 cc php tnh vi mng ............................................................................... 45
7.1 To phng trnh tuyn tnh................................................................................................... 46
7.2 Cc hm ma trn . .................................................................................................................. 48
7.3 Ma trn c bit ..................................................................................................................... 49
chng 8 cc php tnh LOGIC V QUAN H............................................................ 52
8.1 Ton t quan h...................................................................................................................... 53
8.2 Ton t Logic ......................................................................................................................... 54
8.3 Cc hm logic v hm quan h .............................................................................................. 54
chng 9 VN Bn ................................................................................................................... 55
9.1 Xu k t................................................................................................................................. 55
9.2 Chuyn i xu ...................................................................................................................... 58
9.3 Cc hm v xu ...................................................................................................................... 58
9.4 Ma trn t bo ca xu ........................................................................................................... 59
chng 10 thi gian ............................................................................................................ 61
10.1 Ngy v gi hin ti ............................................................................................................. 62
10.2 S chuyn i gia cc kiu................................................................................................ 62
10.3 Cc hm v ngy ................................................................................................................. 64
10.4 Cc hm v thi gian........................................................................................................... 65
10.5 V th vi hm ngy v thi gian ................................................................................... 66
chng 11 VNG LP IU KHIN .................................................................................... 69
11.1 Vng lp for ........................................................................................................................ 70
11.2 Vng lp while .................................................................................................................... 72
11.3 Cu trc if-else-end............................................................................................................. 72
11.4 Cu trc switch-case ............................................................................................................ 74
chng 12 HM M_FILE.......................................................................................................... 77
12.1 Cc quy lut v thuc tnh.................................................................................................... 78
chng 13 PHN TCH D LIU ........................................................................................ 83
13.1 Cc hm phn tch d liu................................................................................................... 89
chng 14 A THC ................................................................................................................. 90
197
Chui v vn bn.........................................................................................................................189
file input/output ................................................................................................................. 189
M v ng file ...........................................................................................................................189
File nh phn i/o ..........................................................................................................................189
File i/o nh dng ........................................................................................................................189
V tr file......................................................................................................................................189
Cc hm xut nhp file................................................................................................................189
Xut nhp file o .........................................................................................................................190
Xut nhp file audio....................................................................................................................190
Ca s lnh I / O .........................................................................................................................190
thi gian v ngy................................................................................................................ 190
Gi v ngy hin ti ....................................................................................................................190
Cc hm c bn ...........................................................................................................................190
Hm ngy thng ..........................................................................................................................190
Hm m.....................................................................................................................................190
kiu d liu v cu trc .................................................................................................. 190
Kiu d liu.................................................................................................................................190
Hm ca mng nhiu chiu.........................................................................................................191
Hm ca mng t bo..................................................................................................................191
Hm cu trc ...............................................................................................................................191
chuyn i d liu ng.................................................................................................. 191
Hm t DDE................................................................................................................................191
V d v s th hin............................................................................................................. 191
MATLAB/matrn........................................................................................................................191
Ca s lnh..................................................................................................................................192
General ........................................................................................................................................192
(Lp trnh )Programming v file-M ............................................................................................192
Cc file trn a ...........................................................................................................................192
a thc ........................................................................................................................................192
Cc hm ma trn v i s tuyn tnh ................................................................... 193
Phn tch ma trn ........................................................................................................................193
Php ton tuyn tnh....................................................................................................................193
Gi tr duy nht ...........................................................................................................................193
Hm ma trn................................................................................................................................193
Tm tha s tiu chun ................................................................................................................193
Bin i fourier v phn tch d liu ...................................................................... 194
Php ton c bn .........................................................................................................................194
Sai phn c hn ...........................................................................................................................194
Filtering and convolution ( np, cun ) .......................................................................................194
Bin i fourier ...........................................................................................................................194
a thc v php ni suy.................................................................................................... 194
Php ni suy ................................................................................................................................194
hm v gii php ODE.......................................................................................................... 195
Optimization and Root Finding...................................................................................................195
Numaric Integration ....................................................................................................................195
i tng hm inline ..................................................................................................................195
ma trn ri rc..................................................................................................................... 195
Cc ma trn khng lin tc c bn..............................................................................................195
Full to Sparse Conversion............................................................................................................195
mc lc ..................................................................................................................................... 195
201