lap trinh matlap
TRANSCRIPT
-
7/28/2019 Lap Trinh Matlap
1/215
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
2/215
Updatesofts.com Ebook Team 1
Matlab ton tpMatlab ton tpMatlab ton tpMatlab ton tp
ci tci tci tci t
1. MATLAB for WINYu cu h thngYu cu h thngYu cu h thngYu cu h thng
H thng IBM hoc tng thch 100% vi b vi x l 486 Intel cng vi b ng x l tonhc 487 ( ngoi tr 486 DX c b x l bn trong ), Pentium hoc Pentium ProProcessor.
Microsoft Window 95 hoc Window NT.
a) CD ROMa) CD ROMa) CD ROMa) CD ROM
- B iu phi ho 8 bit v card mn hnh ( 256 mu ng thi )- Khong trng a ci t v chy cc tu chn. S yu cu a cng thay i tutheo kch c cc partition v cc tp tr gip help c ci t trc tip theo tu chn. Qutrnh ci t s thng bo cho bn bit t m v dung lng a yu cu. V d:
Partition vi mt lin cung mt 0 cn 25 MB cho ring MATLAB v 50 MB cho cMATLAB v HELP.
Partition vi lin cung 64 KB cn 115 MB cho ring MATLAB v 250 MB cho cMATLAB v HELP.
b ) B nh.b ) B nh.b ) B nh.b ) B nh.
Microsoft WIndow 95: 8 MB ti thiu v 16 MB khuyn ngh.Microsoft WIN NT 3.51 hoc 4.0: 12 MB ti thiu v 16 MB khuyn ngh.
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 tQu trnh ci tQu trnh ci tQu trnh ci t
1. t a vo CD. Trn WIN 95 chng trnh SETUP bt u chy t ng nu nhMATLAB cha c ci t trc. Cn khng, nhn p vo biu tng setup.exesetup.exesetup.exesetup.exe bt uqu trnh ci t.
2. Chp nhn hay b i nhng khuyn co v cp ng k phn mm trn mn hnh.Nu chp nhn bn mi c th bt u qu trnh ci t.
3. Trn Custumer Information, nhp vo tn bn, a ch ca bn. Tn khng c qu
30 k t. Nhn nt NEXT.4. Nhn vo cc hp trng thnh phn du v nu nh bn mun tu chn vnhn tip nu bn c nh khng mun tu chn ( c th thm vo sau ny nu mun
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
3/215
Updatesofts.com Ebook Team 2
). Trn mn hnh hin th C:\MATLAB l th mc ch mc nh ca qu trnh ci t. Nubn mun ci t vo th mc khc hoc i tn th mc th bn la chn Browse.
MATLAB cho Macintosh.
MATLAB cho my Macintosh chy c trn: Mi my Macintosh c cu hnh mnh ( power Macintosh ). Mi Macintosh c trang b b vi x l 68040 ( b ng x l ton hc bn trong ). Mi my Macintosh c trang b b vi x l 68020 hoc 68030 v b ng x l ton
hc 68881 hoc 68882.Yu cu ti thiu chy MATLAB.
a cng trng ti thiu 26 MB, cn thm 60 MB cho h thng tu chon HELP trctuyn.
16 MB cho phn vng b nh. CD ROM. Color Quick Draw.
---------------oOo----------------
Chng1GII THIU chung
Bygi bn ci t xong, chng ta hy xem MATLAB c th lm c nhng g.Trong phn ny chng ta s trnh by mt s nhng ng dng ca n; v trnh by tt cnhng ng dng ca MATLAB s rt di v tn thi gian. Nu bn c quyn hng dn
ny, bn s thy MATLAB l ngn ng rt mnh gii quyt nhng vn quan trng vkh khn ca bn. N s rt hu ch khi bn c phn hng dn c bn v n s cung cpcho bn nhng kin thc c bn bn hiu r MATLAB v pht trin c nhng khnng ca mnh sau ny.
C l cch d nht hng dung v MATLAB l n c y cc c im ca mytnh c nhn: ging nh cc my tnh c bn, n lm tt c cc php tnh ton hc c bnnh cng, tr, nhn, chia; ging nh my tnh k thut, n bao gm: s phc, cn thc, sm, logarithm, cc php ton lng gic nh sine, cosine, tang; n cng ging nh my tnhc kh nng lp trnh, c th lu tr, tm kim li d liu, cng c th to, bo v v ghi trnht cc lnh t ng php ton khi gii quyt cc vn , bn c th so snh logic, iukhin thc hin lnh m bo tnh ng n ca php ton. Ging nh cc my tnh hini nht, n cho php bn biu din d liu di nhiu dng nh: biu din thng thng, matrn i s, cc hm t hp v c th thao tc vi d liu thng cng nh i vi ma trn.
Trong thc t MATLAB cn ng dng rt rng ri trong nhiu lnh vc v n cng sdng rt nhiu cc php tnh ton hc. Vi nhng c im v kh nng thn thin vingi s dng nn n d dng s dng hn cc ngn ng khc nh Basic, Pascal, C.
N cung cp mt mi trng phong ph cho biu din d liu, v c kh nng mnh mv ho, bn c th to cc giao din ring cho ngi s dng(GUIs) gi quyt nhngvn ring cho mnh. Thm vo MATLAB a ra nhng cng c gii quyt nhngvn c bit, gi l Toolbox (hp cng c). V d Student Edition ca MATLAB bao gmc Toolbox iu khin h thng, Toolbox x l tn hiu, Toolbox biu tng ton hc. Ngoira bn c th to Toolbox cho ring mnh.
Vi nhng kh nng mnh m, rng ln ca MATLAB nn n rt cn thit cho bn btu t phn c bn. Sau y chng ta s nghin cu tng phn, v cun sch ny s gip
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
4/215
Updatesofts.com Ebook Team 3
bn hiu c chng. Trc tin, mt cch n gin nht l chng ta quan nim nh l mtmy tnh c bn, tip theo l nh my tnh k thut v nh my tnh c th lp trnh c,cui cng l nh my tnh hin i nht. Bng cch quan nim ny bn s d dng hiu
c nhng cch m MATLAB gii quyt nhng vn thng thng v xem MATLAB giiquyt nhng vn v s phc mm do nh th no.Tu thuc vo kin thc ca bn, bn c th tm thy nhng phn trong cun sch h-
ng dn ny hng th hay bun t...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 nyxut hin nh hnh di y.
Cc k t EDU>> l du nhc ca MATLAB trong student MATLAB. Trong ccversion khc ca MATLAB, du nhc n gin ch l >>. Khi ca s lnh xut hin, lca s hot ng, con tr xut hin bn phi du nhc nh hnh di. Con tr v dunhc ny ca MATLAB bo rng MATLAB ang i thc hin lnh.
Hnh 1.1 Ca s lnh ca Student MATLABHnh 1.1 Ca s lnh ca Student MATLABHnh 1.1 Ca s lnh ca Student MATLABHnh 1.1 Ca s lnh ca Student MATLAB
1.1 Cc php ton n gin1.1 Cc php ton n gin1.1 Cc php ton n gin1.1 Cc php ton n gin
Ging nh my tnh n gin thng thng, MATLAB c th thc hin cc php tonn 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, 52xu mt tp, hai cun bng i, 99 xu mt cun. Hy tnh xem Mary mua bao nhiu vt, vtng 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)
Hnh 1.2 Ca s lnh ca MATLAB version 5.2Hnh 1.2 Ca s lnh ca MATLAB version 5.2Hnh 1.2 Ca s lnh ca MATLAB version 5.2Hnh 1.2 Ca s lnh ca MATLAB version 5.2
Trong MATLAB chng ta c th gii quyt vn ny theo nhiu cch. Trc tin ging nhmy tnh trn, chng ta c th tnh:
>> 4 + 6 + 2ans=
12
>> 4*25 + 6*52 + 2*99ans=
610
Ch rng MATLAB khng ch n nhng khong trng, cho tt c cc phn, vphp nhn c mc u tin cao hn php cng. V mt ch khc l MATLAB gi ktqu 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 vobin ca MATLAB:
>> erasers = 4
erasers=4
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
5/215
-
7/28/2019 Lap Trinh Matlap
6/215
Updatesofts.com Ebook Team 5
tape=2
Nu bn khng nh tn bin, bn c th yu cu MATLAB cho danh sch cc bin bngcch dnh lnh whowhowhowhot du nhc lnh:
>> whoYour variables are:ans cost iterms tapeaverage_cost erasers pads
Ch rng MATLAB khng a ra gi tr ca tt c cc bin, nu bn mun bit gitr, bn nh vo tn bin ti du nhc lnh ca MATLAB.
gi li cc lnh bn dng, MATLAB dng cc phm mi tn ( ) trn bn phm ca
bn. V d gi li lnh bn g vo lc gn hin ti nht, bn nhn phm mi tn , tip tcnhn phm ny, n s li gi tip lnh trc , Nu bn dng phm mi tn n s gi lilnh t lnh u tin cho n lnh gn hin ti nht. Cc phm mi tn v c thdng thay i v tr con tr trong dng lnh ti du nhc ca MATLAB, nh vy chng tac th sa dng lnh, thm na, chng ta c th dng chut cng vi b nh m ct,copy, dn, v sa vn bn ti du nhc ca dng lnh.
1.3 Bin1.3 Bin1.3 Bin1.3 Bin
Ging nh nhng ngn ng lp trnh khc, MATLAB c nhng quy nh ring v tnbin. Trc 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 nhauTn bin c th cha nhiu nht 31 k t, cn cc k t sau k t th 31 b l i.V d: howaboutthisveriablenameTn bin bt u phi l ch ci, tip theo c th l ch s, s gch diV d: how_about_this_veriable_name, X51483. a_b_c_d_eK t chm cu khng c php dng v n c nhng ngha c bitCng vi nhng quy nh trn, MATLAB c nhng bin c bit trong bng sau:
Cc bin c bit Gi trans Tn bin mc nh dng tr v kt qupi = 3.1415..Eps S nh nht, nh vy dng cng vi 1 cs nh nht ln hn 1flops S ca php ton s thcinf ch s v cng nh kt qu ca 1/0NaN hoc nan Dng ch s khng xc nh nh kt qu ca 0/0i (v) j i = j =nargin S cc i s a vo hm c s dngnarout S cc i s hm a ra
realmin S nh nht c th c ca s thcrealmax S ln nht c th c ca s thc
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
7/215
Updatesofts.com Ebook Team 6
Nh bn c th to mt bin ca MATLAB, v bn cng c th gn li gi tr cho mthoc nhiu bin.
V d:>> erases = 4;>> pads = 6;>> tape = 2;>> iterms = eases + pads + tapeiterms=
12>> erases = 6erases=
6
>> itermsiterms=12
y chng ta s dng li v d trn, chng ta tm c s vt m Mary mua sau chng ta thay i s cc ty ln 6, gi tr ny s ln gi tr trc ca n l 4. Khi bn lmnh vy, gi tr ca iterms vn khng thay i, v MATLAB khng tnh li iterms vi gi trmi ca erases. Khi MATLAB thc hin mt php tnh, n ly gi tr ca cc bin hin thi,nn nu bn mun tnh gi tr mi ca iterms, cost, average_cost, bn gi li cc lnh tnhcc gi tr .
i vi cc bin c bit trn, n c sn gi tr, nh vy khi bn khi ng
MATLAB; nu bn thay i gi tr ca n th nhng gi tr c bit ban u s b mt chon khi bn xo bin i hoc khi ng li MATLAB. Do bn khng nn thay i gitr ca bin c bit, tr khi n thc s cn thit.
Cc bin trong khng gian lm vic ca MATLAB c th b xo khng iu kin bngcch dng lnh clearclearclearclear. V d:>> clear erases
ch xo mt bin erases>> clear cost iterms
xo c hai bin cost v iterms>> clear cl*
du * ch rng xo tt c cc bin bt u bng hai k t cl.
>> clear
xo tt c cc bin trong khng gian lm vic!. Bn s khng c hi xc nhn culnh ny v tt c cc bin b xo khng th khi phc li.C th ni rng dng lnh clearclearclearclearrt nguy him, v vy khi dng lnh ny bn nn dng ngv tr.
1.4 Cu gii thch (comment) v s chm cu1.4 Cu gii thch (comment) v s chm cu1.4 Cu gii thch (comment) v s chm cu1.4 Cu gii thch (comment) v s chm cu
Tt c cc vn bn ng sau k hiu phn trm (%) u l cu gii thch. V d:
>> erases = 4 % S cc ty.erases=
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
8/215
Updatesofts.com Ebook Team 7
4
Bin erases c gn gi tr l 4, cn tt c k hiu phn trm v vn bn ng sau n u
b l i. c im ny gip cho chng ta d theo di cng vic chng ta ang lm.Nhiu lnh c th t trn cng mt hng, chng cch nhau bi du phy hoc du chmphy, nh:
>> erases = 4, pads = 6; tape = 2erases=
4tape=
2du phy yu cu MATLAB hin th kt qu trn mn hnh; cn du chm phy l khnghin th kt qu trn mn hnh.
>> average_cost = cost/ ...itermsaverage_cost=
50.83333
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 binkhng b ngn cch gia hai hng:
>> average_cost = cost/ it...erms
??? age_cost = cost/itermsMissing operator, coma, or semicolon.
ging nh vy, trng thi ca li gii thch khng th tip tc:
>> % Comments cannot be continued ...>> either??? Undefined function or variable either.
Bn c th dng chng trnh bng cch nhn ng thi Ctrl v C.
1.5 S phc1.5 S phc1.5 S phc1.5 S phc
Mt trong nhng c im mnh m nht ca MATLAB l lm vic vi s phc. S phctrong MATLAB c nh ngha theo nhiu cch, v d nh sau:
>> c1 = 1 - 2i % Chn thm k t i vo phn o.c1=
1.0000 - 2.0000i>> c1 = 1 - 2j % j y tng t nh i trn.c1=
1.0000 - 2.0000i
>> c2 = 3*(2-sqrt(-1)*3)c2=
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
9/215
-
7/28/2019 Lap Trinh Matlap
10/215
Updatesofts.com Ebook Team 9
-1.1071>> deg_c1 = angle_c1*180/ pi % Chuyn t radian sang
-63.4349
>> real_c1 = real(c1) % Tnh phn thcreal_c1=1
>> imag_c1 = imag(c1) % Tnh phn oimag_c1=
-2
-------------------oOo------------------
Chng2
CC C tnh K THUT
Ging nh hu ht cc my tnh k thut, MATLAB a ra rt nhiu cc hm ton hc, k
thut thng dng, ngoi ra MATLAB cn cung cp hng trm cc hm c bit v thut
ton, n rt hu ch gii quyt cc vn khoa hc. Tt c cc hm ny c lit k
trong online help, cn y ch cp n nhng hm thng dng nht.
2.1 Cc hm ton hc thng th2.1 Cc hm ton hc thng th2.1 Cc hm ton hc thng th2.1 Cc hm ton hc thng thngngngng
Cc hm ton hc ca MATLAB c lit k trong bng di y, chng u cchung mt cch gi hm nh v d di y:
>> x = sqrt(2)/2x=
0.7071>> y = sin(x)y=
0.7854>> y_deg = y*180/piy_deg=
45.0000
Nhng lnh ny tm mt gc (tnh bng ) khi bit gi tr hm sin ca n l / 2.Tt c cc hm lin quan n gc ca MATLAB u lm vic vi radian.
Bng cc hm:Cc hm thng thng
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
11/215
Updatesofts.com Ebook Team 10
abs(x) Tnh argument ca s phc xacos(x) Hm ngc ca cosineacosh(x) Hm ngc ca hyperbolic cosine
angle(x) Tnh gc ca s phc xasin(x) Hm ngc ca sineasinh(x) Hm ngc ca hyperbolic sineatan(x) Hm ngc ca tangentatan2(x, y) L hm arctangent ca phn thc ca x v yatanh(x) Hm ngc ca hyperbolic tangentceil(x) Xp x dng v cngconj(x) S phc lin hpcos(x) Hm cosine ca xcosh(x) Hm hyperbolic cosine ca xexp(x) Hm exfix(x) Xp x khngfloor(x) Xp x m v cnggdc(x, y) c s chung ln nht ca hai s nguyn xv yimag(x) Hm tr v phn o ca s phclcm(x, y) Bi s chung nh nht ca hai s nguyn x v ylog(x) Logarithm t nhinlog10(x) Logarithm c s 10real(x) Hm tr v phn thc ca xrem(x, y) Phn d ca php chia x/ yround(x) Hm lm trn v s nguyn t
sign(x) Hm du: tr v du ca argument nh:sign(1.2)=1; sign(-23.4)=-1; sign(0)=0sin(x) Hm tnh sine ca xsinh(x) Hm tnh hyperbolic sine ca xsqrt(x) Hm khai cn bc haitan(x) Tangenttanh(x) Hyperbolic tangent
>> 4*atan(1) % Mt cch tnh xp x gi tr ca pians=
3.1416
>> help atant2 % Yu cu gip i vi hm atan2
ATAN2 four quadrant inverse tangentATAN2(Y, X) is the four quadrant arctangent of the real parts of the elements of X and
Y. -pi 180/pi*atan(-2/ 3)ans=
-33.69>> 180/pi*atan2(2, -3)ans=
146.31
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
12/215
Updatesofts.com Ebook Team 11
>> 180/pi*atan2(-2, 3)ans=
-33.69
>> 180/pi*atan2(2, 3)ans=33.69
>> 180/pi*atan2(-2, -3)ans=
-146.31
Mt s v d khc:
>> y = sqrt(3^2 + 4^2) % Tnh cnh huyn ca tam gic pitago 3-4-5y=
5>> y = rem(23,4) % 23/4 c phn d l 3y=
3>> x = 2.6,y1 = fix(x),y2 = floor(x),y3 = ceil(x),y4 = round(x)x=
2.6000y1=
2y2=
2
y3=3y4=
3>> gcd(18,81) % 9 l c s chung ln nht ca 18 v 81ans=
9>> lcm(18,81) % 162 l bi s chung ln nht ca 18 v 81ans=
162
V d: c lV d: c lV d: c lV d: c lng chiu cao ca ngi nhng chiu cao ca ngi nhng chiu cao ca ngi nhng chiu cao ca ngi nhVn :Vn :Vn :Vn :Gi thit bit khong cch t ngi quan st n ngi nh l D, gc t ngi quan
st n ngi nh l ; chiu cao ca ngi quan st l h. Hi ngi nh cao bao nhiu?Gii php:Gii php:Gii php:Gii php:Ta biu din kch thc nh hnh 2.1:
(khng thy)
Hnh 2.1Hnh 2.1Hnh 2.1Hnh 2.1
Ngi nh c chiu cao l H + h, H l chiu di ca mt cnh ca tam gic, chiu di nyc th tnh c bng cng thc quan h gia gc v cnh ca tam gic:
tan() =
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
13/215
Updatesofts.com Ebook Team 12
T ta c chiu cao ca ngi nh lh + H = h + D.tan()
Nu h =2meters, D =50meters, v l 60o
, MATLAB s a ra kt qu l:>> h = 2h =
2>> theta = 60theta =
60>> D = 50D =
50
>> buiding_height = h+D*atan(theta*pi/180)buiding_height =54.3599
V d s suy gim do phn rVn Vn Vn 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 gramspolonium, n s cn li bao nhiu sau 250 ngy?
Gii quytGii quytGii quytGii 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 trongkhong 5 v 2.5 grams, v ta c cng thc tnh phn cn li sau khong thi gian bt k:
khi lng cn li = khi lng ban u x(0.5) thi gian/ chu k
v d thi gian l 250 ngy, v kt qu MATLAB a ra l:
>> initial_amount = 10; % Khi lng ban u>> half_life = 140; % Chu k phn r>> time = 250; % Thi gian tnh khi lng>> amount_left = initial_*0.5^(time/half_life)
amount_left=2.9003
V d tnh ton v li xutV d tnh ton v li xutV d tnh ton v li xutV d tnh ton v li xutVn Vn Vn Vn : Bn ng mua t mi vi gi 18,500 dollars. Ngi bn t a ra hai gii php
v ti chnh l: th nht, tr 2.9% li xut ca s tin trn trong vng 4 nm. Th hai l tr8.9% li xut ca s tin trn trong vng 4 nm v gi bn c gim i mt khon l 1500dollars. Hi vi gii php no th bn mua c t vi gi r hn?
Gii php:Gii php:Gii php:Gii php:S tin tr hng thng l P, trn tng s tin l A dollars, t s li xut hngthng l R, tr trong M thng:
P = A
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
14/215
Updatesofts.com Ebook Team 13
Tng s tin phi tr s l: T = PxMGii php MATLAB a ra l:
>> format bank % Dng dng hin th ngn hng>> A = 18500; % Tng s tin>> M = 12*4; % S thng phi tr li>> FR = 1500; % Tin gim gi ca nh my>> % Gii php th nht>> R = (2.9/100)/12; % T l li xut hng thng>> P = A*(R*(1+R)^M/((1+R)^M - 1)) % Khon tin phi tr hng thngP=
408.67>> T1 = P*M % Tng gi tr ca tT1=
19616.06>> % Gii php th hai>> R = (8.9/100)/12; % T l li xut hng thng>> P = (A-FR)*(R*(1 + R)^M/((1+R) M - 1)) % Tin phi tr hng thngP=
422.24>> T2 = P*M % Tng gi tr ca tT2=
20267.47>> Diff = T2 - T1Diff=
651.41
Nh vy ta c gii php th nht gi r hn gii php th hai.
V d: Vn nng acidV d: Vn nng acidV d: Vn nng acidV d: Vn nng acidVn :Vn :Vn :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 dungdch 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 cnbm trn vt c khi nhng b trc cng vo theo v khi nhc ra khi bn mt lng acidbm 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% n10%. Hi bao nhiu b phn c th nhng vo b dung dch acid trc khi nng ca ngim xung di mc cho php?
Gii php:Gii php:Gii php:Gii php:Ban u nng acid l initial_con = 90% = acid/ (acid + water)
sau ln nhng th nht nng acid cn:
con =
=
=
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
15/215
Updatesofts.com Ebook Team 14
=
acid l lng acid ban u trong dung dch, water l lng nc ban u trong dungdch, lost l lng phn trm nc thm vo. S acid cn li trong dung dch sau lnnhng th nht l:
acid_left =
Ngha l, khi nhng ln th hai nng dung dch s l:
con =
=
=
Tip tc qu trnh ny, sau n ln nhng, nng acid l:
con =
Nu nng acid cn li l mc ti thiu chp nhn c, s ln nhng cc i s l mts nguyn bng hoc nh hn n:
n =
Trong MATLAB gii php s l:
>> initial_con = 90initial_con=
90>> min_con = 50min_con=
50>> lost = 0.01;>> n = floor(log( initial_con/min_con)/log(1+lost))
n=59
Nh vy c th nhng 59 ln trc khi nng acid gim xung di 50%. Ch hmfloorfloorfloorfloordng lm trn s n xung s nguyn gn nht, v dy ta cng c th dng hmlogarithmlogarithmlogarithmlogarithmc s 10 v logarithmlogarithmlogarithmlogarithmc s 2 thay cho hm logarithmlogarithmlogarithmlogarithmt nhin trn.
-------------------oOo----------------------
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
16/215
Updatesofts.com Ebook Team 15
chng 3NHNG C IM CA CA S LNH
Ca s lnh (comand) ca MATLAB c rt nhiu nhng c im cn ch , mt s chng c gii thiu chng trc, v sau y chng ta tm hiu r hn v chng.
3.1 Qun l khng gian lm vic ca MATLAB3.1 Qun l khng gian lm vic ca MATLAB3.1 Qun l khng gian lm vic ca MATLAB3.1 Qun l khng gian lm vic ca MATLAB
Cc d liu v bin c to ln trong ca s lnh, c lu trong mt phn gi l khnggian lm vic ca MATLAB. Mun xem tn bin trong khng gian lm vic ca MATLAB tadng lnh who:
>> who
Your variables are:
D hbuiding_height theta
Cc bin ny c dng trong v d c lng chiu cao ngi nh. xem chi tit hn vcc bin ta dng lnh whos:
>> whosName Size Bytes Class
D 1x1 8 double arraybuiding_height 1x1 8 double arrayh 1x1 8 double arraytheta 1x1 8 double array
Grand total is 4 elements using 32 bytes
Mi bin c lit k vi kch c ca n, s bytes s dng, v cc lp ca chng (class),trong v d c bit ny, cc bin u l s n, c chnh xc hai s sau du phy. Lnhwhoswhoswhoswhosc bit c ch khi nghin cu n phn mng v cc kiu d liu khc.
Ngoi cc hm ny, trong mc Show WorkspaceShow WorkspaceShow WorkspaceShow Workspace trong bng chn filefilefilefile to ra ca sGUI gi l Workspace BrowserWorkspace BrowserWorkspace BrowserWorkspace Browser, n cha cc thng tin tng t nh lnh whoswhoswhoswhos. Thm nan to cho bn kh nng xo, lm sch cc bin m bn chn. Ca s ny cng c th tobng cch nhn nt Workspace BrowserWorkspace BrowserWorkspace BrowserWorkspace Browser, trn thanh cng c ca ca s lnh.
Nh trnh by trn, lnh clearclearclearclear c th xo bin t khng gian lm vic caMATLAB.V d:>> clear h D % Xo cc bin h v D>> who
Your variables are:
buiding_height theta
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
17/215
Updatesofts.com Ebook Team 16
Cc tu chn khc ca hm clear chng ta c th tm hiu thm bng lnh help:
>> help clearCLEAR Clear variables and functions from memory.
CLEAR removes all variables from the workspace.CLEAR VARIABLES does the same thing.CLEAR GLOBAL removes all global variables.CLEAR FUNCTIONS removes all compiled M-functions.CLEAR MEX removes all links to MEX-files.CLEAR ALL removes all variables, globals, functions and MEX links.
CLEAR VAR1 VAR2 ... clears the variables specified. The wildcard
character '*' can be used to clear variables that match a pattern.For instance, CLEAR X* clears all the variables in the currentworkspace that start with X.
If X is global, CLEAR X removes X from the current workspace,but leaves it accessible to any functions declaring it global.CLEAR GLOBAL X completely removes the global variable X.
CLEAR FUN clears the function specified. If FUN has been lockedby MLOCK it will remain in memory.
CLEAR ALL also has the side effect of removing all debuggingbreakpoints since the breakpoints for a file are cleared wheneverthe m-file changes or is cleared.
Use the functional form of CLEAR, such as CLEAR('name'),when the variable name or function name is stored in a xu.See also WHO, WHOS, MLOCK, MUNLOCK.
Cui cng, khi lm vic trong khng gian lm vic ca MATLAB, n thng thuntin ghi hoc in mt bn sao cng vic ca bn, lnh diarydiarydiarydiaryghi d liu ngi dng avo v ca s lnh v a ra file vn bn dng m ASCII c tn l diary trong th mc hin
ti.
>> diary frame % ghi d liu vao file frame>> diary off % kt thc lnh diary v ng file
Khi ca s lnh c chn, chn printprintprintprint... t bng chn filefilefilefile in mt bn ca ca slnh, bn c th dng chut la chn phn mnh mun ghi, chn Pint SelectionPint SelectionPint SelectionPint Selection... t bngchn filefilefilefile, in mt phn vn bn la chn.
3.2 Ghi v phc3.2 Ghi v phc3.2 Ghi v phc3.2 Ghi v phc hi d liuhi d liuhi d liuhi d liu
nh cc bin MATLAB c th ghi v gi li d liu t file trong my tnh ca bn.Mc Workspace asWorkspace asWorkspace asWorkspace as... trong bng chn filefilefilefile m hp chun hi thoi ghi tt c cc bin
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
18/215
Updatesofts.com Ebook Team 17
hin ti. Ging nh vy, trong mc Load WorkspaceLoad WorkspaceLoad WorkspaceLoad Workspace trong bng chn filefilefilefile m hp hi thoi gi li tt c cc bin m ta ghi li t khng gian lm vic trc, n khng lm mtcc bin ny trong khng gian lm vic hin ti. Khi ta gi li cc bin, m cc bin ny
trng tn vi cc bin trong khng gian lm vic ca MATLAB, n s thay i gi tr ca ccbin theo gi tr ca cc bin gi ra t file.Nu bng chn file khng thun tin hoc khng p ng c nhng yu cu ca
bn, MATLAB cung cp hai lnh savesavesavesavev loadloadloadload, n thc hin mt cch mm do hn, trongtrng hp c bit, lnh savesavesavesavecho php bn ghi mt hoc nhiu hn mt bin tuy theo sla chon ca bn.V d:>> save
Cha tt c cc bin trong MATLAB theo kiu nh phn trong file MATLAB.mat
>> save data
cha tt c cc bin trong MATLAB theo kiu nh phn trong fle data.mat.
>> save data erasers pads tape -ascii
Ghi cc bin erasers, pads, tape trong dng m ASCII 8 s trong file data. File dng mASCII c th sa i bng bt c chng trnh son tho vn bn no, ch rng file ASCIIkhng c phn m rng .mat.
>> save data erasers pads tape -ascii -double
Ghi cc bin erasers, pads, tape dng ASCII 16 s trong file data.Lnh loadloadloadloadcng dng vi c php tng t.
3.3 Khun dng hin th s3.3 Khun dng hin th s3.3 Khun dng hin th s3.3 Khun dng hin th s
Khi MATLAB hin th kt qu dng s, n tun theo mt s quy nh sau:Mc nh, nu kt qu l s nguyn th MATLAB hin th n l mt s nguyn, khi kt qu lmt s thc th MATLAB hin th s xp x vi bn ch s sau du phy, cn cc s dngkhoa hc th MATLAB hin th cng ging nh trong cc my tnh khoa hc.
Bn c th khng dng dng mc nh, m to mt khun dng ring t mc
PreferencesPreferencesPreferencesPreferences, trong bng chn filefilefilefile, c th mc nh hoc nh dng xp x ti du nhc.Chng ta dng bin average_cost ( trong v d trc) lm v d, dng s ny l:
Lnh ca MATLAB Average_cost Ch thchformat short 50.833 5 sformat long 50.83333333333334 16 sformat short e 5.0833e+01 5 s vi s mformat long e 5.083333333333334e+01 16 s vi s mformat short g 50.833 chnh xc hn format short
hoc format short eformat long g 50.83333333333333 chnh xc hn format long
hoc format long eformat hex 40496aaaaaaaaaab h c s 16
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
19/215
Updatesofts.com Ebook Team 18
format bank 50.83 hai s h 10format + + dng, m hoc bng khngformat rat 305/ 6 dng phn s
Mt ch quan trng l MATLAB khng thay i s khi nh li khun dng hin th cchn, m ch thay i mn hnh thay i.
---------------oOo-----------------
Chng 4Script M_files
Mt vn n gin l, yu cu ca bn ti du nhc ca MATLAB trong ca s lnh lnhanh v hiu qu. Tuy nhin v s lnh tng ln, hoc khi bn mun thay i gi tr camt hoc nhiu bin v thc hin li mt s lnh vi gi tr mi, nu c nh lp li ti dunhc ca MATLAB th s tr ln bun t, do vy MATLAB cung cp mt gii php cho vn ny l: n cho php bn thay th cc lnh ca MATLAB bng mt file vn bn n gin,v yu cu MATLAB m file v thc hin lnh chnh xc nh l nh ti du nhc caMATLAB ti ca s lnh, nhng file ny gi l script filescript filescript filescript file, hoc n gin l M_fileM_fileM_fileM_file. Danh t"script" ch rng thc t MATLAB c t file kch bn tm thy trong file. Danh t "M_file" ch rng tn script file phi kt thc bng phn m rng l '.m' nh v d example1.m.
to mt script M_file, chn NewNewNewNew trong bng chn filefilefilefile v chn M_fileM_fileM_fileM_file. Th tc nys to ra mn hnh son tho, v bn c th nh c cc lnh ca MATLAB trong . V
d di y l cch lnh trong v d c lng chiu cao ngi nh trc:
function example1% example1.m V d c lng chiu cao ngi nh
h = 2theta = 60D = 50;building_height = h + D*tan(theta*pi/180)
Bn c th ghi v lu gi file nybng cch chn SaveSaveSaveSave t bng chn filefilefilefile. Khi bn ghi lnfile 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:
>> example1h=
2theta=
60building_height=
54.3599Khi 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 khngphi l bin hin ti, hoc mt lnh MATLAB xy dng ln, MATLAB m file example1.m
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
20/215
Updatesofts.com Ebook Team 19
(nu n tm thy) v tnh gi tr cc lnh tm thy ch khi chng ta vo cc thng s chnh xcti du nhc ca ca s lnh. Nh thy lnh trong M_file truy cp n tt c cc bintrong 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 ln c tnh trong ca s lnh, nhng lnh echo onecho onecho onecho onyu cu MATLAB hin th hoc lp lilnh i vi ca s lnh nh chng ta c v tnh. Tip theo bn c th on c lnhecho offecho offecho offecho offlm g. Ging nh vy, lnh echoechoechoecho lp li bi chnh n lm thay i chnh trng thica n.
Vi c im ny ca M_file bn c th thay i li ni dung ca file, v d bn c thm M_file example1.m thay i li cc gi tr ca h, D, hoc theta, ghi li file v yu cuMATLAB tnh li lnh trong file. Thm na, bng cch to M_file, cc lnh ca bn c lutrn 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 scriptfile 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 chmphy ng sau cu lnh khng cho hin th kt qu, t bn c th iu chnh script file ara nhng kt qu cn thit.
V nhng ng dng ca script file, MATLAB cung cp mt s hm c bit c ch khibn s dng trong M_file:
Cc hm M_filedisp(ans) Hin th cc kt qu m khng hin tn binecho iu khin ca s lnh lp li cc lnh ca script fileinput S dng du nhc a d liu vokeyboard Trao iu khin tm thi cho bn phm
pause Dng li cho n khi ngi dng nhn mt phm btk
pause(n) Dng li n giywaitforbuttonpress 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 chin th trn ca s lnh cng vi tn bin. i lc n thun tin khi khng cho hin tnbin, trong MATLAB ta dng lnh disp thc hin vic ny:
>> h % Cch truyn thng hin kt quh=
2>> disp(h) % Hin kt qu khng c tn bin
2
gip bn son tho script file khi tnh ton cho nhiu trng hp, lnh inputinputinputinputchophp 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 = 2theta = 60
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
21/215
Updatesofts.com Ebook Team 20
D = input( Vo khong cch gia ngi v ngi nh: )building_height = h + D*tan(theta*pi/180)
chy file ny:>> example1h=
2theta=
60Vo khong cch gia ngi v ngi nh: 60D=
60building_height=
64.8319
v d trn ta g vo s 60 v n Enter. Nhng lnh sau s tnh vi gi tr ca D l 60.Ch rng hm inputinputinputinputc th dng vi cc php ton khc ging nh i vi cc hm thngthng khc, hm ininininputputputputcng chp nhn i vi bt c kiu biu din s no, v d ta vomt s l: +5.
>> example1h=
2theta=
60Vo khong cch gia ngi v ngi nh: sqrt(1908)+5D=
48.6807building_height=
52.9783
xem nhng tc ng ca lnh echoechoechoecho, ta dng chng trong script file:
echo onfunction example1
% example1.m V d c lng chiu cao ngi nhh = 2theta = 60D = input( Vo khong cch gia ngi v ngi nh: )building_height = h + D*tan(theta*pi/180)echo off
chy chng trnh ta c:
>> example1% example1.m V d c lng chiu cao ngi nh
h = 2h=
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
22/215
Updatesofts.com Ebook Team 21
2theta = 60theta=
60D = input( Vo khong cch gia ngi v ngi nh: )Vo khong cch gia ngi v ngi nh: 60building_height = h + D*tan(theta*pi/180)building_height=
64.8319echo off
Nh bn thy trong trng hp ny, lnh echoechoechoecholm cho kt qu kh c hn, nh-ng ngc li lnh n c th rt c ch khi g ri nhiu script file ng dng.
------------------oOo-------------------
Chng 5QUN 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 di 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_filetrong my tnh ca bn. C rt nhiu trng 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 nkhng tm c ng dn ca MATLAB, bn cn phi thay i li ng dn:
Cc hm h thng fileaddpath dir1 Thm th mc dir1 vo bt u ca ng dncd Hin th th mc hin thip = cd Gn th mc lm vic hin thi cho bin pcd path Thay i th mc a ra bng ng dndelete test.m Xo M_file test.mdir Danh sch tt c cc file trong th mc hin thid = dir Tr li file trong th mc hin thi trong cu trc
bin dedit test M test.m son tho, ging nh Open trong
bng chon fileexist(cow,file) Kim tra s tn ti ca file cow.m trong ng
dnexist(d,dir) Kim tra s tn ti ca th mc d trong ng dnfilesep Tch file nh\ trong Windows95 v NT, : trn
Macintoshfullfile To tn file vi ng dn y inmem Danh sch hm M_file, gi ra t b nh
ls Ging nh dirMATLABrc.m MATLAB ch khi ng script M_file, thchin trc khi startup.m
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
23/215
Updatesofts.com Ebook Team 22
MATLABroot Tr ng dn th mc cho chng trnh thchin MATLAB
path Hin th hoc sa ng dn ca MATLAB
(MATLABpath)pathdef.m Hm M_file, ni m mmatlabpath l ngpathsep Chia ng dn cho matlabpathpwd Ging nh cdrmpath dir1 B i th mc dir1 t ng dn matlabpathstartup.m script M_file thc hin khi MATLAB khi ngtempdir Tn ca th mc tm thitempname Tn ca file tm thitype test Hin ra M_file test.m trong ca s lnhwhat Tr li danh sch tt c M_file v MAT_file
trong th mc hin thi
which test Hin th ng dn th mc n test.m
ng n ca MATLAB l danh sch ca tt c cc th mc lu tr cc file caMATLAB. Hn na, nu bn to mt th mc ca M_file th ng dn ca n phi cthm vo matlabpath, nu khng th MATLAB khng th truy cp n cc file ca bn c,tr khi file t trong th mc hin thi.
xem MATLAB s dng matlabpath nh th no, hy xem trng hp c m ttrong bng sau:(Khng thy)
ng dn ca MATLABKhi bn g >> cow, MATLAB s lm nh sau:
(1)Kim tra nu cow l mt bin trong khng gian lm vic ca MATLAB, nu khngth...
(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 binc 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 loadloadloadloadc dng. u tinMATLAB tm kim trong th mc hin ti, sau n tm theo ng dn ca MATLAB nfile d liu.
Thc t th tc tm kim ca MATLAB phc tp hn l trnh by trn rt nhiu vMATLAB dng rt nhiu file c phn m rng l .m . Hm M_file c th cha nhiu hnmt bin, th mc trong matlabpath c th c th mc con gi l privateprivateprivateprivate, v MATLAB cungcp 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 xemcc ti liu cung cp trong a CD.
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
24/215
Updatesofts.com Ebook Team 23
Nu bn c M_file hoc MAT_file cha trong th mc khng phi trong ng n caMATLAB v khng trong th mc hin ti, MATLAB khng th tm thy chng. C hai giiphp cho vn ny l:
(1)_To th mc thit k thnh th mc hin ti, dng lnh cdcdcdcdhocpwdpwdpwdpwdt trong bngtrc.(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 browserpath browserpath browserpath browser) hoc cc lnh trong ca s lnh pathpathpathpathv addpathaddpathaddpathaddpath. dng path browser, tachn set pathset pathset pathset patht bng chn file hoc nhn chut trn nt path browserpath browserpath browserpath browser trn thanh cng cca ca s lnh. Lm nh vy ta s c mn hnh ging nh hnh 5.1:hnh 5.1:hnh 5.1:hnh 5.1:
Ging nh thit k cc GUI, n lin quan trc tip khi ta s dng. ng dn matlabpathc hin th bn tri, th mc con nm trong ng dn c chn nm bn tri, cncc 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 savsavsavsave pathe pathe pathe path t bng chn filefilefilefile
ca ca spath browserpath browserpath browserpath browser trc khi ng GUI.
Hnh 5.1 path browser trong MATLAB 5.2Hnh 5.1 path browser trong MATLAB 5.2Hnh 5.1 path browser trong MATLAB 5.2Hnh 5.1 path browser trong MATLAB 5.2
Ca s path browserpath browserpath browserpath browser trong MATLAB 5.0 khng khc lm so vi MATLAB 5.2, ch yu lcc nt thay i ng dn trong MATLAB 5.2 th n t trn nh cn MATLAB 5.0 nc t bn phi. ghi li s thay i ng dn trong MATLAB 5.0 trc khi ng GUIta nhn nt save settingssave settingssave settingssave settings.
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
25/215
Updatesofts.com Ebook Team 24
Hnh 5.2 path browser trong MATLAB to StudentHnh 5.2 path browser trong MATLAB to StudentHnh 5.2 path browser trong MATLAB to StudentHnh 5.2 path browser trong MATLAB to Student
5.1 MATLAB khi kh5.1 MATLAB khi kh5.1 MATLAB khi kh5.1 MATLAB khi khi ngi ngi ngi ng
Khi khi ng MATLAB, n to ra hai script M_file l matlabrc.m v startup.m, trong atlabrc.m i cng MATLAB, v nhn chung l khng c sa n.
Cc lnh trong M_file to mt cu hnh mc nh v kch c ca ca s v v tr ca n,
cng nh cc c im mc nh khc trong Windows95, WindowNT. ng dn mc nhc to bng cch gi script file pathdef.m t matlabrc.m. Trong cc phn, cc lnh trongmatlabrc.m kim tra s tn ti ca script M_file startup.m trong ng dn ca MATLABnu n tn ti, cc lnh trong n c thc hin.
S la chn M_file startup.m cha cc lnh c nhng c im ring i viMATLAB. V d n rt thng thng nu ta thm mt hoc hn cc lnh pathpathpathpathhoc addpathaddpathaddpathaddpathtrong startup.m chn thm cc th mc vo trong ng dn ca MATLAB. Ging nhvy, mc nh hin th khun dng s c th thay i c nh format compact. Nu bnc mn hnh cn bng xm, lnh graymon s c ch khi to mc nh ho cho ch ny. Hn na, nu bn v th c cc kiu mc nh ring th mt s gi ti colordef cth xut hin trong startup.m. Khi startup.m l mt file chun trong script M_file, th khngmt lnh no c th thay th c trong n. Tuy nhin ta c th thay th lnh quit trongstartup.m.
----------------oOo-----------------
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
26/215
-
7/28/2019 Lap Trinh Matlap
27/215
Updatesofts.com Ebook Team 26
>> x(2) % phn t th nht ca mngans=
0.3142>> y(5) % phn t th 5 ca mngans=
0.9511
+) truy nhp n nhiu phn t ca mng, v d ta truy nhp t phn t th nht nphn t th nm ca mng x:
>> x(1:5)ans=
0 0.3142 0.6283 0.9425 1.2566
Truy nhp t phn t th 7 n phn t cui ca mng y:
>> y(7:end)ans=
0.9511 0.8090 0.5878 0.3090 0.0000
Truy nhp t phn t th ba n phn t th nht ca mng y:
>> 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 tsau 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 caphn 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
To mng gm cc phn t th 1, 2, 8, 9 ca mng y:
>> y([8 2 9 1])ans=
0.8090 0.3090 0.5878 0Nu ta truy nhp vo cc phn t ca mng m th t cc phn t tng u vi 1, ta c thnh lnh:
>> x(1:3)ans=
0 0.3142 0.6283
6.3 Cu trc ca mng6.3 Cu trc ca mng6.3 Cu trc ca mng6.3 Cu trc ca mng
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
28/215
Updatesofts.com Ebook Team 27
Vi mng c s lng phn t t th ta c th nhp vo trc tip, nhng vi mng c s l-ng ln cc phn t th ta dng mt trong hai cch sau:+) To mt mng bt u l phn t 0, sau bng phn t trc cng vi 0.1, phn t cui l
1, tt c cc phn t ca mng c nhn vi :>> x= (0:0.1:1)*pix=
Columns 1 through 70 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850
Columns 8 through 112.1991 2.5133 2.8274 3.1416
+) To mng gm cc phn t ca x bng hm linspacelinspacelinspacelinspace. C php ca hm ny nh sau:
linspacelinspacelinspacelinspace(gi tr phn t u, gi tr phn t cui, s cc phn t)v d
>> x = linspace(0,pi,11)x=
Columns 1 through 70 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
Cch th nht gip ta to mng m ch cn vo khong cch gi tr gia cc phn t
(khng cn bit s phn t), cn cch th hai ta ch cn vo s phn t ca mng (khngcn bit khong cch gi tr gia cc phn t).Ngoi cc mng trn, MATLAB cn cung cp mng khng gian theo logarithm bng
hmlogspacelogspacelogspacelogspace. C php ca hm logspacelogspacelogspacelogspacenh sau:
logspace(s m u, s m cui, s phn t)v d:>> logspace(0,2,11)ans=
Columns 1 through 7
1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489Columns 8 though 11
25.1189 39.8107 63.0957 100.0000
To mng, gi tr bt u ti 100, gi tr cui l 100, cha 11 gi trCc mng trn l cc mng m cc phn t ca n c to ln theo mt quy lut
nht nh. Nhng i khi mng c yu cu, n khng thun tin to cc phn t bng ccphng php trn, khng c mt mu chun no to cc mng ny. Tuy nhin ta c thto mng bng cch vo nhiu phn t cng mt lcV d
>> a = 1:5,b = 1:2:9a=
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
29/215
-
7/28/2019 Lap Trinh Matlap
30/215
Updatesofts.com Ebook Team 29
Mt cch khc to cc vector ct l dng cc hm linspacelinspacelinspacelinspace, logspacelogspacelogspacelogspace, hay t ccvector 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 aaaa v vector bbbb l chuyn v ca vector aaaa, vector cccc l chuyn v cavector bbbb:
>> a= 1:5a=
1 2 3 4 5>> b= a'b=
123
45>> c= b'c=
1 2 3 4 5
Ngoi ra MATLAB cn s dng ton t chuyn vi du chm ng trc ( .' ) ( ton tchuyn v chm). Ton t ny ch khc vi ton t chuyn v ( ' ) khi cc phn t ca mngl s phc, tc l t mt vector ngun vi cc phn t l s phc, ton t ( ' ) to ra vectorphc 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 cccc t vector aaaa trn bng ton t chuyn v chmc=12345
>> d = a + i*a % To vector s phc dddd t vector aaaad=
Columns 1 though 41.0000+1.0000i 2.0000+2.0000i 3.0000+3.0000i 4.0000+4.0000i
Columns 55.0000+5.0000i
>> e = d.' % To vector eeee t vector dddd bng ton t chuyn v chm ( .' )e=
1.0000 + 1.0000i2.0000 + 2.0000i3.0000 + 3.0000i4.0000 + 4.0000i5.0000 + 5.0000i
>> f = d' % To ra vector ffff t vector dddd bng ton t chuyn v ( ' )f=
1.0000 - 1.0000i2.0000 - 2.0000i
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
31/215
Updatesofts.com Ebook Team 30
3.0000 - 3.0000i4.0000 - 4.0000i5.0000 - 5.0000i
trn ta ch xt n mng c mt hng hay mt ct by gi ta xt trng hp cnhiu hng v nhiu ct, n cn c gi l ma trn. V d sau y l ma trn gggg chai hng v bn ct:
>> g = [1 2 3 4;5 6 7 8]g=
1 2 3 45 6 7 8
Trong v d ny ta dng du cch vo cc phn t trong hng v du chm phy (
; ) to hai hng; ngoi ra ta cng c th to ma trn nh sau:
>> g = [1 2 3 45 6 7 89 10 11 12]g=
1 2 3 45 6 7 89 10 11 12
Ch Ch Ch 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
+) Php ton gia mng vi s n.+) Php ton gia mng vi s n.+) Php ton gia mng vi s n.+) Php ton gia mng vi s n.Trong v d trc chng ta to mng x bng cch nhn cc phn t ca mt mng
vi . Cc php ton n gin khc gia mng vi s n l php cng, php tr, php nhn,v php chia ca mng cho s bng cch thc hin php ton i vi tng phn t camng.V d:
>> g = [1 2 3 4; 5 6 7 8; 9 10 11 12];>> -2 % Tr cc phn t ca mng g i 2ans=
-1 0 1 23 4 5 67 8 9 10
>> 2*g - 1 % Nhn tt c cc phn t ca mng g vi 2 sau tr i 1ans=
1 3 5 79 11 13 15
17 19 21 23
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
32/215
Updatesofts.com Ebook Team 31
+) Php ton gia mng vi mngThut ton thc hin php ton gia cc mng khng phi n gin nh trn m n cn
b rng buc bi cc iu kin khc nh i vi hai mng kch c nh nhau th ta c cc
php ton sau: php cng, php tr, php nhn, chia tng ng gia cc phn t ca ca haimng.V d :>> g % Gi li mng gg=
1 2 3 45 6 7 89 10 11 12
>> h = [1 1 1 1; 2 2 2 2; 3 3 3 3] % To mt mng mi h.h=
1 1 1 1
2 2 2 23 3 3 3>> h + g % Cng hai ma trn g v h ( cng tng ng tng phn t ca h vi g)ans=
2 3 4 57 8 9 1012 13 14 15
>> ans - h % Ly kt qu trc tr i mng h, ta c li mng g.ans=
1 2 3 45 6 7 8
9 10 11 12>> 2*g - h % Nhn ma trn g vi 2 sau ly kt qu tr i ma trn hhhh.ans=
1 3 5 78 10 12 14
15 17 19 21>> g.*h % Nhn tng ng cc phn t ca mng g vi cc phn t ca mng hhhhans=
1 2 3 410 12 14 1627 30 33 36
v d trn ta dng ton t chm_nhn ( .* ), ngoi ra MATLAB cn dng ton tchm_chia ( ./ hoc .\ ) chia tng ng cc phn t ca hai mng nh v d di y:
>> g./h % Chia phi tng ng cc phn t ca mng g vi cc phn t ca mng hhhhans=
1.0000 2.0000 3.0000 4.00002.5000 3.0000 3.5000 4.00003.0000 3.3333 3.6667 4.0000
>> h.\g % Chia tri tng ng cc phn t ca mng gggg vi cc phn t ca mng hhhhans=
1.0000 2.0000 3.0000 4.00002.5000 3.0000 3.5000 4.0000
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
33/215
Updatesofts.com Ebook Team 32
3.0000 3.3333 3.6667 4.0000
Ch ta ch c th dng php nhn_chm hay php chia_chm i vi cc mng gggg v hhhh m
khng th dng php nhn ( * ) hay php chia ( / hoc \ ) v i vi cc php ton ny yucu s ct v s hng ca hai ma trn phi tng thch.v d:
>> g*h??? Error using ==> *
Inner matrix dimensions must agree.>> g/hWarning: Rank deficient, rank = 1 tol = 503291e-15.ans=
0 0 0.8333
0 0 2.16670 0 3.5000>> h/gWarning: Rank dificient, rank = 2 tol = 1.8757e-14.ans=
- 0.1250 0 0.1250- 0.2500 0 0.2500- 0.3750 0 0.3750
Php chia ma trn a ra kt qu m khng cn thit phi cng kch c nh ma trn ggggv ma trn hhhh. V cc php ton i vi ma trn chng ta s ni n sau
+) Mng vi lu tha.MATLAB dng ton t ( .^ ) nh ngha lu tha ca mng.V d ta c hai mng gggg v hhhh nh trn, ta c th to cc mng mi bng ton t ( .^ ) nhsau:
>> g.^2 % Cc phn t ca gggg c lu tha v s m l 2.
ans=1 4 9 1625 36 49 6481 100 121 144
>> g.^-1 % Cc phn t ca gggg c lu tha vi s m l -1.
ans=1 0.5 0.33333 0.25
0.2 0.16667 0.14286 0.1250.11111 0.1 0.090909 0.083333>> 2.^g % Cc phn t ca gggg l s m ca 2.ans=
2 4 8 1625 36 49 64
729 1000 1331 1728
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
34/215
-
7/28/2019 Lap Trinh Matlap
35/215
Updatesofts.com Ebook Team 34
Khi gi hm ones(n)ones(n)ones(n)ones(n), zeros(n)zeros(n)zeros(n)zeros(n)vi mt thng s n th MATLAB s to mng vung vi shng v s ct l n. Khi gi hm vi hai thng sones(r,c)ones(r,c)ones(r,c)ones(r,c), zeos(r,c)zeos(r,c)zeos(r,c)zeos(r,c)th r l ch s hng, c lch s ct.
6.6 Thao6.6 Thao6.6 Thao6.6 Thao tc i vi mngtc i vi mngtc i vi mngtc i vi mng
T cc mng v cc ma trn c bn ca MATLAB, c nhiu cch thao tc i vichng. MATLAB cung cp nhng cch tin ch chn vo, ly ra, sp sp li nhng bphn t con ca chng bng cc ch s ca cc phn t. V d di y s minh ho nhngc im thao tc i vi mng v ma trn trn:
>> A = [1 2 3; 4 5 6; 7 8 9]A=
1 2 3
4 5 67 8 9
>> A(3,3) = 0 % Gn phn t hng th 3, ct th 3 bng 0.1 2 34 5 67 8 0
>> A(2,6) = 1 % Gn phn t hng th 2, ct th 6 bng 1.A=
1 2 3 0 0 04 5 6 0 0 1
7 8 0 0 0 0 y ma trn A khng c 6 ct, kch c ca ma trn A phi tng ln cho ph hp, cc phnt tng thm c in bng cc con s khng.
>> A(:,4) = 4 % Gn tt c cc phn t thuc ct th 4 bng 4.A=
1 2 3 4 0 04 5 6 4 0 17 8 0 4 0 0
trn ta dng du hai chm ( : ) ch tt c cc hng.
>> A = [1 2 3; 4 5 6; 7 8 9]; % Gn li cc gi tr ca ma trn A.>> B = A(3:-1:1,1:3) % To ma trn B bng cch o ngc cc hng ca ma trnA.B=
7 8 94 5 61 2 3
>> B = A(3:-1:1,:) % Cng to ma trn B nh trn% nhng y ta dng ( : ) ch tt c cc ct.
B=
7 8 94 5 6
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
36/215
Updatesofts.com Ebook Team 35
1 2 3>> C = [ A B(:,[1 3])] % To ma trn C bng cch ghp ma trn A v
% ct th nht, th ba ca ma trn B vo bn phi ma
trn A.C=1 2 3 7 94 5 6 4 67 8 9 1 3
>> C = [1 3]C=
1 3>> B = A(C,C) % Dng ma trn C lm ch s to ma trn B T ma trn A.B=
1 3
7 9>> B= A(:) % To ma trn ct B t ma trn A.B=
14725836
9>> B = B.' % Chuyn ma trn B thnh ma trn hng bng ton t chuyn vchm.B=
1 4 7 2 5 8 3 6 9>> B = A;>> B(:,2) = [] % Loi b ct th hai ca ma trn B.B=
1 34 67 9
Khi ta gn ct th hai ca ma trn B cho ma trn rng ([]) th n s b xo, ma trn cn li srt b i hng th hai.
>> B = B.'B=
1 4 73 6 9
>> B(2,:) = []B=
1 4 7
>> A(2,:) = B % Thay hng th hai ca ma trn A bng ma trn B.A=
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
37/215
Updatesofts.com Ebook Team 36
1 2 31 4 77 8 9
>> B = A(:,[2 2 2 2])B=2 2 2 24 4 4 48 8 8 8
To ma trn B bng cch to bn ct ging ct th hai ca ma trn A, s hng vn ginguyn bng s hng ca ma trn A.
>> A(2,2) = []??? Indexed empty matrix assignment is not allowed.
y MATLAB khng cho php xo i mt phn t ca ma trn m phi xo i mt cthoc mt hng.
>> B = A(4,:)??? Index exeeds matrix dimension.
V d trn ma trn A khng c bn hng, nn MATLAB thng bo nh trn.
>> B(1:2,:) = A??? In an assignment A(matrix, :) = B, the number of columns in A and B must be the
same.
MATLAB ch ra rng bn khng th gn mt ma trn vo trong mt ma trn khc m khcnhau v kch c.
>> B = [1 4 7];>> B(3:4,:) = A(2:3,:)B=
1 4 70 0 01 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 vma trn B c cng s ct. Ma trn B ch c mt hng nn khi thm hng th ba v hng tht th hng th hai ca ma trn B c mc nh cho thm cc phn t 0 vo.
>> G(1:6) = A(:,2:3)G=
2 4 8 3 7 9
T phn t th nht n phn t th su ca ma trn G c gn bng ct th hai v ct
th ba ca ma trn A.
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
38/215
Updatesofts.com Ebook Team 37
i khi tin li hn ta ch dng ch s n truy nhp n cc phn t ca mng.Khi ch s n c dng trong MATLAB th th t cc phn t ca mng c tnh bt ut phn t u tin ca ct, tnh ht ct th tnh n ct tip theo..
V d:>> D = [1 2 3 4; 5 6 7 8; 9 10 11 12]D=
1 2 3 45 6 7 89 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
Ngoi trng hp dng a ch da trn bng ch s, chng ta cn c th dng a chda trn mng logic_l kt qu t cc php ton logic. Nu kch c ca mng logic cn
bng vi mng to ra n th chnh l a ch ca mng. Trong trng hp ny th phn tTrue (1) c gia li v phn t False (0) b b iV d:
>> x = -3:3 % To mng d liu.x=
-3 -2 -1 0 1 2 3>> abs(x)>1ans=
1 1 0 0 0 1 1Tr v mt mng logic vi gi tr mt ti nhng phn t c tr tuyt i ln hn mt.
>> y = x( abs(x)>1)y=
-3 -2 2 3To mng y bng cch ly nhng phn t ca x m c tr tuyt i ln hn mt.
>> y = x([1 1 0 0 0 1 1])??? Index into matrix is negative or zero. See release notes onchanges to logical indices
Cu lnh b li mc d abs(x)>1 v [1 1 0 0 0 1 1] cng l vector nh nhau. Trong trng
hp ny, [1 1 0 0 0 1 1] l mt mng s, khng phi l mng logic. V vy MATLAB cnh a ch cc phn t c s ch s trong mng [1 1 0 0 0 1 1] v cu lnh b li v
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
39/215
Updatesofts.com Ebook Team 38
khng c phn t 0. Tuy nhin MATLAB cung cp hm logicallogicallogicallogical chuyn i t mng ssang mng logic
>> y = x(logical([1 1 0 0 0 1 1]))y=-3 -2 2 3
mng logic lm vic vi ma trn cng nh l i vi vector:
>> B = [5 -3; 2 -4]B=
5 -32 -4
>> x = abs(B)>2x=
1 10 0>> y = B(x)
5-34
Tuy nhin kt qu c chuyn thnh vector ct v khng cch no nh ngha matrn ch c ba phn t. a ch ca mng A( r, c ). a ch mt mng con trong mng A, nhngha bng cc ch s vector ca hng thit k trong r, ch s vector ca ct thit k trong c.A( r, : ). a ch mt mng con trong mng A, nh ngha bnh cc ch s vector ca hngthit k trong r, v tt c cc ct ca A. A( : , c). a ch mt mng con trong mng A, nh
ngha bng tt c cc hng ca A, ch s vector ca ct c thit k trong c.A( : ). a chtt c cc phn t ca A nh mt vector ct, bng cch ghp th t cc ct ca vector A. A(i ) a ch mt mng con trong mng A, nh ngha bng cc ch s vector n c thit ktrong i, vi gi s A l vector ct. A( x ). a ch mt mng con trong mng A, nh ngha bimng logic x. x phi cng kch c vi A.
6.7 Tm kim mng con6.7 Tm kim mng con6.7 Tm kim mng con6.7 Tm kim mng con
Nhiu khi chng ta mun bit cc ch s hay danh sch cc ch s ca nhng phn tca mt mng m n tho mn mt biu thc quan h, trong MATLAB thc hin vic ta s dng hm findfindfindfind, hm ny tr v danh sch con ch s ti nhng phn t m biu thc
quan h ca chng l ng:>> x = -3:3x=
-3 -2 -1 0 1 2 3>> k = find(abs(x)>1)k=
1 2 6 7tm nhng ch s ti nhng v tr m ti abs(x)>1
y = x(k)y=
-3 -2 2 3To mng y, dng cc ch s trong mng k.
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
40/215
Updatesofts.com Ebook Team 39
Hm findfindfindfindcng c th s dng trong ma trn:
>> A = [1 2 3; 4 5 6; 7 8 9]
A=1 2 34 5 67 8 9
>> [i,j] = find(A>5)i=
3323
j=
1233
y i l ch s hng, cn j l ch s ct; gia i v j c mi quan h tng ng chnhng v tr m ti biu thc quan h l ng.
Ch Ch Ch 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 vobn phi du bng.Bng di y tm tt dng lnh ca phn tm kim mng:
TTTTm kim mngm kim mngm kim mngm kim mngi = 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.
6.8 So snh mng6.8 So snh mng6.8 So snh mng6.8 So snh mng
Chng ta c th dng hm isequalisequalisequalisequalso snh hai mng. Th d:
>> A = [1 2 3; 4 5 6; 7 8 9]A=
1 4 72 5 83 6 9
>> B = A.*(-1).^AB=
-1 4 -72 -5 8
-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)
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
41/215
Updatesofts.com Ebook Team 40
ans=0
>> isequal(A,B)
ans=0>> isequal(A,A)ans=
1>> isequal(C,C)ans=
0
Hm iseqiseqiseqisequalualualualtr li gi tr logic l ng (1) khi hai mng c cng kch c, cc phn t gingnhau. Ngoi ra n tr li gi tr l sai (0).
Thm vo , hm ismemberismemberismemberismemberch ra cc phn t ging nhau gia hai mng:
>> ismember(A,B) % Kt qu tr v l vector ct.ans=
0101010
10>> ismember(A,B)ans=
1111111
11
ismemberismemberismemberismembertr li gi tr ng cho nhng ch s trong A m phn t ny cng c trong is th hai. Hai i s khng cn c cng kch c.
>> x = 0:2:20 % mng vi 11 phn t.x=
0 2 4 6 8 10 12 14 16 18 20>> ismember(x,A)ans=
0 1 1 1 1 0 0 0 0 0 0y l mng c cng kch c vi x, vi 1 ti cc phn t chung.
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
42/215
Updatesofts.com Ebook Team 41
>> ismember(x,A)ans=
0
10101010
y l mng c s phn t bng s phn t ca A, vi 1 ti cc phn t chung. V vyismemberismemberismemberismemberso snh i s th nht ca n vi i s th hai v tr li mt vector c cng s
phn t vi i s th nht.Nhng hm to khc trong th vin MATLAB:>> union(A,B) % Tt c cc phn t c trong hai mng.ans=
-9-7-5-3-112
3456789
>> intersect(A,B) % Phn t chung ca hai mng.ans=
24
68
>> setdiff(A,B) % Cc phn t c trong A nhng khng c trong B.ans=
13579
>> setxor(A,B) % Cc phn t khng thuc phn chung gia A v B.ans=
-9-7
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
43/215
Updatesofts.com Ebook Team 42
-5-3-1
13579
Nhng hm ny c tng kt li trong bng di y:So snh mng
isequal(A, B) ng nu A v B ging nhau.ismember(A, B) ng khi phn t ca A cng l phn t ca B.intersect(A, B) Cc phn t chung gia A v B.
setdiff(A, B) Cc phn t c trong A m khng c trong B.setxor(A, B) Cc phn t khng thuc phn chung gia A v
B.union(A, B) Tt c cc phn t c trong A v B.
6.9 Kch c ca mng6.9 Kch c ca mng6.9 Kch c ca mng6.9 Kch c ca mng
phn trc chng ta bit lnh whowhowhowho 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. TrongMATLAB, lnh whoswhoswhoswhoscung cp nhng thng tin ny:
>> whosName size Bytes Class
A 3x3 72 double arrayB 1x3 24 double arrayans 1x4 32 double array (logical)
Grand total is 16 elements using 128 bytes
Thm vo nh s v kch c ca bin, whoswhoswhoswhoshin th tng s bytes chim, vclass ca cc bin. V d, thng tin cp trn, ans l mng logic
Trong nhng trng hp m kch c ca ma trn hoc ca vector khng c bit nhngn cn thit cho mt s cc thao tc, MATLAB cung cp hai hm ng dng l sizesizesizesizev lengthlengthlengthlength:
>> A = [1 2 3 4; 5 6 7 8];>> s = size(A)s=
2 4
Vi mt thng s ra, hm sizesizesizesizetr li mt vector hng trong c hai phn t, phn tth nht l ch s hng, cn phn t th hai ch s ct.>> [r,c] = size(A)r=
2c=
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
44/215
Updatesofts.com Ebook Team 43
4Vi hai thng s a ra, hm sizesizesizesizetr li s hng trong bin th nht, v s ct trong binth hai.
>> r = size(A,1)r=2
>> c = size(A,2)Gi hai thng s, hm sizesizesizesizech tr v s ct hoc s hng.
>> length(A)ans=
4Tr 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 315Cho bit rng B l vector hng, v>> length(B)
ans=315
tr li di ca vector.
>> size([ ])
ch ra rng ma trn rng khng c kch c.
Nhng khi nim ny c tng kt trong bng di y:
Kch c ca mngKch c ca mngKch c ca mngKch c ca mngwhos 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.
6.10 Mng nhiu chiu6.10 Mng nhiu chiu6.10 Mng nhiu chiu6.10 Mng nhiu chiu
i vi cc MATLAB versions trc 5.0, mng ch c th c mt hoc hai chiu. TMATLAB 5.0 tr ln th s chiu ca mng tng ln. V d:>> a = [1 0; 0 1]a=
1 00 1
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
45/215
Updatesofts.com Ebook Team 44
>> b = [2 2; 2 2]b=
2 2
2 2>> c = [0 3; 3 0]c=
0 33 0
>> d = cat(3,a,b,c)d(:,:,1)=
1 00 1
d(:,:,2)=2 2
2 2d(:,:,3)=0 33 0
>> size(d)ans=
2 2 3To cc mng hai chiu a, b, c, sau ghp chng lai vi nhau thnh mng ba chiu
bng cch s dng hm cat.cat.cat.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 tchiu 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 ccmng 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 ivi mng nhiu chiu:
Cc hm vi mng nhiu chiuCc hm vi mng nhiu chiuCc hm vi mng nhiu chiuCc hm vi mng nhiu chius = size(A) Cho n_s chiu ca A, tr v vector hng s vi n phn
t, phn t th i l kch c chiu th i ca mng Andims(A) S chiu ca A, tng t nh hm length(size(A))permute(A, order) n_s chiu, tng ng vi ton t chuyn v chm.
ipermute(A, order) Ngc vi hm permute(A, order)shiftdim(A, n) Thay i s chiu ca mng A bng s nguyn n.squeeze(A) Tr li s chiu duy nht ca mng, tng ng vi tr
li s chiu ln hn ba.
V d: S suy gim do phn r dng mngV d: S suy gim do phn r dng mngV d: S suy gim do phn r dng mngV d: S suy gim do phn r dng mngVn :Vn :Vn :Vn :Phn t polonium c chu k phn r l 140 ngy, c ngha l do s phn r m
khi lng ca poloniun ch cn li 1/ 2 so vi khi lng ban u sau 140 ngy. Gi s banu ta c 10 grams polonium, n s cn li bao nhiu sau mi tun trong vng mi tun?
Gii php:Gii php:Gii php:Gii php:Ta s dng phng php gii trong chng 2, khi lng cn li sau sau mtkhong thi gian l:
khi lng cn li = khi lng ban u . (0.5)thi gian/ chu k gii bi ton ny, gi php ca MATLAB l:
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
46/215
Updatesofts.com Ebook Team 45
>> initial_amount = 10; % Khi lng cht polonium ban u>> half_life = 140; % Chu k phn r
>> time = 7:7:70 % Kt thc ca cc tuntime=7 14 21 28 35 42 49 56 63 70
>> amount_left = initial_amount*0.5.^(time/ half_life)
amount_left=Columns 1 through 79.6594 9.3303 9.0125 8.7055 8.4090 8.1225 7.8458
Columns 8 through 107.5786 7.3204 7.0711
Dng ton t mng lm cho n tnh cc gi tr mt cch n gin hn khi nhn nhiugi tr ca mt bin. Ch rng nhn chm (.^) c s dng v chng ta mun lu tha 0.5ln i vi mi phn t ca mng. Nhng d liu ny c th d dng v chng trongMATLAB nh hnh di:
>> plot(time/7,amount_left)>> xlabel(Week number), ylabel(Amount of Polonium left)
Hnh 6.1V d: Tm kim gii php s dng vectorsV d: Tm kim gii php s dng vectorsV d: Tm kim gii php s dng vectorsV d: Tm kim gii php s dng vectors
Vn :Vn :Vn :Vn :Vn ca tun trong trng cp hai l tm mt s nh hn 100 m chia htcho 7, nhng cn d li 1 khi chia cho 2, 3, 4, 5, v 6.
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
47/215
Updatesofts.com Ebook Team 46
Gii php:Gii php:Gii php:Gii php:Khng c mt gii php phn tch no cho vn ny c, v vy chng ta phigii bng phng php tm kim. Nu bn bt u vi tt c cc s l bi s ca 7 v nhhn 1000, cn cc s khc th khng xt n, bn s xy dng c mt gii php. Trong
MATLAB gii php c a ra trong script file l:function pow% pow.m script file to solve problem of the week
n=7:7:1000 % all multiples of 7 less than 1000number=length(n) % number of potential solutionsn(rem(n,2)~=1)=[]; % throw out non solutions bynumber=length(n)n(rem(n,3)~=1)=[]; %setting them equal to an empty array,number=length(n)n(rem(n,4)~=1)=[]; % the function rem computes remaindersnumber=length(n)
n(rem(n,5)~=1)=[];number=length(n)n(rem(n,6)~=1)=[];
Chy script file ny ta c gii php nh di y:
>> pownumber =
142number =
71
number =24number =
12number =
2n=
301 721
V d: Tnh ton nng acid dng cc php ton vi mngV d: Tnh ton nng acid dng cc php ton vi mngV d: Tnh ton nng acid dng cc php ton vi mngV d: Tnh ton nng acid dng cc php ton vi mng
Vn :Vn :Vn :Vn :Nh mt phn ca qu trnh sn xut b phn ca vt c ti mt nh my tng, b phn c nhng trong nc lm ngui, sau nhng trong bn ng dungdch 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 cnbm trn vt c khi nhng b trc cng vo theo v khi nhc ra khi bn mt lng acidbm theo vt. m bo cht lng th nng acid phi khng c nh hn mt lngti 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% n10%. Hi bao nhiu b phn c th nhng vo b nc acid trc khi nng ca n gimxung di mc cho php?
Gii php:Gii php:Gii php:Gii php:Ta s dng phng php gii a ra chng 2:
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
48/215
Updatesofts.com Ebook Team 47
n =
Trong MATLAB, gii php vit trong script M_file l:
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')title('Acid-Water Bath Dipping Example')
Chy chng trnh trn ta c kt qu nh sau:
lost =1 2 3 4 5 6 7 8 9 10
n =59 29 19 14 12 10 8 7 6 6
Hnh 6.2Hnh 6.2Hnh 6.2Hnh 6.2
Ch y yu cu phng php chia chm v log(1 + lost/ 100) l mt vector
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
49/215
-
7/28/2019 Lap Trinh Matlap
50/215
-
7/28/2019 Lap Trinh Matlap
51/215
Updatesofts.com Ebook Team 50
>> res = A*x - bres=
-119.4545
11.94550.000035.8364
Mt khc khi s phng trnh t hn s bin tng t nh trng hp khng xc nh, ths nghim phng trnh l v tn. i vi nhng nghim ny MATLAB tnh theo hai cch.Dng ton t chia a ra phng php m c s phn t 0 ca x l cc i. Nh mt s lachn, tnh x=pinv(A)*b a ra phng php chiu di hoc tiu chun ca x nh hn cc ph-ng php khc. Phng php ny gi l phng php tiu chun cc tiu.
V d:
>> A = A % To ba phng trnh, bn bin.A=1 4 7 22 5 8 53 6 0 8
>> b = b(1:3)b=
366804351
>> x = A\b % phng php vi s phn t 0 cc i.
x= 0-165.900099.0000168.3000
>> xn = pinv(A)*b % Tm kim gii php tiu chun nh nht.xn=
30.8182-168.9818
99.0000159.0545
>> norm(x) % Tiu chun O_clit vi cc phn t 0.ans=
256.2200>> norm(xn) % Gii php tiu chun nh nhtans=
254.1731
7.2 Cc hm ma trn .7.2 Cc hm ma trn .7.2 Cc hm ma trn .7.2 Cc hm ma trn .
gii phng trnh tuyn tnh, MATLAB cung cp cc hm tr gip sau:Cc hm ma trnCc hm ma trnCc hm ma trnCc hm ma trn
balance(A) Cn bng tng chnh xc
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
52/215
Updatesofts.com Ebook Team 51
cdf2rdf(A) Chuyn t dng s phc cho sang dng s thccho
chol(A) Tm tha s Cholesky
cholinc(A, droptol) Tha s Cholesky khng y cond(A) S iu kin ma trncondest(A) c lng s iu kin ma trn theo tiudet(A) nh thc ma trnexpm(A) Ma trn theo lut mexpm1(A) B sung M_file ca expmexpm2(A) Ma trn theo lut hm m, dng th t Taylorfunm(A, fun) Tnh ton hm ma trn chunghess(A) Mu Hessenberginv(A) Ma trn chuyn vlogm(A) Ma trn logarithmlu(A) Tm tha s vi php kh Gaussianluinc(A, droptol) Tha s LU khng y norm(A) Ma trn v vector tiu chunnorm(A,1) Tiu chun 1norm(A, 2) Tiu chun 2norm(A, inf) V cngnorm(A, p) Tiu chun P (ch i vi vector)norm(A, fro) Tiu chun Fnormest(A) Tiu chun 2 c lng cho ma trn lnnull(A) Khong rng
orth(A) Tnh trc giaopoly(A) a thc c trngpolyvalm(A) Tnh gi tr ca ma trnqr(A) Xc nh trc giao tam gicqrdelet(Q, R, j) Xo ct t tha s QRqrinsert(Q, R, j, x) Chn ct trong tha s QRrank(A) S ca hng hoc ct c lprcond(A) c lng iu kin thun nghchsqrtm(A) Ma trn gc bnh phngsubspace(A, B) Gc gia hai imsvd(A) Phn tch gi tr nsvds(A, K) Mt s cc gi tr ntrace(A) Tng cc phn t cho
7.3 Ma trn c bit7.3 Ma trn c bit7.3 Ma trn c bit7.3 Ma trn c bit
MATLAB a ra mt s cc ma trn c bit, trong mt s chng c nhng ngdng rng ri trong cc php ton. Nhn chung nhng ma trn l:
>> a = [1 2 3; 4 5 6];>> b = find(a>10)
b= [ ]
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
53/215
Updatesofts.com Ebook Team 52
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.
>> zeros(3) % Ma trn khng 3 hng, 3 ct (3x3).ans=
0 0 00 0 00 0 0
>> ones(2,4) % Ma trn mt 2 hng, 4 ct (2x4).ans=
1 1 1 11 1 1 1
>> zeros(3) + pi
ans=3.1416 3.1416 3.14163.1416 3.1416 3.1416
3.1416 3.1416 3.1416
V d trn v to ma trn 3x3 vi cc phn t u l .>> rand(3,1)ans=
0.21900.04700.6789
ma trn 3x1 gm cc phn t l s cung cp bi hm random gia 0 v 1.
>> randn(2)ans=
1.1650 0.07510.6268 0.3516
ma trn 2x2 ca cc s cung cp bi hm random vi gi tr trung bnh l 0. Thut ton chohm randrandrandrand v randnrandnrandnrandn c th tm thy trong S.K>Park and K.W.Miller,Random NumberGenerator: Good Ones Are Hard to Find, Comm. ACM, 32, 10, Oct. 1988-1201.
>> eye(3)ans=
1 0 00 1 00 0 1
Ma trn ng nht 3x3
>> eye(3,2)ans=
1 00 1
0 0Ma trn ng nht 3x2
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
54/215
Updatesofts.com Ebook Team 53
Ngoi ra ch kch c ca mt ma trn, bn c th dng hm sizesizesizesize to mt ma trn ckch c ging nh ma trn khc:
>> A = [1 2 3; 4 5 6];>> ones(size(A))ans=
1 1 11 1 1
ma trn mt c cng kch c vi ma trn A.Cc ma trn trn v cc ma trn c bit khc c gii thiu trong bng sau:
Cc ma trn c bitCc ma trn c bitCc ma trn c bitCc ma trn c bit[ ] Ma trn rng
compan To ma trn rngeye Ma trn ng nhtgallery Ma trn kim tra nh vi phn thadamard Ma trn Hadamardhankel Ma trn Hankelhilb Ma trn Hilbertinvhilb Chuyn thnh ma trn Hilbertmagic Ma trn vung, gi tr cc phn t bng t 1 n gi tr s
phn tones Ma trn 1pascal Ma trn tam gic Pascalrand 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
0rosser Ma trn kim tra i xng trc chnhtoeplitz Ma trn Toeplitzvander Ma trn Vandermondwilkinson Ma trn kim tra Wilkinsonzeros Ma trn khng
V dV dV dV d
Vn Vn Vn Vn : Ta c mch in nh trong hnh 7.1 c m t bng phng trnh in p ntkhi ngun a vo l sng hnh sin.
Hnh 7.1Hnh 7.1Hnh 7.1Hnh 7.1
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
55/215
Updatesofts.com Ebook Team 54
E = 10o; R1 = 2; L = 10j; C = ; R2 = 10. y vi l in p gia nt th i v t. Hi in p ti mi nt l bao nhiu?
Gii php:Gii php:Gii php:Gii php:y l vn v phn tch pha. Phng php gii bi ny l gii phng trnh
trn, v chuyn cc kt qu v dng thi gian. Trong MATLAB gii php s l:function circuit
% circuit.m script file to solve circuit proplemA(1,1)=1/2; % poke in nonzero values as neededA(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 vectorv=A\y % complex solutionvmag=abs(v) % solution magnitudesvphase=angle(v)*180/pi % solution phase in degreestheta=linspace(0,2*pi); % plot results in timev1=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)
Sau khi chy chng trnh trn, kt qu s l:v =
-4.0000 + 6.0000i-2.0000 + 6.0000i2.0000 + 4.0000i
vmag =7.21116.32464.4721
vphase =123.6901108.434963.4349
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
56/215
Updatesofts.com Ebook Team 55
Hnh 7.2Hnh 7.2Hnh 7.2Hnh 7.2
---------------------oOo---------------------
chng 8
cc php tnh LOGIC V QUAN HThm 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 lptrnh 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 cns khng l False. Kt qu ca php ton logic v quan h a ra l 1 cho True, 0 cho False.
8.1 Ton t quan h8.1 Ton t quan h8.1 Ton t quan h8.1 Ton t quan h
Ton t quan h MATLAB bao gm tt c cc php so snh:
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
57/215
Updatesofts.com Ebook Team 56
Ton t quan hTon t quan hTon t quan hTon t quan h ngha ngha ngha ngha< nh hn ln hn>= ln hn hoc bng== bng~= khng bng
Ton t quan h MATLAB c th dng so snh hai mng c cng kch c hoc sosnh mt mng vi mt s n. Trong trng hp th hai, s n so snh vi tt c ccphn t ca mng, kt qu tr v ging nh kch c ca mng. V d:
>> A = 1:9, B = 9 - AA=
1 2 3 4 5 6 7 8 9B=8 7 6 5 4 3 2 1 0
>> tf = A>4tf=
0 0 0 0 1 1 1 1 1tm 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
Tm kim cc phn t ca A m bng vi B. Ch s khc nhau gia = v == dng sosnh hai bin v tr v 1 khi chng bng nhau, 0 khi chng khc nhau; = dng gn ktqu a ra ca ton t cho mt bin.
>> tf = B - (A>2)tf=
8 7 5 4 3 2 1 0 -1Tm 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 ccphp ton s hc.
>> B = B + (B==0)*epsB=
Columns 1 through 78.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000
Columns 8 through 91.0000 0.0000V 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 trnghp chia cho s khng nh v d sau:
>> x = (-3:3)/3
-1.0000 -0.6667 -0.3333 0 0.3333 0.6667 1.0000>> sin(x)./x
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
58/215
Updatesofts.com Ebook Team 57
Warning: Divide by zeroans=
0.8415 0.9276 0.9816 NaN 0.9816 0.9276 0.8415
Tnh ton hm sin(x)/ x a ra mt cnh bo v phn t th t bng khng, sin(0)/ 0 khngc nh ngha, MATLAB tr li NaN ( ngha l khng phi l mt s) ti v tr trong ktqu. Th li v d trn, sau khi thay th phn t c gi tr bng khng bng s eps:
>> x = x + (x==0)*eps;>> sin(x)/xans=
0.8415 0.9276 0.9816 1.0000 0.9816 0.9276 0.8415
By gi sin(x)/ x ti x = 0 a ra kt qu gii hn chnh xc.
8.2 Ton t Logic8.2 Ton t Logic8.2 Ton t Logic8.2 Ton t Logic
Ton t logic cung cp mt cch din t mi quan h ph nh hay t hp. Ton tlogic MATLAB bao gm:
Ton t logicTon t logicTon t logicTon t logic ngha ngha ngha ngha& AND| OR~ NOT
Mt vi v d v dng ton t logic:
>> A = 1:9; B = 9 - A;>> tf = A>4tf=
0 0 0 0 1 1 1 1 1Tm 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
-
7/28/2019 Lap Trinh Matlap
59/215
Updatesofts.com Ebook Team 58
khi c xv cng bng khng (False) hoc cng khc khng (True)
any(x). Tr li 1 nu bt c phn t no trong vector x khc khng. Tr li 1 cho
mi cttrong ma trn x m c cc phn t khc khng.all(x) Tr li 1 nu tt c cc phn t ca vector x khc khng. Tr li 1 cho
mi cttrong ma trn x m tt c cc phn t khc khng.
MATLAB cn cung cp rt nhiu cc hm kim tra cho s tn ti ca cc gi tr cbit hoc iu kin v tr li nhng kt qu l gi tr logic.
Cc hm kim traCc hm kim traCc hm kim traCc hm kim traisa(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 lishold True nu th hin ti gi trng thi ON.
isiee True nu my tnh thc hin php s hc IEEEisinf(X) True ti nhng phn t v cngisletter(S) True khi cc phn t thuc bng ch ci.islogical(X) True khi i s l mng logicismember(A, B) True ti nhng v tr m phn t ca A v B trng nhauisnan(X) True khi cc phn t l khng xc nh (NaN)isnumeric(X) True khi i s l mng sisppc True cho Macintosh vi b x l PowerPCisprime(X) True khi cc phn t l s nguyn tisreal(X) True khi i s khng c phn oisspace(S) True khi cc phn t l k t trng
issparse(A) True nu i s l ma trn Sparseisstruct(S) True nu i s l mt cu trcisstudent True nu Student Edition ca MATLABisunix True nu my tnh l UNIXisvms True nu my tnh l VMS
----------------------oOo--------------------chng 9
VN Bn
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
60/215
Updatesofts.com Ebook Team 59
S tin ch ca MATLAB l x l vi cc con s. Tuy nhin chng ta nhiu ln cpn thao tc vi vn bn (text), nh khi a nhn v tiu vo trong th. Trong MATLABbin text c dng n nh l xu k t, hoc n gin l cc xu.
9.1 Xu k t9.1 Xu k t9.1 Xu k t9.1 Xu k t
Xu k t trong MATLAB l mng ca cc gi tr ASCII m quy c ca n l cc kt.V d:
>> t = 'How about this character string?'t=How about this character string?>> size(t)
ans=1 32>> whosName Size Bytes Classt 1x32 64 char arrayGrand total is 32 elements using 64 bytes
Mt xu k t, n gin l dng vn bn, c t gia hai du nhy n. Mi k t trongxu l mt phn t ca mng, vi mi phn t chim hai bytes.
Mun xem cc m ASCII ca mt xu k t, bn phi dng cc php ton s hc i vixu, hoc chuyn n sang dng s, dng hm doubldoubldoubldoubleeee. V d:
>> double(t)ans=
Columns 1 through 1272 111 119 32 97 98 111 117 116 32 116 104Columns 12 through 24105 115 32 99 104 97 114 97 99 116 101 114Columns 25 through 3232 115 116 114 105 110 103 63
>> abs(t)ans=
Columns 1 through 1272 111 119 32 97 98 111 117 116 32 116 104Columns 13 through 24
105 115 32 99 104 97 114 97 99 116 101 114Columns 25 through 3232 115 116 114 105 110 103 63
Hm charcharcharcharchuyn li thnh xu:
>> char(t)ans=
How about this character string?
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
61/215
Updatesofts.com Ebook Team 60
Vi mng xu l mt mng s vi thuc tnh c bit, chng ta c th thao tc bngtt c cc cng c thao tc vi mng sn c trong MATLAB. V d:
>> u = t(16:24)u=charactera ch ca xu cng ging nh mng. y phn t t 16 n 24 cha t character
>> u = t(24:-1:16)retcarahc
y l t character c ngc li
>> u = t(16:24)
u=character
Dng ton t chuyn v chuyn t character sang dng ma trn ct
>> v = 'I cant't find the manual!'v=I can't find the manual!
Du nhy n vi xu k t l biu tng trong hai du nhy n.Chng ta c th ni hai xu nh i vi hai mng:
>> w = [u,v]w=
character I can t find the manual!
Hm dispdispdispdispcho php bn hin th xu k t m khng c tn bin
>> disp(v)I can't find the manual
Ch l trng thi v= b b i, iu ny rt c ch cho chng ta hin th nhng li tr giptrong script file.
Cng ging nh i vi ma trn, xu k t c th c nhiu hng, nhng mi mt hngphi c s ct bng nhau, cho s ct ca chng bng nhau chng ta c th dng k t
trng.
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
62/215
Updatesofts.com Ebook Team 61
>> v = ['However, this''does work! ']
v=
However, thisdoes work!>> w = ['this'; ' does not']??? All rows in the bracketed expression must have the samenumber of columns.>> size(v)ans=
2 13
Ta cng c th dng hm charcharcharchar to mt mng xu t cc xu, v n t thm cc k ttrng to ra mt mng y .
>> w = char('this', 'does not')w=thisdoes not>> size(w)ans=
2 8
9.2 Chuyn i xu9.2 Chuyn i xu9.2 Chuyn i xu9.2 Chuyn i xu
b xung thm v s chuyn i gia xu v m ASCII ca n nh trnh by trn, MATLAB a ra mt s cc hm chuyn i hu ch khc, chng bao gm di y:
Cc hm chuyn i xuCc hm chuyn i xuCc hm chuyn i xuCc hm chuyn i xu
base2dec Da trn xu x chuyn sang h mi.bin2dec T xu nh phn sang h michar T xu sang ASCIIdec2base T h mi sang xu xdec2bin T s h mi sang xu nh phndec2hex T s h mi sang xu ca cc s h mi su.double Chuyn t m ASCII sang xufprintf Vit dng vn bn ra file hoc ra mn hnhhex2dec Chuyn t xu gm cc s h 16 sang cc s h mihex2num Chuyn t xu cc s h 16 sang s du phy ng
IEEEint2str Chuyn t s nguyn sang xumat2str Chuyn t ma trn s sang xu gm cc snum2str Chuyn t s sang xusprintf Chuyn t m ASCII sang xusscanf Chuyn t s sang xu c iu chnh kch thc
str2num Chuyn t xu sang s khng c iu chnh kch thc
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
63/215
Updatesofts.com Ebook Team 62
Trong trng hp chng ta to mt thng bo c cha cc s khng phi l xu, nhnghm chuyn i s gip chng ta lm vic .
>> rad = 2.5; area = pi*rad^2;>> t = ['A circle of radius ' num2str(rad)...
'has an area of ' num2str(area) '.'];>> disp(t)A circle of radius 2.5 has an area of 19.63.
y hm num2strnum2strnum2strnum2strc dng chuyn t s sang xu. Ging nh vy int2strint2strint2strint2strchuyn ts nguyn sang xu, c hai hm ny gi hm sprintfsprintfsprintfsprintf, n ging nh c php trong C dng chuyn s sang xu.
9.3 Cc hm v xu9.3 Cc hm v xu9.3 Cc hm v xu9.3 Cc hm v xu
MATLAB a ra mt s cc hm ca xu, bao gm cc hm trong danh sch di y:
Cc hm xublanks(n) Tr li mt xu gm cc k t trng hay du
cchdeblank(s) Tr li cc vt trng t mt xueval(xu) c lng xu nh l mt lnh ca MATLABeval(try, catch) c lng xu v bt lifeval(f, x, y, ...) Hm evaluate a ra bng xu
findstr(s1, s2) Tm kim mt xu trong mt xu khcischar(s) True nu a vo l mt xuisletter(s) True ti nhng v tr k t Alphabet tn tiisspace(s) True ti nhng v tr l k t trnglasterr Xu ca li cui cng MATLAB a ralower(s) Xu vi nhng ch ci thngstrcat(s1, s2, ...) Ni cc xu thnh hngstrcmp(s1, s2) True nu cc xu ging nhaustrmatch(s1, s2) Tm kim kh nng ging nhau ca xustrncmp(s1, s2, n) True nu n k t u ging nhau
strrep(s1, s2) Thay th mt xu bng mt xu khcstrtok(s) Tm kim du hiu cho xustrvcat(s1, s2, ...) Ni cc xu thnh ctupper(s) Chuyn thnh ch in
Mt s cc hm trn cung cp kh nng x l cc xu c bn. V d nh, findstrfindstrfindstrfindstrtr lich s bt u ca mt xu trong mt xu khc:
>> b = 'Peter Piper picked a peck of pickled peppers';>> findstr(b, ' ') % Tm kim khong trng
6 12 19 21 26 29 37
>> findstr(b, 'p')9 13 22 30 38 40 41
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
64/215
Updatesofts.com Ebook Team 63
>> find(b=='p')9 13 22 30 38 40 41
>> findstr(b, 'cow') % Tm kim t cow
ans=[ ]>> findstr(b,'pick')ans=
13 30
Hm ny tr li ma trn rng khi khng c nhng phn cn tm.
>> 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 vima trn xu, v vy trc tin bn cn phi chuyn t ma trn thnh vector.
9.4 Ma trn t b9.4 Ma trn t b9.4 Ma trn t b9.4 Ma trn t bo ca xuo ca xuo ca xuo ca xu
Ma trn t bo l mt kiu d liu cho php bn gi tn v thao tc vi mt nhm d liuc nhiu kch c v nhiu kiu.
>> C = {'How';'about';'this for a';'cell array of strings?'}C=
'How''about''this for a''cell array of strings?'
>> size(C)4 1
Ma trn trn c 4 hng v mt ct nhng mi ct li c di khc nhau. Tt c ccphn t c t trong du ngoc nhn, mi phn t c t trong du nhy n, gia haihng l du chm phy. Mng t bo c nh a ch cng ging nh mng thng th-ng:
>> 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=
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
65/215
Updatesofts.com Ebook Team 64
Howy 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
truy nhp vo nhiu hn mt t bo, ta dng hm dealdealdealdeal:
>> [a, b, c, d] = deal(C{:})a=
Howb=aboutc=this for ad=cell array of trings?
y C{:} ch truy nhp n tt c cc t bo, n ging nh:
>> [a, b, c, d] = deal(C{1}, C{2}, C{3}, C{4})
a=Howb=aboutc=this for ad=cell array of strings?
Hm charcharcharcharc th dng chuyn t mng t bo sang mng xu:
>> s = char(C)Howaboutthis for acell 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)
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
66/215
Updatesofts.com Ebook Team 65
ans=2 5
chuyn ngc li mng t bo, ta dng hm cellstrcellstrcellstrcellstr:
>> cellstr(s)ans='How''about''this for a''cell array of strings?'
Hu ht cc hm xu trong MATLAB lm vic vi c mng xu hoc mng t bo.V mng t bo s c trnh by r hn Chng 19.chng 10
thi gian
MATLAB a ra mt s hm thao tc v thi gian t bn c th tnh ton vi ngy,gi, in lch v tm kin nhng ngy c th. MATLAB cha ngy v thi gian nh mt s c chnh xc hai s sau du phy tng trng cho s ngy, bt u bng nm khng. V d,mng 1 thng 1 nm 1997 ti lc na m, n c tng trng bi s 729391, v cng mtngy nhng lc bui cha l 729391.5. Cu trc ny c th d dng cho my tnh x l, nh-ng n rt kh din gii. Do vy MATLAB cung cp cc hm tr gip chuyn i gia s vxu k t v thao tc vi ngy v thi gian.
10.1 Ngy v gi hin ti10.1 Ngy v gi hin ti10.1 Ngy v gi hin ti10.1 Ngy v gi hin ti
Hm clockclockclockclocktr v ngy v gi hin ti cha trong mt mng. V d:
>> T = clockT=
1997 1 21 16 33 39.934708
Hm nownownownowtr v ngy v thi gian hin ti nh s ngy quy c ca my hoc n ginl s ngy.
>> t = nowt=
729411.690045541
C hai kt kt qu trn c cng mt thng tin.Hm datedatedatedatetr li ngy hin ti nh mt xu theo mu: dd-mmm-yyyy
>> dateans =21-Jan-1997
10.2 S chuyn i gia cc kiu10.2 S chuyn i gia cc kiu10.2 S chuyn i gia cc kiu10.2 S chuyn i gia cc kiu
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
67/215
Updatesofts.com Ebook Team 66
Bn c th chuyn s ngy ra xu, s dng hm datestrdatestrdatestrdatestr. Cu trc ca hm ny c dngnh sau:
datestr(date_number,format_spec).
Sau y l tr gip ca helphelphelphelpcho hm datestrdatestrdatestrdatestr:
>> help datestr
DATESTR string representation of date.DATESTR(D,DATEFORM) converts a serial datanumber D (as returned by DATENUM) into a datestring. The string is formatted according tothe format number or string DATEFORM (see tablebelow). By default,
DATEFORM is 1, 16, or 0 depending on whether Dcontainsdates, times or both.
DATEFORM number DATEFORM string Example0 'dd-mmm-yyyy HH:MM:SS' 01-Mar-1995
15:45:171 'dd-mmm-yyyy' 01-Mar-19952 'mm/dd/yy' 03/01/953 'mmm' Mar4 'm' M
5 'mm' 36 'mm/dd' 03/017 'dd' 18 'ddd' Wed9 'd' W
10 'yyyy' 199511 'yy' 9512 'mmmyy' Mar9513 'HH:MM:SS' 15:45:1714 'HH:MM:SS PM' 3:45:17 PM
'HH:MM' 15:45
16 'HH:MM PM' 3:45 PM17 'QQ-YY' Q1-9618 'QQ' Q1
v d vi hm datestrdatestrdatestrdatestr:
>> datestr(t)ans=
21-Jan-1997 16: 33: 40>> datestr(t,14)ans=
4: 33: 40 PM
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
68/215
Updatesofts.com Ebook Team 67
Hm datenumdatenumdatenumdatenuml hm ngc ca datestrdatestrdatestrdatestr. Hm ny chuyn mt xu k t dng ngy dngmu datenum(datenum(datenum(datenum(str)str)str)str), hoc mt s c lp hoc mt vector sang s dng ngy, dng mu:
datenum(year, month, day)hoc
datenum(year, month, day, hour, minute, second).
>> datenum('21-Jan-1997 16: 33: 40')ans=
729411.690045541>> datenum(1997, 01, 21)ans=
729411>> datenum(1997, 01, 21, 16, 33, 40)ans=
729411.690045541
Hm datevecdatevecdatevecdatevecchuyn mt xu k t dng ngy (dng datestrdatestrdatestrdatestrdng 0, 1, 2, 6, 13, 14,15, hoc 16) hoc mt s dng ngy sang vector.
>> c = datevec('12/ 24/ 1984')c=
1984 12 24 0 0 0
>> [yr, mo, day, hr, nim, sec] = datevec('24-Dec-1984 08: 22')yr=1984
mo=12
day=24
hr=8
min=22
sec=0
10.3 Cc hm v ngy10.3 Cc hm v ngy10.3 Cc hm v ngy10.3 Cc hm v ngy
Ngy ca tun c th tm t xu dng ngy hoc s dng ngy, dng hm weekdayweekdayweekdayweekday,MATLAB s dng quy c Sunday = 1 v Saturday = 7.
>> [d w] = weekday(728647)d=
2
w=Mon
Thuviendientu.org
-
7/28/2019 Lap Trinh Matlap
69/215
Updatesofts.com Ebook Team 68
>> [d w] = weekday('21-Dec-1994')d=
4
w= Wed
Ngy cui thng c th tm bng hm eomdayeomdayeomdayeomday. Trong bt buc phi a vo nm, thng.
>> eomday(1996, 2) % 1996 l nmans=
29
MATLAB c th to lch cho bt c thng no bn yu cu, v hin th n trong cas lnh hoc t chng trong mt ma trn 6x7.
>> cal