Lap Trinh Matlap

download Lap Trinh Matlap

of 215

Transcript of Lap Trinh Matlap

  • 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