71
TRƯỜNG ĐẠI HỌC ĐÀ LẠT KHOA CÔNG NGHỆ THÔNG TIN ThS. Thái Duy Quý BÀI GIẢNG TÓM TẮT MATLAB CĂN BẢN Dành cho sinh viên khối tự nhiên – công ngh(Lưu hành nội bộ) Đà Lạt 2013

Matlab Co Ban

Embed Size (px)

DESCRIPTION

Matlab cơ bản

Citation preview

  • TRNG I HC LT

    KHOA CNG NGH THNG TIN

    ThS. Thi Duy Qu

    BI GING TM TT

    MATLAB CN BN Dnh cho sinh vin khi t nhin cng ngh

    (Lu hnh ni b)

    Lt 2013

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 2

    LI NI U

    Gio trnh Matlab cn bn c bin son theo chng trnh o to h thng tn ch

    ca trng i Hc Lt. Mc ch bin son gio trnh nhm cung cp cho sinh vin

    khi t nhin, c bit l sinh vin ngnh Vt l ht nhn nhng kin thc c bn v cc

    phng php x l trn ngn ng Matlab.

    y l hc phn ln u tin c trin khai, ging dy, tuy tc gi cng c nhiu c

    gng trong cng tc bin son nhng chc chn gio trnh cn c nhiu thiu st. Tc gi xin

    trn trng tip thu tt c nhng kin ng gp ca cc bn sinh vin, cc ng nghip

    trong lnh vc ny hon thin gio trnh, phc v tt hn cho vic dy v hc cho sinh

    vin.

    Lt, Thng 08 nm 2013

    Thi Duy Qu

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 3

    MC LC CHNG I. GII THIU MATLAB .......................................................................................................... 4

    1. Gii thiu.......................................................................................................................................... 4 2. Khi ng v chun b th mc lm vic trong Matlab ...................................................................... 4 3. Qun l khng gian lm vic ca Matlab ........................................................................................... 5 4. Cc thnh phn ca Mathlab ............................................................................................................. 6 5. Cc phm tt c bn trong Matlab. ..................................................................................................... 7 6. Cc ton t c bn ca Matlab: ......................................................................................................... 8

    CHNG 2. MATLAB C BN .............................................................................................................. 11 1. Nhp xut d liu t dng lnh ....................................................................................................... 11 2. Nhp xut d liu t bn phm: ...................................................................................................... 11 3. Nhp xut d liu t file: ................................................................................................................ 12 4. Cc hm ton hc: .......................................................................................................................... 13 5. Cc php ton trn ma trn v vector: ............................................................................................. 16 6. To s ngu nhin: ......................................................................................................................... 18 7. Cc lnh dng lp trnh: ................................................................................................................. 19

    CHNG 3. X L TH TRONG MATLAB .................................................................................... 22 1. Khi nim chung ............................................................................................................................ 22 2. Cc lnh v .................................................................................................................................... 22 3. To hnh v .................................................................................................................................... 22 4. c t kiu ng v ..................................................................................................................... 23 5. c t mu v kch thc ng v ................................................................................................ 23 6. Thm ng v vo th c ..................................................................................................... 25 7. Ch v cc im s liu .................................................................................................................. 25 8. V cc im v ng .................................................................................................................... 26 9. V vi hai trc y ............................................................................................................................ 26 10. V ng cong vi s liu 3D ........................................................................................................ 27 11. t cc thng s cho trc ............................................................................................................... 27 12. Ghi nhn ln cc trc to ........................................................................................................... 28 13. nh v vn bn trn hnh v........................................................................................................... 29 14. ho c bit .............................................................................................................................. 30 15. ho 3D ..................................................................................................................................... 37 16. V cc vect .................................................................................................................................. 40

    CHNG 4. LP TRNH GIAO DIN NGI DNG (GUI) ................................................................. 44 1. Cch thc hin ............................................................................................................................... 44 2. Lp trnh giao din vi Blank GUI ................................................................................................. 45 3. Ko th v thit lp thuc tnh cho cc iu khin .......................................................................... 46 4. Vit lnh cho chng trnh ............................................................................................................. 47 5. Cc tnh cht ca cc iu khin trong GUIDE Matlab ................................................................... 49 6. Tng quan v hm Callback trong lp trnh GUI ............................................................................. 50 7. Chng trnh Calculator ................................................................................................................. 52

    CHNG 5. MT S PHNG PHP X L TNH TON TRN MATLAB ..................................... 55 1. Tnh nh thc ca ma trn ............................................................................................................. 55 2. Nghch o ma trn bng cch dng Minor..................................................................................... 59 3. Nghch o ma trn bng thut ton gauss-Jordan. .......................................................................... 60 4. Lp trnh giao din: Gii phng trnh bc 2 .................................................................................. 61

    PH LC .................................................................................................................................................. 66

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 4

    CHNG I. GII THIU MATLAB

    1. Gii thiu Matlab l t vit tt ca Matrix Laboratory, Matlab l mt ngn ng lp trnh cp cao

    dng thng dch, n l mi trng tnh ton s c thit k bi cng ty MathWorks.

    Matlab cho php thc hin cc php tnh ton s, ma trn, v th hm s hay biu din

    thng tin (di dng 2D hay 3D), thc hin cc thut ton v giao tip vi cc chng trnh

    ca cc ngn ng khc mt cch d dng.

    2. Khi ng v chun b th mc lm vic trong Matlab Trc khi khi ng Matlab, th ngi dng nn to mt th mc lm vic cha cc

    file chng trnh ca mnh (V d: D:\ThucHanh_DSP). Matlab s thng dch cc lnh c

    lu trong file c dng *.m

    Sau khi ci t Matlab th vic khi chy chng trnh ny ch n gin l nhp vo

    biu tng ca n trn desktop , hoc vo Start\All Programs\Matlab 7.0.4\ Matlab.

    Sau khi khi ng xong Matlab, th bc k tip l ch th mc lm vic ca mnh cho

    Matlab. Nhp vo biu tng trn thanh cng c v chn th mc lm vic ca mnh (v d:

    D:\ThucHanh_Matlab).

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 5

    3. Qun l khng gian lm vic ca Matlab

    Khng gian lm vic ca Matlab gm c cc phn c bn sau:

    *Nt Start: gc di bn tri ca mn hnh, cho php chy cc ng dng mu (demos),

    cc cng c v ca s cha hin th khi khi ng Matlab.

    V d : Start/Matlab/Demos v chy mt ng dng mu.

    * Ca s lnh: Qu trnh khi ng a ngi dng n Ca s lnh, ni cc dng lnh

    c biu th bng du '>>'. y l du hiu cho thy Matlab ang ch nh mt (cu) lnh.

    C th xa trng ton b ca s lnh bng lnh: >> clc hoc vo Edit/ Clear Command

    Window. Khi thc hin lnh ny, ton b gi tr ca cc bin hin c khng thay i hay

    mt i.

    * Ca s khng gian lm vic (workspace): Ni lu gi cc bin v d liu do ngi

    dng nhp vongoi tr nhng bin cc b thuc v mt M-file.

    Dng lnh 'who' hoc 'whos' lit k cc bin hin c trong khng gian lm vic.

    bit gi tr ca bin, ta g tn bin ti du nhc lnh. xa mt hm hoc bin khi khng

    gian lm vic, s dng lnh 'clear':

    >> clear tn_bin;

    * Ca s bin tp mng (ma trn ni chung): Khi c mt mng, c th chnh sa,

    bin tp li bng Array Editor. Cng c ny lm vic nh mt bng tnh (spreadsheet) cho

    ma trn.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 6

    * Ca s a ch th mc hin thi: Th mc hin thi l ni chng trnh Matlab s tm

    cc M-file, v cc file khng gian lm vic (.mat files) ti v lu li.

    to mt file.m trong th mc lm vic bn c c th thc hin:

    Nhp vo biu tng hoc vo File\New\M-File:

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

    nhn vo biu tng lu vo th mc hin ti (D:\ThucHanh_Matlab).

    thc thi tp lnh c trong file.m trong th mc lm vic th ngi dng ch cn g tn

    file v Matlab s t ng thc thi cc dng lnh c trong file.m ny (v d thc thi cc

    lnh c trong file test.m, ch cn g lnh test).

    4. Cc thnh phn ca Mathlab - Ngn ng Matlab: l mt ngn ng ma trn/mng cp cao vi cc cu lnh, hm, cu

    trc d liu, vo/ra, cc tnh nng lp trnh hng i tng. N cho php lp trnh cc ng

    dng t nh n cc ng dng ln v phc tp.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 7

    - Mi trng lm vic Matlab: y l mt b cc cng c v phng tin m bn s dng

    vi t cch l ngi dng hoc ngi lp trnh Matlab. N bao gm cc phng tin cho

    vic qun l cc bin trong khng gian lm vic Workspace cng nh xut nhp khu d

    liu. N cng bao gm cc cng c pht trin, qun l, g ri v nh hnh M-file, ng dng

    ca Matlab.

    - X l ho: y l h thng ho ca Matlab. N bao gm cc lnh cao cp cho trc

    quan ho d liu hai chiu v ba chiu, x l nh, nh ng,... N cng cung cp cc lnh

    cp thp cho php bn tu bin giao din ho cng nh xy dng mt giao din ho

    hon chnh cho ng dng Matlab ca mnh.

    - Th vin ton hc Matlab: y l tp hp khng l cc thut ton tnh ton t cc hm

    c bn nh cng, sin, cos, s hc phc... ti cc hm phc tp hn nh nghch o ma trn,

    tm tr ring ca ma trn, php bin i Fourier nhanh.

    - Giao din chng trnh ng dng Matlab API (Application Program Interface): y l

    mt th vin cho php bn vit cc chng trnh C v Fortran tng thch vi Matlab.

    Simulink, mt chng trnh i km vi Matlab, l mt h thng tng tc vi vic m

    phng cc h thng ng hc phi tuyn. N l mt chng trnh ho s dng chut

    thao tc cho php m hnh ho mt h thng bng cch v mt s khi trn mn hnh. N

    c th lm vic vi cc h thng tuyn tnh, phi tuyn, h thng lin tc theo thi gian, h

    gin on theo thi gian, h a bin...

    5. Cc phm tt c bn trong Matlab. Trong qu trnh son tho lnh, c th dng cc phm tt sau y:

    K hiu phm Phm tt Chc nng

    CtrlP Gi li lnh trc

    CtrlN Gi lnh sau

    CtrlB Li li mt k t

    CtrlF Tin ln mt k t

    Ctrl CtrlR Sang phi mt t

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 8

    Ctrl CrtlL Sang phi mt t

    home CtrlA V u dng

    end CtrlE V cui dng

    esc CtrlU Xo dng

    del CtrlD Xo k t ti ch con nhy ng

    backspace CtrlH Xo k t trc ch con nhy ng

    6. Cc ton t c bn ca Matlab: Cc ton t c bn:

    + Cng Tr

    * Nhn / Chia phi \ Chia tri ^ Lu tha

    Chuyn v ma trn hay s phc lin hp

    Cc ton t quan h :

    < nh hn ln hn >= ln hn hoc bng == bng ~= khng bng

    Cc ton t logic:

    & v | or ~ not

    Cc hng:

    pi 3.14159265 i s o

    j tng t i eps sai s 252 realmin s thc nh nht 21022 realmax s thc ln nht 21023

    inf v cng ln NaN Not a number

    Cc lnh c bn:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 9

    Lnh Chc nng

    Clear Xa tt c cc bin trong b nh Matlab

    clc Lnh xa ca s lnh (command window)

    pause Ch s p ng t pha ngi dng

    = Lnh gn

    % Cu lnh sau du ny c xem l dng ch thch

    input Lnh ly vo mt gi tr.

    V d: x = input(Nhap gia tri cho x:);

    help lnh yu cu s gip t Matlab

    Save Lu bin vo b nh

    V d: Save test A B C (lu cc bin A, B, C vo file test)

    Load Load bin t file hay b nh. V d: Load test

    Cc lnh iu khin c bn:

    Lnh C php/ Chc nng

    If: R 2 nhnh IF expression

    statements

    ELSEIF expression

    statements

    ELSE

    statements

    END

    Switch: Lnh r nhiu nhnh SWITCH switch_expr

    CASE case_expr,

    statement,..., statement

    CASE {case_expr1, case_expr2, case_expr3,...}

    statement,..., statement

    ...

    OTHERWISE,

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 10

    statement,..., statement

    END

    Lnh lp For FOR variable = expr, statement,..., statement END

    Lnh lp While WHILE expression

    statements

    END

    Break Thot t ngt khi vng lp WHILE hay FOR.

    Continue B qua cc lnh hin ti, tip tc thc hin vng lp

    ln lp tip theo.

    Return lnh tr v

    Mt s lnh c bn trn th:

    Lnh Chc nng

    clf xa hnh hin ti

    plot(signal) v dng sng tn hiu signal

    stairs(signal) v tn hiu signal theo dng cu thang.

    stem(signal) v chui d liu ri rc

    bar(signal) v d liu theo dng ct

    mesh(A) hin th ha dng 3D cc gi tr ma trn

    Chi tit cc lnh s c lm r trong cc chng tip theo.

    7. Kt chng Trong chng ny chng ta lm quen vi Matlab qua cc thao tc c bn, Matlab l

    ngn ng cp cao, c cc chc nng x l nh mt ngn ng bnh thng. Ta s tm hiu k hn cc chc nng cc phn k tip.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 11

    CHNG 2. MATLAB C BN

    1. Nhp xut d liu t dng lnh MATLAB khng i hi phi khai bo bin trc khi dng. MATLAB phn bit ch hoa

    v ch thng. Cc s liu a vo mi trng lm vic ca Matlab c lu li sut phin

    lm vic cho n khi gp lnh clear all. Matlab cho php ta nhp s liu t dng lnh.

    Khi nhp ma trn t bn phm ta phi tun theo cc quy nh sau:

    Ngn cch cc phn t ca ma trn bng du , hay du trng

    Dng du ; kt thc mt hng.

    Bao cc phn t ca ma trn bng cp du ngoc vung [ ]

    V d 2.1: nhp cc ma trn sau:

    351523321

    A 1241 B

    741

    C

    ta dng cc lnh:

    A = [ 1 2 3; 3 2 4; 1 5 3]

    B = [ 1 4 2 1]

    C = [ 1; 4; 7]

    2. Nhp xut d liu t bn phm: Lnh input cho php ta nhp s liu t bn phm. V d: x = input(Nhap x: )

    Lnh format cho php xc nh dng thc ca d liu.

    V d 2.2.1:

    format rat % so huu ti

    format long % so s c 14 chu so sau dau phay

    format long e % so dang mu

    format hex % so dang hex

    format short e %so dang mu ngan

    format short %tro ve so dang ngan (default)

    Mt cch khc hin th gi tr ca bin v chui l nh tn bin vo ca s lnh. Cng

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 12

    c th dng disp v fprintf hin th cc bin.

    V d:

    disp(Tri so cua x = ), disp(x)

    V d 2.2.2: Vit chng trnh vidu_2.2.2.m nh sau:

    Kt qu chy vidu_2.2.2 ti dng lnh nh sau:

    Trong trng hp ta mun nhp mt chui t bn phm, ta cn phi thm k t s vo i

    s. V d:

    ans = input(Ban tra loi hoac : ,s) ;

    3. Nhp xut d liu t file: MATLAB c th x l hai kiu file d liu: nh phn (*.mat) v file ASCII (*.dat).

    lu cc ma trn A, B,C di dng file nh phn, ta dung lnh:

    save ABC A B C

    v np li cc ma trn A, B bng lnh:

    load ABC A B

    Nu mun lu s liu ca ma trn B di dng file ASCII ta vit:

    save b.dat B /ascii

    V d 2.3: Vit chng trnh trong tp tin vidu_2.3.m nh sau:

    clear

    A = [1 2 3; 4 5 6]

    B = [3; -2; 1];

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 13

    C(2) = 2; C(4) = 4

    disp('Nhan phim bat ky de xem nhap/xuat du lieu tu file')

    save ABC A B C % luu A,B & C duoi dang MATfile co ten ABC.mat

    clear('A', 'C') % xoa A va C khoi bo nho

    load ABC A C %doc MAT file de nhap A va C vao bo nho

    save b.dat B /ascii %luu B duoi dang file ASCII co ten b.dat

    clear B % xoa B

    load b.dat %doc ASCII

    b

    x = input('Nhap x:')

    format short e

    x

    format rat, x

    format long, x

    format short, x

    4. Cc hm ton hc: a. Cc hm ton hc c bn:

    K hiu Tn hm K hiu Tn hm

    exp(x) hm ex sqrt(x) cn bc hai ca x

    log(x) logarit t nhin log10(x) logarit c s 10

    abs(x) modun ca s phc x angle(x) argument ca s phc a

    conj(x) s phc lin hp ca x imag(x) phn o ca x

    real(x) phn thc ca x sign(x) du ca x

    Cc hm lng gic cos(x), sin(x), tan(x), acos(x), asin(x),

    atan(x), cosh(x), coth(x), sinh(x), tanh(x),

    acosh(x), acoth(x), asinh(x), atanh(x)

    b. Cc hm ton hc t to:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 14

    Matlab cho php ta to hm ton hc v lu n vo mt file dng nh l hm c sn

    ca Matlab.

    V d 2.4: Ta cn to hm: 21 811)(

    xxf

    v hm:

    5.232254

    ),(),(

    )(21

    21

    22

    21

    212

    2112 xxx

    xxxxfxxf

    xf

    Mun th ta to ra file f1.m nh sau:

    function y = f1(x)

    y = 1/(1+8*x^2);

    v file f2.m:

    function y = f2(x)

    y(1) = x(1)*x(1)+4*x(2)*x(2) 5;

    y(2) = 2*x(1)*x(1)-2*x(1)-3*x(2) -2.5;

    Khi nhp lnh f1(2) ta c gi tr ca hm f1 ti x = 2. Khi nhp lnh f2([2 4]) ta c gi tr

    ca hm f2 ti x1 = 2 v x2 = 4. Lnh feval(f1, 2) v feval(f2, [2 4]) cng cho kt qu

    tng t.

    Bi tp: Vit chng trnh to hm sau y:

    1241025441025

    10432

    ),,(),,(),,(

    )(23

    233

    32

    31

    232

    3

    23

    22

    3

    3213

    3212

    3211

    3

    11

    1

    1

    xxxxxxxxx

    xxx

    xxxfxxxfxxxf

    xf

    Cch th hai biu din mt hm ton hc mt bin trn dng lnh l to ra mt i

    tng inline t mt biu thc chui. V d ta c th nhp t dng lnh hm nh sau:

    f1 = inline(1./(1 + 8*x.^2),x);

    f1([0 1]), feval(f1, [0 1])

    Ta cng c th vit:

    f1 = 1./(1 + 8*x.^2);

    x = [0 1];

    eval(f1)

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 15

    Nu hm l a thc ta ch cn nhp ma trn cc h s t s m cao nht. V d vi a

    thc P4(x) = x4 + 4x3 + 2x + 1 ta vit:

    P = [1 4 0 2 1]

    nhn hai a thc ta dng lnh conv; chia 2 a thc ta dng lnh deconv. Mun tnh

    tr s ca a thc ta dng lnh polyval v lnh polyvalm dng khi a thc l ma trn.

    c. Cc lnh x l hm: Lnh fplot v th hm ton hc gia cc gi tr cho. V d:

    fplot(f1, [5 5 ])

    grid on

    Cho mt hm ton hc mt bin, ta c th dng lnh fminbnd ca Matlab tm cc tiu

    a phng ca hm trong khong cho. V d:

    f = inline(1./((x 0.3).^2+0.01) + 1./((x 0.9).^2 + 0.04) 6 );

    x = fminbnd(f, 0.3, 1)

    Lnh fminsearch tng t hm fminbnd dng tm cc tiu a phng ca hm nhiu

    bin. Ta c hm 3 bin lu trong file three_var.m nh sau:

    function b = three_var(v)

    x = v(1);

    y = v(2);

    z = v(3);

    b = x.^2 + 2.5*sin(y) z^2*x^2*y^2;

    By gi tm cc tiu i vi hm ny bt u t

    x = 0.6 , y = 1.2 v z = 0.135

    bng cc lnh:

    v = [0.6 1.2 0.135];

    a = fminsearch(three_var, v)

    Lnh fzero dng tm im zero ca hm mt bin. V d: tm gi tr khng ca hm

    ln cn gi tr 0.2 ta vit:

    f = inline(1./((x 0.3).^2 + 0.01) + 1./((x 0.9).^2 + 0.04) 6);

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 16

    a = fzero(f, 0.2)

    Zero found in the interval: [0.10949, 0.264].

    a =

    0.1316

    5. Cc php ton trn ma trn v vector: a. Khi nim chung

    Gi s ta to ra cc ma trn a v b bng cc lnh:

    a = [1 2 3; 4 5 6];

    b = [3 2 1];

    Ta c th sa i chng:

    A = [a; 7 8 9]

    B = [b; [1 0 1]]

    Ton t dng chuyn v mt ma trn thc v chuyn v lin hp mt ma trn phc.

    Nu ch mun chuyn v ma trn phc, ta dng thm ton t . Ngha l phi vit .. V

    d:

    C = [1 + 2*i 2 4*i; 3 + i 2 2*j];

    X = C

    Y = C.

    b. Ch s

    Phn t hng i ct j ca ma trn mn c k hiu l A(i, j). Tuy nhin ta cng c th tham

    chiu ti phn t ca mng nh mt ch s, v d A(k) vi k = i + (j 1)m. Cch ny thng

    dng tham chiu vec t hng hay ct. Trong trng hp ma trn y th n c xem

    l ma trn mt ct di to t cc ct ca ma trn ban u. Nh vy nu vit A(5) c ngha l

    tham chiu phn t A(2, 2).

    xc nh kch thc ca mt ma trn ta dng lnh length(tr v kch thc ln nht)

    hay size(s hng v ct). V d:

    c = [1 2 3 4; 5 6 7 8];

    length(c)

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 17

    [m, n] = size(c)

    c. Ton t :

    Ton t : l mt ton t quan trng ca Matlab. N xut hin nhiu dng khc nhau.

    V d:

    Lnh 1:10 to mt vec t hng cha 10 s nguyn t 1 n 10.

    Lnh 100: 7: 50 to mt dy s t 100 n 51, gim 7 n v mi ln.

    Lnh 0: pi/4: pi to mt dy s t 0 n pi, cch u nhau pi/4

    Cc biu thc ch s tham chiu ti mt phn ca ma trn. Vit A(1:k, j) l tham chiu

    n k phn t u tin ca ct j. Ngoi ra ton t : tham chiu ti tt c cc phn t ca

    mt hng hay mt ct.

    V d: B = A(:, [1 3 2 ]) to ra ma trn B t ma trn A bng cch i th t cc ct t [1

    2 3] thnh [1 3 2].

    d. To ma trn bng hm c sn Matlab cung cp mt s hm to cc ma trn c bn:

    Tn hm Chc nng V d

    zeros To ra ma trn m cc phn t u l zeros z = zeros(2, 4)

    ones to ra ma trn m cc phn t u l 1 x = ones(2, 3)

    y = 5*ones(2, 2)

    rand to ra ma trn m cc phn t ngu nhin

    phn b u

    d = rand(4, 4)

    randn to ra ma trn m cc phn t ngu nhin

    phn b trc giao

    e = randn(3, 3)

    magic(n) to ra ma trn cp n gm cc s nguyn t 1

    n n2 vi tng cc hng bng tng cc ct n

    phi ln hn hay bng 3

    pascal(n) to ra ma trn xc nh dng m cc phn

    t ly t tam gic Pascal.

    pascal(4)

    eye(n) to ma trn n v. eye(3)

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 18

    eye(m, n) to ma trn n v m rng eye(3, 4)

    e. Lp ghp

    Ta c th lp ghp(concatenation) cc ma trn c sn thnh mt ma trn mi.

    V d:

    a = ones(3, 3)

    b = 5*ones(3, 3)

    c = [a + 2; b]

    f. Xo hng v ct.

    Ta c th xo hng v ct t ma trn bng dng du [].

    V d: xa ct th 2 ca ma trn b, ta vit:

    b(:, 2) = []

    Vit x(1: 2: 5) = [] ngha l ta xo cc phn t bt u t 1 n phn t th 5 v cch 2

    ri sp xp li ma trn.

    g. Cc lnh x l ma trn:

    - Cng: X= A + B

    - Tr: X= A B

    - Nhn: X= A * B

    X.*A nhn cc phn t tng ng vi nhau

    - Chia: X = A/B lc X*B = A

    X = A\B lc A*X = B

    X=A./B chia cc phn t tng ng vi nhau

    - Lu tha: X = A^2

    X = A^2

    - Nghch o: X = inv(A)

    - nh thc: d = det(A)

    6. To s ngu nhin: Matlab c cc lnh to s ngu nhin l rand v randn to ra cc s ngu nhin theo phn b

    Gauss.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 19

    - rand(m, n): to ra ma trn cc s ngu nhin phn b ng nht.

    - randn(m, n): to ra ma trn cc s ngu nhin theo phn b chun Gauss.

    V d:

    rand(3, 3)

    randn(3, 3)

    7. Cc lnh dng lp trnh: a. Cc pht biu iu kin if, else, elseif

    C php ca if:

    if

    end

    Nu cho kt qu ng th phn lnh trong thn ca if c thc

    hin. Cc pht biu else v elseif cng tng t.

    V d 2.7: Ta xt chng trnh doantuoi. m on tui nh sau:

    clc

    disp(Xin chao! Han hanh duoc lam quen);

    x = fix(30*rand);

    disp(Tuoi toi trong khoang 0 30);

    gu = input(Xin nhap tuoi cua ban: );

    if gu < x

    disp(Ban tre hon toi);

    elseif gu > x

    disp(Ban lon hon toi);

    else

    disp(Ban bang tuoi toi);

    end

    b. Lnh r nhnh switch

    C php ca switch nh sau :

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 20

    switch

    case n1 :

    case n2 :

    . . .

    case nn :

    otherwise :

    end

    c. Lnh lp while

    Vng lp while dng khi khng bit trc s ln lp. C php nh sau:

    while

    end

    Xt chng trnh in ra chui Xin chao ln m hnh vi s ln nhp t bn phm

    xinchao.m nh sau:

    clc

    disp(xin chao);

    gu = input(Nhap so lan in: );

    i = 0;

    while i ~= gu

    disp([Xin chao i]);

    i = i + 1

    end

    d. Lnh lp for

    Vng lp for dng khi bit trc s ln lp. C php nh sau:

    for = : :

    Ta xy dng chng trnh on s doanso.m:

    clc

    x = fix(100*rand);

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 21

    n = 7;

    t = 1;

    for k = 1:7

    num = int2str(n);

    disp([Ban co quyen du doan , num, lan]);

    disp(So can doan nam trong khoang 0 100);

    gu = input(Nhap so ma ban doan: );

    if gu < x

    disp(Ban doan nho hon);

    elseif gu > x

    disp(So ban doan lon hon);

    else

    disp(Ban da doan dung. Xin chuc mung);

    t = 0;

    break;

    end

    n = n 1;

    end

    if t > 0

    disp(Ban khong doan ra roi);

    numx = int2str(x);

    disp([Do la so: , numx]);

    end

    8. Kt chng Chng ny gip sinh vin lm quen vi mt s khi nim c bn v cch lp trnh, cch

    khai bo bin trong Matlab cng nh cc cu trc c bn ca ngn ng lp trnh bc cao.

    Chng tip theo s gip sinh vin lm quen vi cc lnh v th.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 22

    CHNG 3. X L TH TRONG MATLAB

    1. Khi nim chung X l th l mt trong nhng cng c kh mnh ca Matlab. Ngn ng ny cung cp

    sn cc hm cho php ta v th 2D v 3D. Trong chng ny ta s lm quen vi mt s

    lnh v cho php thc hin v th.

    2. Cc lnh v Matlab cung cp mt lot hm v biu din cc vect s liu cng nh gii thch v in

    cc ng cong ny.

    - plot: ha 2D vi s liu 2 trc v hng v tuyn tnh

    - plot3: ha 3D vi s liu 2 trc v hng v tuyn tnh

    - polar: ho trong h to cc

    - loglog: ho vi cc trc logarit

    - semilogx: ho vi trc x logarit v trc y tuyn tnh

    - semilogy: ho vi trc y logarit v trc x tuyn tnh

    - plotyy: ho vi trc y c nhn bn tri v bn phi

    3. To hnh v Hm plot c cc dng khc nhau ph thuc vo cc i s a vo. V d nu y l mt

    vec t th plot(y) to ra mt ng thng quan h gia cc gi tr ca y v ch s ca n. Nu

    ta c 2 vec t x v y th plot(x, y) to ra th quan h gia x v y.

    V d:

    t = [0: pi/100: 2*pi]

    y = sin(t);

    plot(t, y)

    grid on

    polar(t, y)

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 23

    4. c t kiu ng v Ta c th dng cc kiu ng v khc nhau khi v hnh. Mun th ta chuyn kiu ng

    v cho hm plot. Ta vit chng trnh to ra th hm hnh sin:

    t = [0: pi/100: 2*pi];

    y = sin(t);

    plot(t, y, . ) % v bng ng chm chm

    grid on

    5. c t mu v kch thc ng v c t mu v kch thc ng v ta dng cc tham s sau:

    - LineWidth: rng ng thng, tnh bng s im

    - MarkerEdgeColor: mu ca cc cnh ca khi nh du

    - MarkerFaceColor: mu ca khi nh du

    - MarkerSize: kch thc ca khi nh du

    Mu c xc nh bng cc tham s:

    M Mu M Mu

    R Red M Mangeta

    G Green Y Yelloa

    B Blue K Black

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 24

    C cyan W White

    Cc dng im nh du xc nh bng:

    M Kiu nh du M Kiu nh du

    + Du cng . im

    o Vng trn x Ch thp

    * Du sao s Hnh vung

    d Ht kim cng v im tam gic hng

    xung

    ^ im tam gic hng ln < Tam gic sang tri

    > Tam gic sang phi h Lc gic

    p Ng gic

    Cc dng ng thng xc nh bng:

    M Kiu ng M Kiu ng

    - ng lin : ng chm chm

    -- ng nt t -. ng chm gch

    Ta xt chng trnh dothi.m nh sau:

    x = pi : pi/10 : pi;

    y = tan(sin(x)) sin(tan(x));

    plot(x, y, rs, LineWidth, 2, MarkerEdgeColor, k,...

    MarkerFaceColor, g, MarkerSize, 10)

    Chng trnh ny s v ng cong y = f(x) c cc c t sau :

    ng v l ng t nt()

    Khi nh du hnh vung (s), ng v mu (r)

    ng v rng 2 point

    Cc cnh ca khi nh mu en

    Khi nh du mu green

    Kch thc khi nh du 10 point

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 25

    6. Thm ng v vo th c lm iu ny ta dng lnh hold. Khi ta nh lnh hold on th Matlab khng xo th

    ang c. N thm s liu vo th mi ny. Nu phm vi gi tr ca th mi vt qu

    cc gi tr ca trc to c th n s nh li t l xch.

    V d:

    plot(sin(x));

    hold all

    plot(sin(x+(pi/4)));

    7. Ch v cc im s liu v cc im nh du m khng ni chng li vi nhau ta dng c t ni rng khng

    c cc ng ni gia cc im, ngha l ta gi hm plot ch vi c t mu v im nh

    du. V d: xt chng trnh nh sau:

    x = pi : pi/10 : pi;

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 26

    y = tan(sin(x)) sin(tan(x));

    plot(x, y, s, MarkerEdgeColor, k)

    8. V cc im v ng v c cc im nh du v ng ni gia chng ta cn m t kiu ng v kiu

    im. Ta xt on chng trnh nh sau:

    x = 0:pi/15:4*pi;

    y = exp(2*sin(x));

    plot(x, y, r, x, y, ok)

    dng v ng cong y = f(x) c ng ni lin, mu . im nh du l ch o c mu

    en.

    9. V vi hai trc y Lnh plotyy cho php to mt th c hai trc y. Ta cng c th dng plotyy cho gi

    tr trn hai trc y c kiu khc nhau nhm tin so snh. Ta xt chng trnh dothi.m nh sau:

    t = 0:900;

    A = 1000;

    b = 0.005;

    a = 0.005;

    z2 = sin(b*t);

    z1 = A*exp(a*t);

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 27

    [haxes, hline1, hline2] = plotyy(t, z1, t, z2,semilogy, plot);

    10. V ng cong vi s liu 3D Nu x, y, z l 3 vec t c cng di th plot3 s v ng cong 3D. Ta vit chng trnh

    duongcong3D.m nh sau:

    t = 0:pi/50:10*pi;

    plot3(sin(t),cos(t),t)

    axis square;

    grid on

    11. t cc thng s cho trc Khi ta to mt hnh v, Matlab t ng chn cc gii hn trn trc to v khong cch

    nh du da trn s liu dng v. Tuy nhin ta c th m t li phm vi gi tr trn trc

    v khong cch nh du theo ring. Ta c th dung lnh sau:

    - axis t li cc gi tr trn trc to

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 28

    - axes to mt trc to mi vi cc c tnh c m t

    - get v set: cho php xc nh v t cc thuc tnh ca trc to ang c.

    - gca: tr v trc to c

    Matlab chn cc gii hn trn trc to v khong cch nh du da trn s liu dng

    v. Dng lnh axis c th t li gii hn ny. C php ca lnh:

    axis[ xmin , xmax , ymin , ymax]

    Ta xt chng trnh thongso.m nh sau:

    x = 0:0.025:pi/2;

    plot(x, tan(x), ro)

    axis([0 pi/2 0 5])

    Matlab chia vch trn trc da trn phm vi d liu v chia u. Ta c th m t

    cchchia nh thng s xtick v ytick bng mt vec t tng dn.

    V d: xt chng trnh nh sau:

    x = pi: .1: pi;

    y = sin(x);

    plot(x, y)

    set(gca, xtick, pi :pi/2:p);

    set(gca, xticklabel, {pi, pi/2, 0, pi/2, pi})

    12. Ghi nhn ln cc trc to Matlab cung cp cc lnh ghi nhn ln ho gm : - title: thm nhn vo ho

    - xlabel: thm nhn vo trc x

    - ylabel: thm nhn vo trc y

    - zlabel: thm nhn vo trc z

    - legend: thm ch gii vo th

    - text: hin th chui vn bn v tr nht nh

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 29

    - gtext: t vn bn ln ho nh chut

    - \bf: bold font

    - \it: italics font

    - \sl: oblique font (ch nghing)

    -\rm: normal font

    Cc k t c bit xem trong String properties ca Help.

    Ta dng cc lnh xlabel , ylabel , zlabel thm nhn vo cc trc to . Ta c th thm

    vn bn vo bt k ch no trn hnh v nh hm text. Ta c chng trnh nh sau:

    x = pi: .1: pi;

    y = sin(x);

    plot(x, y)

    xlabel(t = 0 to 2\pi, Fontsize, 16)

    ylabel(sin(t), Fontsize, 16)

    title(\it{Gia tri cua sin tu zero n 2 pi}, Fontsize, 16)

    text(3*pi/4, sin(3*pi/4),\leftarrowsin(t ) = 0.707, FontSize, 12)

    13. nh v vn bn trn hnh v Ta c th s dng i tng vn bn ghi ch cc trc v tr bt k. Matlab nh v vn

    bn theo n v d liu trn trc.

    V d v hm y = Aet vi A = 0.25 vi t = 0 n 900 v = 0.005 ta vit chng trnh

    nh sau:

    t = 0: 900;

    y = 0.25*exp(-0.005*t);

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 30

    plot(t, 0.25*exp(-0.005*t))

    plot(t,y)

    text(300,.25*exp(-.005*300),...

    '\bullet\leftarrow\fontname{times}0.25{\ite}^{ 0.005{\itt}} tai,... {\itt} = 300',

    'FontSize', 14)

    Tham s HorizontalAlignment v VerticalAlignment nh v vn bn so vi cc ta x,

    y, z cho.

    14. ho c bit a. Khi v vng

    ho khi v vng biu din s liu l vec t hay ma trn. MATLAB cung cp cc hm

    ho khi v vng:

    - bar: hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar.

    - barh: hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar nm ngang.

    - bar3: hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar dng 3D.

    - bar3h: hin th cc ct ca ma trn m*n nh l m nhm, mi nhm c n bar dng 3D

    nm ngang.

    Mc nh, mi phn t ca ma trn c biu din bng mt bar. Ta xt chng trnh nh

    sau:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 31

    y = [5 2 1

    6 7 3

    8 6 3

    5 5 5

    1 5 8];

    bar(y)

    b. M t d liu trn trc.

    Ta dng cc hm xlabel v ylabel m t cc d liu trn trc. Ta xt chng trnh nh

    sau:

    nhdo = [29 23 27 25 20 23 23 27];

    ngay = 0: 5: 35;

    bar(ngay, nhdo)

    xlabel(Ngay)

    ylabel(Nhiet do (^{o}C))

    set(gca,YLim,[15 30],Layer,top)

    grid on

    set(gca,YLim,[15 30])

    Mc nh,phm vi gi tr ca trc y l t 0 n 30. xem nhit trong khong t 15

    n 30 ta thay i phm vi gi tr ca trc y:

    set(gca,YLim,[15 30],Layer,top)

    v trn th, phm vi gi tr ca trc y thay i.

    c. Xp chng th

    Ta c th xp chng s liu trn th thanh bng cch to ra mt trc khc trn cng

    mt v tr v nh vy ta c mt tr y c lp vi b s liu khc.

    V d:

    TCE = [515 420 370 250 135 120 60 20];

    nhdo = [29 23 27 25 20 23 23 27];

    ngay = 0:5:35;

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 32

    bar(ngay, nhdo)

    xlabel(Ngay)

    ylabel(Nhiet do (^{o}C))

    xp chng mt s liu ln mt th thanh trn, c trc th 2 cng v tr nh trc

    th nht ta vit:

    h1 = gca;

    v to trc th 2 v tr trc th nht trc nht v b s liu th 2:

    h2 = axes(Position,get(h1,Position));

    plot(days,TCE,LineWidth,3)

    trc th 2 khng gy tr ngi cho trc th nht ta vit:

    set(h2,YAxisLocation,right,Color,none,XTickLabel,[])

    set(h2,XLim,get(h1,XLim),Layer,top)

    ghi ch ln th ta vit:

    text(11,380,Mat do,Rotation,55,FontSize,16)

    ylabel(TCE Mat do (PPM))

    title(Xep chong do thi,FontSize,16)

    d. ho vng.

    Hm area hin th ng cong to t mt vec t hay t mt ct ca ma trn. N v cc

    gi tr ca mt ct ca ma trn thnh mt ng cong ring v t y vng khng gian gia

    cc ng cong v trc x ta xt chng trnh nh sau:

    Y = [ 5 1 2

    8 3 7

    9 6 8

    5 5 5

    4 2 3];

    area(Y)

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 33

    hin th th c 3 vng, mi vng mt ct. cao ca mi th vng l tng cc phn

    t trong mt hng. Mi ng cong sau s dng ng cong trc lm c s. hin th

    ng chia li ta dng lnh:

    set(gca,Layer,top)

    set(gca,XTick,1:5)

    grid on

    e. th Pie

    th pie hin th theo t l phn trm ca mt phn t ca mt vec t hay mt ma trn so

    vi tng cc phn t. Cc lnh pie v pie3 to ra th 2D v 3D ta xt chng trnh nh

    sau:

    X = [19.3 22.1 51.6; 34.2 70.3 82.4; 61.4 82.9 90.8; 50.5 54.9 59.1; 29.4 36.3 47.0];

    x = sum(X);

    explode = zeros(size(x));

    [c,offset] = max(x);

    explode(offset) = 1;

    h = pie(x,explode)

    %A = [ 1 3 6];

    %pie3(A)

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 34

    Khi tng cc phn t trong i s th nht bng hay ln hn 1, pie v pie3 chun ho cc

    gi tr. Nh vy cho vec t x, mi phn c din tch xi/sum (xi) vi xi l mt phn t ca x.

    Gi tr c chun ho m t phn nguyn ca mi vng. Khi tng cc phn t trong i s

    th nht nh hn 1, pie v pie3 khng chun ho cc phn t ca vec t x. Chng v mt

    phn pie.

    x = [.19 .22 .41];

    pie(x)

    f. Lm hnh chuyn ng:

    C th to ra hnh chuyn ng bng 2 cch:

    - To v lu nhiu hnh khc nhau v ln lt hin th chng

    - V v xo lin tc mt i tng trn mn hnh, mi ln v li c s thay i.

    Vi cch th nht ta thc hin hnh chuyn ng qua 3 bc:

    - Hm moviein dnh b nh cho mt ma trn ln nhm lu cc khung hnh.

    - Hm getframes to cc khung hnh.

    - Hm movie hin th cc khung hnh.

    Sau y l v d s dng movie quan st hm fft(eye(n)). Ta to chng trnh nh sau :

    axis equal

    M = moviein(16, gcf);

    set(gca, NextPlot, replacechildren)

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 35

    h = uicontrol(style, slider, position,[100 10 500 20], Min, 1, Max, 16)

    for j = 1:16

    plot(fft(eye(j + 16)))

    set(h, Value, j)

    M(:, j) = getframe(gcf);

    end

    clf;

    axes(Position, [0 0 1 1]);

    movie(M, 30)

    Bc u tin to hnh nh chuyn ng l khi gn ma trn. Tuy nhin trc khi gi

    hm moviein, ta cn to ra cc trc to c cng kch thc vi kch thc m ta mun

    hin th hnh. Do trong v d ny ta hin th cc s liu cch u trn vng trn n v nn ta

    dng lnh axis equal xc nh t l cc trc. Hm moviein to ra ma trn ln cha

    16 khung hnh. Pht biu:

    set(gca, NextPlot, replacechildren)

    ngn hm plot a t l cc trc v axis normal mi khi n c gi. Hm getframe

    khng i s tr li cc im nh ca trc hin hnh hnh hin c. Mi khung hnh gm

    cc s liu trong mt vec t ct. Hm getframe(gcf) chp ton b phn trong ca mt ca s

    hin hnh. Sau khi to ra hnh nh ta c th chy chng mt s ln nht nh v d 30 ln

    nh hm movie(M, 30) .

    Mt phng php na to hnh chuyn ng l v v xo, ngha l v mt i tng

    ho ri thay i v tr ca n bng cch thay i to x, y v z mt lng nh nh mt

    vng lp. Ta c th to ra cc hiu ng khc nhau nh cc cch xo hnh khc nhau. Chng

    gm:

    - none: khng xo i tng khi n di chuyn

    - background: xo i tng bng cch v n c mu nn

    - xor: ch xo i tng

    V d: Ta to ra Mfile c tn l vidu.m nh sau:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 36

    A = [ 8/3 0 0; 0 10 10; 0 28 1 ];

    y = [35 10 7];

    h = 0.01;

    p = plot3(y(1), y(2), y(3),., ... EraseMode, none, MarkerSize, 5);

    axis([0 50 25 25 25 25])

    hold on

    for i = 1:4000

    A(1,3) = y(2);

    A(3,1) = y(2);

    ydot = A*y;

    y = y + h*ydot;

    set(p, XData, y(1), YData, y(2), ZData, y(3)) % thay doi toa do

    drawnow

    i = i + 1;

    end

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 37

    15. ho 3D a.Cc lnh c bn.

    Lnh mesh v surf to ra li v mt 3D t ma trn s liu. Gi ma trn s liu l z m

    mi phn t ca n z(i, j) xc nh tung ca mt th mesh(z) to ra mt li c mu th

    hin mt z cn surf(z) to ra mt mt c mu z.

    b. th cc hm hai bin

    Bc th nht th hin hm 2 bin z = f(x,y) l to ma trn x v y cha cc to

    trong min xc nh ca hm.

    Hm meshgrid s bin i vng xc nh bi 2 vec t x v y thnh ma trn x v y. Sau

    ta dng ma trn ny nh gi hm.

    Ta kho st hm sin(r)/r. tnh hm trong khong 8 v 8 theo x v y ta ch cn chuyn

    mt vec t i s cho meshgrid:

    [x,y] = meshgrid(8:.5:8);

    r = sqrt(x.^2 + y.^2) + 0.005;

    ma trn r cha khong cch t tm ca ma trn. Tip theo ta dng hm mesh v hm.

    z = sin(r)./r;

    mesh(z)

    c. th ng ng mc.

    Cc hm contour to, hin th v ghi ch cc ng ng mc ca mt hay nhiu ma trn.

    Chng bao gm:

    - clabel: to cc nhn s dng ma trn contour v hin th nhn

    - contour: hin th cc ng ng mc to bi mt gi tr cho trc ca ma trn Z.

    - contour3: hin th cc mt ng mc to bi mt gi tr cho trc ca ma trn Z.

    - contour: hin th th contour 2D v t mu vng gia 2 cc ng contourc hm cp

    thp tnh ma trn contour

    Hm meshc hin th contour v li v surfc hin th mt contour.

    V d:

    [X,Y,Z] = peaks;

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 38

    contour(X,Y,Z,20)

    Mi contour c mt gi tr gn vi n. Hm clabel dng gi tr ny hin th nhn

    ng ng mc 2D. Ma trn contour cha gi tr clabel dng cho cc ng contour 2D.

    Ma trn ny c xc nh bi contour, contour3 v contourf.

    hin th 10 ng ng mc ca hm peak ta vit:

    Z = peaks;

    [C,h] = contour(Z,10);

    clabel(C,h)

    title({Cac contour co nhan,clabel(C,h)})

    Hm contourf hin th th ng ng mc trn mt mt phng v t mu vng cn li

    gia cc ng ng mc. kim sot mu t ta dng hm caxis v colormap. Ta vit

    chng trnh ct1_26.m:

    Z = peaks;

    [C, h] = contourf(Z, 10);

    caxis([20 20])

    colormap autumn;

    title({Contour co to mau, contourf(Z, 10)})

    Cc hm contour(z, n) v contour(z, v) cho php ta ch r s lng mc contour hay mt

    mc contour cn v no vi z l ma trn s liu, n l s ng contour v v l vec t cc

    mc contour. MATLAB khng phn bit gia vec t mt phn t hay i lng v hng.

    Nh vy nu v l vec t mt phn t m t mt contour n mt mc hm contour s coi

    n l s lng ng contour ch khng phi l mc contour. Ngha l, contour(z, v) cng

    nh contour(z, n). hin th mt ng ng mc ta cn cho v l mt vector c 2 phn t

    vi c hai phn t bng mc mong mun. V d to ra mt ng ng mc 3D ca hm

    peaks ta vit chng trnh ct1_27.m:

    xrange = 3: .125: 3;

    yrange = xrange;

    [X,Y] = meshgrid(xrange, yrange);

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 39

    Z = peaks(X, Y);

    contour3(X, Y, Z)

    hin th mt mc Z = 1, ta cho v l [1 1]

    v = [1 1]

    contour3(X, Y, Z, v)

    Hm ginput cho php ta dng chut hay cc phm mi tn chn cc im v. N tr v

    to ca v tr con tr. V d sau s minh ho cc dng hm ginput v hm spline to ra

    ng cong ni suy hai bin.

    V d: to mt Mfile c tn Vidu_02.m nh sau:

    disp(Chuot phai tro cac diem tren duong ve)

    disp(Chuot trai tro diem cuoi cua duong ve)

    axis([0 10 0 10])

    hold on

    x = [];

    y = [];

    n = 0;

    but = 1;

    while but = =1

    [xi,yi,but] = ginput(1);

    plot(xi, yi, go)

    n = n + 1;

    x(n, 1) = xi;

    y(n,1) = yi;

    end

    t = 1:n;

    ts = 1: 0.1: n;

    xs = spline(t, x, ts);

    ys = spline(t, y, ts);

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 40

    plot(xs, ys, c);

    hold off

    16. V cc vect C nhiu hm Matlab dng hin th cc vec t c hng v vec t vn tc. Ta nh ngha

    mt vec t bng cch dng mt hay 2 i s. Cc i s m t thnh phn x v thnh phn y

    ca vec t. Nu ta dng 2 i s th i s th nht s m t thnh phn x v i s th ha

    m t thnh phn y. Nu ta ch dng mt i s th MATLAB x l n nh mt s phc,

    phn thc l thnh phn x v phn o l thnh phn y.

    Cc hm v vec t gm:

    - compass: v cc vc t bt u t gc to ca h to cc

    - feather: v cc vec t bt u t mt ng thng

    - quiver: v cc vec t 2D c cc thnh phn (u, v)

    - quiver3: v cc vec t 3D c cc thnh phn (u, v, w)

    a. Hm compass.

    Ta xt v d v hng v tc gi. Cc vector xc nh hng (gc tnh bng ) v tc

    gi (km/h) l:

    hg = [45 90 90 45 360 335 360 270 335 270 335 335];

    td = [6 6 8 6 3 9 6 8 9 10 14 12];

    Ta bin i hng gi thnh radian trc khi bin i n thnh to vung gc.

    hg1 = hg * pi/180;

    [x, y] = pol2cart(hg1, td);

    compass(x, y)

    v to ra ghi ch trn th:

    gc = {Huong gio v suc gio tai san bay Da Nang)

    text(28, 15, gc)

    b. Hm feather

    Hm feather hin th cc vector bt u t mt ng thng song song vi trc x. V d

    to ra cc vec t c gc t 90 n 00 v cng di ta vit chng trnh nh sau:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 41

    theta = 90: 10: 0;

    r = ones(size(theta));

    trc khi v, chuyn cc s liu sang to vung gc v tng ln thnh r d nhn:

    [u, v] = pol2cart(theta*pi/180, r*10);

    feather(u, v)

    axis equal

    Nu i s l s phc z th feather coi phn thc l x v phn o l y. Ta xt chng trnh

    nh sau:

    t = 0: 0.3: 10;

    s = 0.05 + i;

    Z = exp(s*t);

    feather(Z)

    c. Hm quiver

    Hm quiver hin th cc vec t cc im cho trong mt phng. Cc vec t ny c

    xc nh bng cc thnh phn x v y. V d to ra 10 contour ca hm peaks ta dng

    chng trnh nh sau:

    n = 2.0: .2: 2.0;

    [X,Y,Z] = peaks(n);

    contour(X, Y, Z, 10)

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 42

    By gi dng hm gradient to cc thnh phn ca vec t dng lm i s cho quiver:

    [U, V] = gradient(Z, .2);

    t hold on thm ng contour:

    hold on

    quiver(X,Y,U,V)

    hold off

    d. Hm quiver3.

    Hm quiver3 hin th cc vec t c cc thnh phn (u,v,w) ti im (x, y, z). V d ta biu

    din qu o ca mt vt c nm i theo t. Phng trnh ca chuyn ng l:

    z(t) = v0t + 2

    2at

    Ta vit chng trnh chuyendong.m, trc ht ta gn vn tc ban u v gia tc a:

    v0 = 20; % Van toc ban dau

    a = 32; % gia toc

    Tip theo tnh z ti cc thi im:

    t = 0:.1:1;

    z = vz*t + 1/2*a*t.^2;

    Tnh v tr theo hng x v y:

    vx = 2;

    x = vx*t;

    vy = 3;

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 43

    y = vy*t;

    Tnh cc thnh phn ca vec t vn tc v hin th bng cc dng quiver3:

    u = gradient(x);

    v = gradient(y);

    w = gradient(z);

    scale = 0;

    quiver3(x, y, z, u, v, w, scale)

    axis square

    17. Kt chng Trong chng ny, sinh vin lm quen vi mt s lnh c bn trong v th da trn

    d liu. Chng cng gip sinh vin lm quen vi mt s lnh v th 3D v nng cao.

    Chng tip theo s gip sinh vin lm quen vi phng php lp trnh giao din ha

    ngi dng trn Matlab

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 44

    CHNG 4. LP TRNH GIAO DIN NGI DNG (GUI)

    Chng ny s hng dn ngi dung lp trnh bng ca s, y l dng lp trnh giao

    din ngi dng thng thy cc ngn ng cp cao hin nay.

    1. Cch thc hin M phn mm Matlab, g lnh sau vo ca s Command:

    >> guide

    Ca s GUIDE Quick Start hin ra nh sau:

    Trong ca s GUIDE Quick Start c nhiu la chn theo cc khun mu nh sau:

    Th Create New GUI: To mt hp thoi GUI mi theo mt trong cc loi sau:

    - Blank GUI (Default): Hp thoi trng, khng c mt iu khin uicontrol no c.

    - GUI with Uicontrols: Hp thoi vi mt vi uicontrol nh button,...

    - GUI with Axes and Menu: Hp thoi vi mt uicontrol axes v button, cc menu hin

    th th.

    - Modal Question Dialog: Hp thoi t cu hi Yes, No.

    Th Open Existing GUI: gip ngi dng m mt project c sn to trc.

    Trong hng dn ny, khi to mt project mi s chn Blank GUI

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 45

    2. Lp trnh giao din vi Blank GUI

    Giao din rt ging vi cc chng trnh lp trnh giao din nh Visual Basic, Visual

    C++, C# ... Di chut qua cc biu tng bn tri s thy tn ca cc iu khin.

    Sau y l mt s iu khin thng dng:

    Push Button: L cc nt bm nh nt OK, Cancel m ta vn bm (tng t Button

    trong cc ngn ng bc cao)

    Slider: Thanh trt c mt con trt chy trn .

    Radio Button: Chn la 1 iu kin trong mt tp iu kin.

    Check Box: Chn la nhiu iu kin trong mt tp iu kin.

    Edit Text: L mt cho ngi dung nhp vn bn

    Static Text: L hin th vn bn ca ngi dng

    Pop-up Menu: Ngi dng chn mt i tng trong danh sch s xung.

    List Box: Cho php ngi dng chn 1 i tng trong danh sch hin ra.

    Axes: Thc hin v h trc ta .

    Panel: L mt dng phn ca cc thnh phn trn giao din.

    Button Group: Nhm cc button.

    ActiveX Control: Cc Control do ngi dung nhng thm vo.

    Toggle Button: Dng nt bm bt - tt.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 46

    Pha trn cng l menu, trng nht l menu Tools c:

    Run (Ctr + T): Chy chng trnh vit, s bo li nu chng trnh cha li.

    chy c chng trnh, h thng bt buc ngi dng phi lu li ng dng.

    Align Object: dng sp xp cc iu khin v cn l cho cc i tng.

    Grid and Rulers: Hin th li v thc trong giao din.

    Menu Editor: To menu cho ng dng.

    Tab Order Editor: sp xp th t cc xut hin chut ln i tng khi nhn phm

    Tab lc chy ng dng.

    Gui Options: Mt s la chn cho giao din GUI.

    Khi ta lu li (vo File\Save hoc nhn Ctrl + S) vi mt tn no (v d: vidu), khi h

    thng ng thi xut hin hai ca s l ca s son tho v ca s thit k. Trong th mc

    va lu s c hai tp tin:

    vidu.fig: Tp tin ny cha giao din ca chng trnh, l ni cho ngi dung thit k

    bng cch ko th cc iu khin to ng dng.

    vidu.m: tp tin ny cha cc m thc thi cho chng trnh nh cc hm khi to, cc

    hm callback...

    3. Ko th v thit lp thuc tnh cho cc iu khin V d: Thc hin chng trnh cho ngi dng nhp vo hai s, khi nhn nt s hin th

    kt qu php tnh cng ca 2 s va nhp.

    Thc hin cc bc nh sau:

    - To mt Blank GUI: Vo File\New\GUI chn Blank GUI, t tn l vidu.fig

    - Ko th vo trong giao din 2 Edit Text, 1 Static Box v 1 Push Button.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 47

    Click i vo Edit Text xut hin ca s cc thuc tnh ca iu khin nh sau:

    Mt s thuc tnh quan trng nht ca Edit Box bao gm:

    Tag: y l tn ca iu khin. Dng tn ny c th thao tc n cc thuc tnh ca

    i tng. y ta t tn l: txtX.

    String: l xu k t hin ln Edit Box. C th trng hoc thit lp bng 0.

    Tng t, thay i thuc tnh tag ca Edit Box th 2 thnh txtY, Static Box cng tng t

    thnh txtKetQua.

    Vi Push Button: thuc tnh tag t l cmdCalculate, String t l ket qua

    4. Vit lnh cho chng trnh Chng trnh c tc dng khi nhn vo nt Push Button s hin ln kt qu Static Box.

    V th s phi vit vo hm no m khi nhn vo Push Button s gi. Chnh l hm

    Callback. iu khin no cng c hm callback, ging nh hm ngt trong vi iu khin

    vy.

    Click chut phi vo nt + chn View Callbacks\ Callback:

    Trong phn ny cn mt s hm na s gii thiu sau.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 48

    Nhn vo nh ngha ca hm trong Editor ta s thy l: hm ny c thc hin khi nhn

    vo nt buttonCalculate.

    Hm c mt s tham s:

    hObject : handle ca iu khin buttonCalculate

    eventdata: d liu khi s kin xy ra.

    handles: l mt cu trc cha tt c cc iu khin v d liu ngi dng, dng

    truy xut cc iu khin khc.

    Qua thuc tnh tag ca cc iu khin ta s truy sut n thuc tnh string ca cc iu

    khin txtX, txtY, txtKetQua bng lnh get v set.

    get(handles.tag_dieu_khien, 'ten thuoc tinh');

    set(handles.tag_dieu_khien, 'ten_thuoc_tinh', gia_tri);

    Mt hm quan trng na bin t chui sang s: str2num v num2str bin tr li. Vy

    chng ta s vit hm nh sau:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 49

    Nhn nt Run kim tra kt qu:

    5. Cc tnh cht ca cc iu khin trong GUIDE Matlab hin ca s cc tnh cht Property Inspector ca mt iu khin, c 3 cch sau:

    Nhn p chut vo mi iu khin.

    Chn iu khin ri vo menu View, chn Property Inspector.

    Chn iu khin ri nhn vo biu tng Property Inspector, gn ch M-file editor.

    Khi , ca s Property Inspector s hin ra. Khi nhn vo cc iu khin khc th ca s

    ny s hin thng tin tng ng cho iu khin .

    Mt vi tnh cht chung ca cc iu khin m cc bn nn ch :

    Tnh cht (property) Gi tr (value) M t

    Enable on, inactive, off

    Mc nh l: on

    Xc nh khi no th iu khin hin th ln giao

    din. t = off, th iu khin s khng xut hin.

    Max Mc nh l 1. Gi tr ln nht, ty thuc vo tng iu khin.

    Min Mc nh l 0 Gi tr nh nht, ty thuc vo tng iu khin.

    Position Vector gm 4 phn t

    (left, bottom, width,

    height)

    Kch thc ca iu khin v v tr tng i ca

    n vi iu khin cha n.

    String Chui hin th

    Units n v o lng dng trong xc nh v tr.

    Value V hng hoc vector Gi tr ca component, ty thuc vo tng

    component.

    Ngoi ra, thuc tnh cc k quan trng m cc bn phi ch l tag. Thuc tnh ny chnh

    l tn ca i tng, l duy nht dng phn bit i tng ny v i tng khc.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 50

    6. Tng quan v hm Callback trong lp trnh GUI Sau khi to giao din xong th phn lp trnh rt quan trng, chnh l lp trnh cc hnh vi

    ca cc iu khin p ng li cc s kin nh nhn phm, ko thanh trt, khi chn

    menu, ... chnh l cc hm Callback (ging nh cc hm s kin trong cc ngn ng

    khc).

    a. Th no l hm Callback Callback l mt hm m khi vit miu t hnh vi ca mt thnh phn GUI xc nh hoc

    l ca chnh GUI figure, iu khin cc hnh vi ca chng bng cch thc hin mt s hnh

    ng c vit trong hm, p ng li mt s kin ca chnh thnh phn . Cch lp

    trnh ny thng gi l: Lp trnh li s kin (event driven programming).

    V d, khi bn nhn mt Button th v th, tnh tng, Vy th khi nhn phm th hin

    nhin gi hm Callback nhn phm ca Button , v trong hm Callback ny s thc

    hin lnh v th, tnh tng, tng ng.

    b. Cc loi hm Callback Mi thnh phn c nhiu hm Callback khc nhau, sau y lit k cc loi hm Callback

    v cc iu khin c th c hm ny.

    Callback property S kin xy ra Thnh phn c hm ny

    ButtonDownFcn Thc hin khi ngi dng nhn

    chut ln hoc trong 5 pixels ca

    component hoc figure. Nu l

    component th thuc tnh Enable phi

    on ( tt nhin ri ).

    Axes,figure,button

    group,panel,user

    interfacecontrols

    Callback Hnh ng ca cc component, v d

    nh thc thi khi ngi dng click ln

    Push Button hoc chn mt thnh

    phn menu.

    Contextmenu,

    menu,userinterface

    controls

    CloseRequestFcn Thc thi trc khi figure ng. Figure

    CreateFcn To cc thnh phn.N c dng

    khi to cc thnh phn khi n c

    Axes,figure,button

    group,contextmenu,

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 51

    to ra. N thc thi sau khi thnh

    phn hoc figure c to, nhng

    trc khi hin th ln trn giao din

    ngi dng.

    menu,panel,user

    interfacecontrols

    DeleteFcn Xa thnh phn. N c th c

    dng thc hin hnh ng xa b

    trc khi component hoc figure b

    hy b.

    Axes,figure,button

    group,contextmenu,

    menu,panel,user

    interfacecontrols

    KeyPressFcn Thc thi khi ngi dng nhn mt

    phm trong keyboard v component

    hoc figure ca hm callback

    ang c focus.

    Figure,userinterface

    controls

    KeyReleaseFcn Thc thi khi ngi dng nh mt

    phm ang bm v figure vn ang

    c focus.

    Figure

    ResizeFcn Thc thi khi ngi dng thay i

    kch thc ca panel, button group,

    hoc figure vi iu kin thuc tnh

    Resize ca figure = on.

    Buttongroup,figure, panel

    SelectiononChangeFcn Thc thi khi ngi dng la chn

    mt nt Radio Button khc hoc

    toggle button khc trong thnh phn

    Button Group.

    Buttongroup

    WindowButtonDownFcn Thc thi khi bn nhn chut (tri

    hoc phi) trong khi con tr vn nm

    trong vng ca s figure.

    Figure

    WindowButtonMotionFcn Thc thi khi bn di chuyn con tr

    trong vng ca s figure.

    Figure

    WindowButtonUpFcn Ban u bn nhn chut (tri, hoc

    phi) th khi nh phm ra th hm

    Figure

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 52

    ny s c gi.

    WindowScrollWheelFcn Thc thi khi nt cun ca chut cun

    trong khi figure vn trong tm focus.

    Figure

    7. Chng trnh Calculator C rt nhiu cch to ra mt chng trnh "My tnh bm tay" hay Calculator. V d

    sau y s hng dn to ra mt chng trnh my tnh bm tay n gin s dng k thut

    trng "Callback" trong lp trnh giao din GUI.

    S dng GUIDE, thit k giao din ca chng trnh nh sau:

    t thuc tnh cho cc i tng nh sau:

    - Edit Text: Tag=edit1 (mc nh); FontSize=20; Enable=Inactive; HorizontalAligment=right;...

    - t thuc tnh Tag ca tt c cc nt l: pushadd (ngoi tr 3 nt: "=" v "%" v "C")

    - Nt "=": Tag=pushequal

    - Nt "%": Tag=pushpercent

    - Nt "C": Tag=pushclear

    iu chnh kch thc v s dng cng c "Align Objects" sp xp v tr cc nt nh hnh

    trn.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 53

    Lu li fig-file vi tn mycalc.fig, trong file mycalc.m tm cc hm tng ng v thm vo

    cc lnh sau:

    % --- Executes on button press in pushadd.

    function pushadd_Callback(hObject, eventdata, handles)

    textstr = get(handles.edit1,'String');

    addstr = get(hObject,'String');

    newstr = strcat(textstr, addstr);

    set(handles.edit1,'String', newstr)

    % --- Executes on button press in pushequal.

    function pushequal_Callback(hObject, eventdata, handles)

    textstr = get(handles.edit1,'String');

    try

    set(handles.edit1,'String', eval(textstr))

    catch err

    set(handles.edit1,'String', err.message)

    end

    % --- Executes on button press in pushpercent.

    function pushpercent_Callback(hObject, eventdata, handles)

    textstr = get(handles.edit1,'String');

    try

    set(handles.edit1,'String', 100*eval(textstr))

    catch err

    set(handles.edit1,'String', err.message)

    end

    % --- Executes on button press in pushclear.

    function pushclear_Callback(hObject, eventdata, handles)

    set(handles.edit1,'String','')

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 54

    Lu li file mycalc.m v chy chng trnh. S dng chut click cc nt nhp vo mt

    php tnh, sau Click nt "=" thu c kt qu:

    Cui cng, Click nt "C" bt u mt php tnh khc.

    8. Kt chng Trong chng ny, sinh vin tm hiu cc vn lin quan n lp trnh giao din ngi

    dng. Thng qua tm hiu hm Callback, kt hp vi v d v chng trnh Calculator sinh

    vin s c ci nhn r hn v lp trnh giao din ngi dng GUI.

    Chng tip theo s gii thiu mt s phng php lp trnh x l vi Matlab.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 55

    CHNG 5. MT S PHNG PHP X L TNH TON TRN MATLAB

    1. Tnh nh thc ca ma trn Cho mt ma trn vung cp n. Ta cn tm nh thc ca n. Trc ht nhc li mt s

    tnh cht quan trng ca nh thc:

    - Nu nhn tt c cc phn t ca mt hng (hay ct) vi k th nh thc c nhn vi k.

    - nh thc khng i nu ta cng thm vo mt hng t hp tuyn tnh ca cc hng

    cn li.

    - Nu i ch hai hng cho nhau th nh thc i du

    Trc khi i n nh ngha v nh thc ta tm hiu khi nim v hon v v php th.

    Cho mt dy s, nu ta i ch cc s trong dy cho nhau th ta thc hin mt php hon

    hon v. V d 123, 132,.. l cc hon v ca dy s {1, 2, 3}. Trong hon v

    12ijn ta ni i lm mt nghch th vi j nu i < j m i > j. V d trong hon

    v 1432 s 4 lm vi s 3 mt nghch th, s 4 lm vi s 2 mt nghch th, s 3 lm

    vi s 2 mt nghch th. Mt hon v gi l chn nu tng s nghch th trong hon v

    l mt s chn; mt hon v gi l l trong trng hp ngc li. Nh vy 1432 l mt

    hon v l.

    Cho mt dy s, nu ta to ra mt dy s mi bng cch i ch cc phn t cho nhau

    th ta thc hin mt php th.

    V d

    32413412

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

    Mt php th gi l chn nu tnh chn l ca dng trn v dng di nh nhau v l

    trong trng hp ngc li. Php th trn l php th l.

    Cho ma trn vung [A] cp n. Cc phn t ca hng th i l ai,1, ai,2,,ai,n. Cc

    phn t ca ct th j l a1,j, a2,j ,, an,j. Ta xem hng th i l mt vector, k hiu l Ai* v ct

    th j cng l mt vec t, k hiu l A*j. Vi mi php th:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 56

    n

    n

    jjjiii

    p......

    21

    21 (1)

    ta lp tch:

    nn jijijiaaa ...

    2211 (2)

    Trc mi tch (2) ta t du + nu v du nu php th (1) l. Sau ta lp tng ca n!

    tch c du nh vy, ngha l tng:

    p

    jijijipt

    nnaaa ...)1(

    2211

    )( (3)

    trong :

    t(p) = 1 nu php th p l

    t(p) = 0 nu php th p chn

    Tng (4) c gi l nh thc ca ma trn vung [A], cp n.

    Ta xy dng hm determinant() tnh nh thc ca ma trn theo nh ngha:

    function d = determinant(A)

    % DETERMINANT tinh dinh thuc theo dinh nghia.

    [m, n] = size(A);

    if ( m ~= n )

    fprintf ( \n );

    fprintf ( Chi ma tran vuong moi co dinh thuc!\n );

    return

    end

    p = zeros(1, n);

    nf = prod([1:n]);

    d = 0.0;

    for i = 1:nf

    p = nextperm(p);

    s = permsign(p);

    x = diag(A([1:n],p)); 91

    d = d + s*prod(x);

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 57

    end

    function psign = permsign(p)

    % PERMSIGN tra ve dau phep the .

    % +1, neu phep the chan,

    % 1, neu phep the le.

    n = length ( p );

    psign = 1;

    for i = 1:n1

    j = i;

    while (p(j) ~= i)

    j = j + 1;

    end

    if ( j ~= i )

    temp = p(i);

    p(i) = p(j);

    p(j) = temp;

    psign = psign;

    end

    end

    function q = nextperm(p)

    n = length(p);

    q = p;

    if(n == 1)

    q = 1;

    elseif (q == 0)

    q = [1:n];

    else

    i = n 1;

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 58

    while (q(i) > q(i+1))

    i = i 1;

    if (i == 0)

    break; 92

    end

    end

    if (i == 0)

    q = [1:n];

    else

    j = n;

    while (q(j) < q(i))

    j = j 1;

    end

    t = q(j);

    q(j) = q(i);

    q(i) = t;

    q(i+1:n) = q(n:1:i+1);

    end

    end

    tnh nh thc ta dng chng trnh ctdeterminant.m:

    clear all, clc

    %a = [1 2; 3 5];

    a = [1 3 5; 3 4 6; 4 6 3];

    d = determinant(a)

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 59

    2. Nghch o ma trn bng cch dng Minor Cho ma trn [A], ta c:

    ]det[)( ,,

    1

    AA

    a ijji

    Trong : (a-1)i,j l phn t hng i, ct j ca ma trn [A]1 , Ai,j l phn b i s ca

    phn t ai,j ca ma trn [A].

    Ta xy dng hm minorinv() thc hin thut ton trn:

    function c = minorinv(a)

    % Tim ma tran nghich dao bang thuat toan minor

    n = size(a, 1);

    ms = det(a);

    for i = 1:n

    for k = 1:n

    b = cofactor(a, i, k);

    c(i, k) = b/ms;

    end

    end

    c = transpose(c);

    tm ma trn nghch o ta dng chng trnh ctminorinv.m:

    clear all, clc;

    a = [1 3 5; 3 4 9; 5 9 6];

    b = minorinv(a)

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 60

    3. Nghch o ma trn bng thut ton gauss-Jordan. Cho ma trn [A] v ma trn n v [E] tng ng. Dng ca ma trn [E] cp 4, l:

    1000010000100001

    E

    Nh vy, vn l ta cn tm ma trn [A]1. Phng php loi tr nhn c ma

    trn nghch o [A]1 c thc hin qua n giai on, mi mt giai on gm hai bc.

    i vi giai on th k:

    - Chun ho phn t akk bng cch nhn hng vi nghch o ca n.

    - Lm cho bng khng cc phn t pha trn v pha di ng cho cho n ct th k.

    Khi k = n th [A](k) s tr thnh ma trn n v v [E] tr thnh [A]1

    Ta xy dng mt hm nghch o invmat():

    function x = invmat(a)

    % Nghich dao ma tran a 102

    %Cu phap: x = invmat(a)

    k = size(a, 1);

    n = k;

    b = eye(n);

    a = [a, b];

    i = 1;

    while i

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 61

    c = a(k, i);

    a(k, i:2*n) = a(k, i:2*n) a(i, i:2*n)*c;

    end

    end

    i = i+1;

    end

    x(:, 1:k) = a(:, (1+k):(2*k));

    nghch o ma trn:

    211121112

    ][A

    ta dng chng trnh ctinvmat.m:

    clear all, clc

    a = [ 2 1 1; 1 2 1; 1 1 2];

    b = invmat(a)

    4. Lp trnh giao din: Gii phng trnh bc 2 Chy Matlab, vo Menu File\New\GUI s thy hin ra hp thoi sau:

    Chn Blank GUI, nhn OK.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 62

    Trong hp thoi hin ra, ko th cc iu khin Push button, Edit Text v Static

    Text vo figure nh giao din sau:

    Mi iu khin u c nhiu thuc tnh, c 2 thuc tnh quan trng nht l: Tag,

    String. Tag l thuc tnh ch a ch ca iu khin (dng gi khi cn). String l thuc

    tnh cha ni dung (s c hin th ra ngoi) ca iu khin. Sau y ta t cc thuc tnh

    ny:

    - Push button 1:

    + Tag : start

    + String : Bat dau

    - Push button 2:

    + Tag : close

    + String : Close

    - Edit Text 1:

    + Tag : heso_a

    + String : (xa trng)

    - Edit Text 2:

    + Tag : heso_b

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 63

    + String : (xa trng)

    - Edit Text 3:

    + Tag : heso_c

    + String : (xa trng)

    - Edit Text 4:

    + Tag : nghiem_x1

    + String : (xa trng)

    - Edit Text 5:

    + Tag : nghiem_x2

    + String : (xa trng)

    - Static Text 1: (i vi cc Static Text thuc tnh Tag khng quan trng, tr cc trng

    hp c bit)

    + String : Giai phng trinh bac 2: ax2 + bx + c = 0

    - Static Text 2:

    + String : a =

    - Static Text 3:

    + String : b =

    - Static Text 4:

    + String : c =

    - Static Text 5:

    + String : Ket luan

    - Static Text 6:

    + Tag : kl

    + String : (xa trng)

    - Static Text 7:

    + String : x1 =

    - Static Text 8:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 64

    + String : x2 =

    - figure: (click p vo nn ca figure):

    + Tag : fig1

    + Name : Giai phng trinh bac 2

    Sau khi t cc thuc tnh, cn chnh (s dng chut hoc cng c Align Objecs)

    c figure c dng nh sau:

    Lu li figure (Menu File\Save) di tn GPTB2.fig. Sau Matlab t sinh file

    GPTB2.m; trong file ny tm hm start_callback v nh vo cc dng lnh sau:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 65

    Hm set l hm t thuc tnh cho iu khin.

    Hm get l hm ly gi tr thuc tnh ca iu khin

    Hm str2double l hm bin chui thnh s

    Cui cng ghi li file m (GPTB2.m) v chy chng trnh (nhn F5 hoc nt run hnh

    tam gic mu xanh). Nhp vo cc h s a, b, c v click nt Bat dau xem kt qu.

    5. Kt chng Trong chng ny, sinh vin lm quen vi mt s phng php lp trnh phc tp trn

    Matlab. Thng qua cc v d, sinh vin s c iu kin hiu r hn cc phng php x l

    lp trnh trn Matlab hin nay.

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 66

    PH LC Hng dn s dng cng c Simulink

    Simulink l mt cng c trong Matlab dng m hnh, m phng v phn tch cc

    h thng ng vi mi trng giao din s dng bng ha. Vic xy dng m hnh c

    n gin ha bng cc hot ng nhp chut v ko th. Simulink bao gm mt b th vin

    khi vi cc hp cng c ton din cho c vic phn tch tuyn tnh v phi tuyn.

    Simulink l mt phn quan trng ca Matlab v c th d dng chuyn i qua li trong

    qu trnh phn tch, v v vy ngi dng c th tn dng c u th ca c hai mi

    trng.

    C th m Simulink bng 2 cch:

    - Click vo biu tng nh hnh di (Simulink icon)

    - T ca s lnh, nh lnh simulink v enter

    Ca s th vin Simulink s hin th:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 67

    To mt m hnh mi bng cch:

    - Click vo icon New model hoc g Ctrl-N

    - Menu File\New\Model

    Ca s xy dng m hnh xut hin:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 68

    To cc khi: t th vin Simulink chn khi cn dng, nhp chut vo v ko ra ra ca

    s m hnh:

    Lu tr m hnh bng lnh Save (File\Save) hoc nhp vo icon Save. Dch chuyn cc

    khi n gin bng cch nhp vo khi v ko th:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 69

    Ni tn hiu: a con chut ti ng ra ca khi (du >), khi con chut s c dng

    +. Ko r chut ti ng vo ca mt khi khc v th ra kt ni tn hiu.

    M phng m hnh: Dng lnh Start (Menu Simulation\Start) hoc nhp chut vo

    icon Start

    Xem tn hiu t Scope: nhp i vo khi Scope:

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 70

    Chnh thng s ca mt khi bng cch nhp i vo khi cn chnh

    Trc khi m phng m hnh Simulink, chng ta cn t cc thng s m phng bng

    cch chn menu Simulation Configuration Parameters

    ca s Configuration Parameters, chng ta c th t mt s thng s nh Start time,

    Stop time (second giy), v phng php gii Solver, Solver options,.. sau nhn nt OK

  • Gio trnh Matlab cn bn Thi Duy Qu

    Trang 71

    TI LIU THAM KHO

    [1].Phan Thanh Tao, Gio trnh Matlab, i hc Nng, 2004

    [2].Trn Vn Chnh, Matlab ton tp, i hc Bch Khoa h Ni, 2005.

    [3].Ebook, The Student Edition of Matlab, Mathworks, Inc;

    [4].Brian R. Hunt Ronald L. Lipsman JonathanM. Rosenberg, A Guide to MATLAB

    for Beginners and Experienced Users, Cambridge University Press, 2001.

    [5]. http://www.mathworks.com.

    V mt s ti liu tham kho khc trn Internet.