You are on page 1of 486
NGUYEN PHUNG QUANG OU DANH CHO KY SU DIEU KHIEN TU DONG 28 ( / = Simulation ——___] the State ofthe Art =” Nguyén Phiing Quang MATLAB & Simulink danh cho ky su diéu khién tu dong In lan thit 4 c6 sta chita NHA XUAT BAN KHOA HOC VA KY THUAT HA NOI - 2006 Li ndi dau Déi véi ky su diéu khién - tu dng héa néi riéng va nhiing ngudi nghién ctu Khoa hoc — ky thuat néi chung, mé phéng 1A céng cu quan trong cho phép khao sat cde déi tugng, hé théng hay qué trinh ky thuat — vat ly, ma khong nhat thiét phai c6 déi tugng hay hé théng thyc. Dude trang bi mot cong cu mé phong manh va cé hiéu biét vé cdc phuong phdp mé6 hinh héa, ngudi ky su sé co kha nang rut ngan théi gian va giaim chi phi nghién ciru ~ phat trién sin pham mot cach dang ké. Diéu nay dac biét c6 y nghia khi san pham la cac hé théng thiét bj ky thuat phic hgp véi gia tri kinh 6 lén. Cac khai niém m6 phéng Off-Line, Software-in-the-Loop, Hardware-in-the-Loop (hay Real Time Simulation: mé phéng théi gian thuc) va Prototyping, da thé hign ré nét cdc bude cia qua trinh phat trién san pha véi su hé tre cba may tinh. Trong nhiéu nam qua, nguéi bién soan séch nay di stt dung phdn mém mo phéng MATLAB & Simvlink trong hoat déng nghién edu — phat trién thuc tién va gidng day ca minh. Dac biét, khi diéu kin thi nghiém tgi trudng dai hoc nude ta cdn rat thidu thén, phan mém trén di g6p phan hitu ich trong qua trinh dao tao cac ky su di in - tu dong héa. Tuy nhién, vide thidu mét tai ligu tham khao thfch hgp di han ché hiéu qua dao tao. Véi MATLAB & Simulink ta 6 trong tay mot céng cu mé phéng manh kém theo tdi ligu duéi dang files .pdf v6 cing chi tiét va phong phi. Nhuge diém chink cia ede tai ligu 46 1a: 1 Ching khéng hé truyén dat cho ngudi doc kién thite vé phuong phap mé hinh hoa; 2. Chéng qua chi tiét, dén mie tn man, va vi vay 4 lam mat khong ft thai gian cita ngutai hoc. Nhu cdu vé mét tai ligu bing tiéng Viét, khiic phuc duge hai nhuge diém dé, 1a nhu edu bite xtic cha qua trinh dao tao, khién tac gia dat quyét tim bién soan cudn sich nay CuGn sach bao gém ba phan chin: 1. Phan cd sd vé MATLAB va mét vai Toolbox quan trong. Phan nay gim cae chung 1 — 5 2. Phan gidi thigu Simulink va céc thu vién di kem. Phin nay gém cée chuang 6 ~ 9. 8. Phin gidi thiéu Motion Control Blockset, cong cu khao sat cdc hé thong diéu khién chuyén dong. Phan nay gém cdc chong 10 ~ 12. Phan 1 va 2 dutge bién soan chi yéu dua trén nén gido trinh vé MATLAB (tai ligu [1]) cha dai hoc Miinchen (CHLB Dic). Phan 3 bao gém cc két qua nghién cau cba ban than téc gid, cita déng nghiép (tai ligu [9]) va cia sinh vién tai dai hoc Bach Khoa Ha Néi. Néi dung dv kién ban dau ca sach cdn bao gém hai ‘Toolbox quan trong 1a Real-Time Workshop, Statéffow Blocksct. Tuy nhién, dé gidi han kich cd sch va théi gian bién soan (trong khi sinh vién dang trong ddi tai liéu hoc) nén ngudi viet tam ngig lai d khéi lugng 12 chuong. Cac ndi dung con thigu sé duge bé sung d lan tai ban sau nay. Can phai khang dinh rang MATLAB khéng phai 1A m9t ngén ngut lap trinh, mac di phan mém nay cing eé cde kha nang cha mét ngén ngit lap trinh bac cao: MATLAB & Simulink trude hét 18 mot c6ng cy todn $6, véi thé manh tinh to”in va md phong hé théng. Dat muc tiéu han ché vao déi tugng ban doc chinh la sinh vién va ky su nganh diéu khién - tu dong héa, cudn sach thé hién manh trén cua bé phén mém. Khi bién soan, ngudi viét 2 ging van dé mét cach dé hiéu va ting bude déu cé minh hoa béi vi dy di kém. Dé bao dam tinh chinh x4e, ngudi viet tu tay minh thutc hign lar tat ca cac vi du (st dung MATLAB phién ban 6.0/rel. 12, Simulink phién ban 4.0). ‘Tae gid cdm on Dipl.-Ing. (Uni.) J. Meyer (Dresden, CHLB Dutc) d& cho phép sit dung cae mé hinh cia minh. Xin cam dn TS. Trin Thi Thu Hugng, ban doi cia tac gid, ngudi da ludn dong vién va tao diéu kién dé tac gia hoan thanh sach. Cam an chi Nguyén Thi Ngoc Khué, Nha xuat ban Khoa hoc va Ky thud da hgp tac va tao diéu kign dé sch nhanh chéng ra mat ban doc. Xin nhan manh lan cudi dac diém bién soan cia cuén sach: Dé nhanh chong 6 sach phuc vu cho sinh vién (é6i tugng ban doc chinh), tac gid da bién chi yéu dua trén cdc tai ligu cba nhiéu tac gid xudt ban 6 nude ngoai. Trit mot sé két qua cia cac nghién citu tg dung cu thé, cuén sach noi chung khong mang dac diém cong trinh khoa hoc ca ca nhan ngudi bién soan. Tuy nhién, hy vong da cung céip cho ban doc, cho nguai hoc mot tai ligu tham kh3o c6 ich. Da da duce viét kha can than, sach icho tranh khoi cn nhing sai s6t. Moi Joi gop y, nhan xét hay dé xudit bo sung nhdAm hoan thién sach, xin ban doc giti vé Nha xuat ban Khoa hoc va Ky thuat, hay vé Phong thi nghiém trong diem vé Ty déng héa — Trudng dai hoc Bach khoa Ha Néi, xin chan thanh cam dn. Ha N@i, hé Quy Mui 2003 Tae gid Tai ban (dn thit hai Sau khi tai bin Kin th nhat, cuén “MATLAB & Simulink danh cho ky i khién ty dong" tigp tuc dude ban doc tran trong sit dung va da ching té — aac biét adi vdi ban doc sinh vién trong ci nude ~ duge tde dung tham Khao tét trong qué trinh hoe tap. Dé kip thdi tiép tue phue vy nhu ci ngudi hye, Nha xuat ban Khoa hoc va Ky thuat cing vdi tac gia quyét dinh tai ban cudn sach lan thit hai, sau khi da higu dinh va bd sung ndi dung. Trong khoang théi gian hon mot nam qua, linh vile mé phéng trén nén MATLAB & Simulink Iai tiép tuc e6 thém nhitng bude phat trién méi, Tae gid du kin sé bd sung thém cae ngi dung dé vao lin tai ban tiép theo, Xin chan thamh cam an ban doc da sit dung sach. Ha Néi, thang 10/2005 Tae gid Muc luc Lai nei dau ‘Trang PHAN A MATLAB VA CAC TOOLBOX 1 Co sé vé MATLAB 1 1 Nhiing bute di dau tin véi MATLAB 1 L11 Man hinh MATLAB 1 112 Sgn ich tr¢ gitip (Help) cla MATLAB 3 113 Cicbién 4 114 Cac ham toan 8 12 Vector va ma trin 6 121 Tinh toan véi vector va ma tran 8 13 Cat trie va truong 10 131 Cau trde 10 1a2 Trutng 12 a4 Quan ly bién 13 Le Cac phép so sanh va phép tinh logic 4 16 Re nhanh va vong lap 16 1.6.1 Lénhré nhanh :£ vA switch 16 16.2 Vong lap sit dung for va while 16 16.3 Gian doan bing cont inue va break 17 7 Cae Scripts va cac ham cha MATLAB 18 L7.1 Cae Seripts cha MATLAB 18 17.2 Cachameda MATLAB 19 18 Tom tit ndi dung chugng 1 20 2 Xust va nhap dif ligu trén man hinh 23 21 Diéu khién xuat ra man hinh 23 22 Déi thogi cia MATLAB véi ngudi sit dung 24 2.21 Van bin (Text) trong MATLAB 25 2.2.2 DSi thogi khi nh§p van ban 25 224 — Xuat theo dinh dang 26 23 Nhap va xuat da ligu 27 2.3.1 Cat vao hoac goi di ligu tt File a1 2.3.2 Cait e6 dinh dang vao File van ban 28 24 Hé diéu hanh va quan ly File 29 3.3.2 3.3.3 3.3.4 I Biéu dién bing &é hoa Cita sé Figure - co s6 cba dé hoa MATLAB Truc va dién ky ty cho tryc Dé hoa 2 chiéu (2-D Graphics) Cac lénh vé (Plot Commands) ‘Vi dy: Khau quan tinh bac nhatt PT,, va khau tf 18 — vi phan PD Dé hoa 3 chiéu (3-D Graphics) Cac lénh Plots Phéi canh (Perspective) trong dé hoa 3-D hea 3-D c6 phdi cinh Nhap, xuat va in dé hoa Giao dién a6 hoa Layout (dién mao) cha GUI Nhap va xudt ky tu, 86 ligu ra GUI Nhap sé liu ti thanh trugt (Slider) Nhap di ligu tay chon (Popup Menu, List Box, Radio Button and Check Box) * Cac phuang phap tao GUI Tém tat ngi dung chuong 2 Control System Toolbox: Céng cu khdo sét - thiét ké he théng diéu khién M6 hinh héa céc hé tuyén tinh ~ ding (hé LTD) M6 hinh truyén dat M6 hinh diém khong - diém cue M6 hinh trang thai Mo hinh da ligu dac tinh tan sé Mo hinh gin doan theo thai gian ‘Thii gian tré trong cdc hé tuyén tinh — ding (hé LTT) Nguyén tac sit dung mé hinh LTI Dac diém cia mé hinh LT! ‘Truy cap nhanh dé ligu cia mé hinh ‘Trinh tu uu tién eda mé hinh LT ‘Tinh ké thi céa mé hin LTT Dio loai cho m6 hinh LT C&v phép tinh 86 hoc Lya chon, thay déi va ghép néi mé hinh LTT Chuyén d6i gitta hai hé lién tuc va gidn doan vé thai gian Khéo s4t mé hinh LTT Cac dac diém téng quat Khao sét dng hoc cia mé hinh Dap ung cia hé trén mién thai gian Dap tng cia hé trén mién tén so 30 30 32 34 34 36 38 38 39 39 41 43 43 44 47 49 53 62 65 65 66 68 71 72 4 16 79 79 83 83 84 85 85 87 92 96 98 104 109 4.8.1 4.3.2 44 45 46 47 48 51 5.2 B21 5.2.2 33 5.4 5.4.1 5.4.2 5.5 5.6 PHAN B 6.1 6.2 MG hinh gidm bac Cae phung ph4p mé ta trén khong gian trang thai ‘Thiét ké vong diéu chinh Thiét ké theo phugng phap quy dao diém cyc ‘Thiét ké theo phutong thite d6i thogi gita nguai va PC Diéu khién va quan sat trang thai ‘Thiét ké theo phugng phap gan cute ‘Thiét ké theo tiéu chudin tich phan téi wu Cc van dé khi tinh toan sé Khai niém 16i Khai nig diéu héa mé hinh Tinh én dinh 36 hoc Danh gid mé hinh LT! theo quan diém tinh so ‘Tom t&t ngi dung chuong 8 Optimization Toolbox: Céng cy tinh toan tim tdi uu Inline Objects Diéu khién chuat toan Tim diém khong Ham scalar Ham vector va hé phudng trinh ‘Tim eve tiéu cho ham phi tuyén Tim eye tiéu khi c6 diéu kién pho Phuong phap binh phutang sai phan bé nhit ‘Tim bg tham s6 tdi tu cho mé hinh SIMULINK ‘Tom tt ndi dung chong 4 Signal Processing Toolbox: Céng cy xif}¥ tin hlgu Phuong phap ndi suy (Interpolation) Bign déi Fourier gin doan Phuong php Averaging Phuong phép tao cita s6 s0'ligu Ham tuong quan (Correlation Functions) Loc sé (Digital Filter) Bé loc FIR va ham cita sé B6 loc IIR Loc tuong ty (Analog Filter) ‘Tom tat ngi dung chuang 5 SIMULINK VA CAC THU VIEN Ca sd vé SIMULINK Khéi dong SIMULINK Tao méi va soan thao hru dé tin higu ig 122 126 127 131 132 134 140 147 147 148 149 150 150 153 153 155 187 157 161 166 170 177 185 289 191 191 194 196 198 200 205 206 209 211 212 213 213 216 mm 63 6.3.1 6.3.2 6.4 641 6.4.2 65 66 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 67.1 6.7.2 6.7.3 6.7.4 68 mM 72 13 14 15 16 2 78 8.1 82 83 8.4 84.1 B42 eeoe be IV ‘Tin higu va cdc loai da ligu Lam vige véi tin higu Lam viéc véi cae logi sé liu ‘Thi vién SOURCES va SINKS Thy vién SOURCES ‘Thu vién SINKS ‘Thu vién Math Chuan bj mé phéng: Khai bao tham s6'va phutong phap tfc phan Khdi dong va ngiing rd phong Xit ly 16% ‘Tap hgp céc tham s6 trong Script cla MATLAB Vidu In mé hinh SIMULINK Hé théng con (Subsystem) Tao hé théng con Thu vign Signals & Subsystems Kich hoat ¢6 diéu kign cdc hg thdng con Danh dau cfc hé con (Mask Subsystems) Tom tat noi dung chuang 6 Cac hg théng tuyén tinh va phi tuyén ‘Thu vign Continuous ‘Tuyén tinh hoa Xac dinh diém can bang Thy vién Nonlinear Thu vién Function & Tables Vang quin dgi 6 Ham § (S-Functions) ‘Tom tat ndi dung chuong 7 Cac hé théng trich mau (hé gidn doan) Cac kbai niém téng quan ‘Tham s6 mo phong ‘Thu vién Discrete Hé c6 chu ky trich mau hén hop va hé lai Hé cé chu ky hdn hop He lai ‘Tom tat ndi dung chugng 8 Phan tich va téng hdp vang diéu chinh Dong co mgt chiéu kich thich ade lap Khai béo lp tri ban déu ‘M6 hinh SIMULINK 217 27 220 220 220 224 230 233 241 242 B43 243 246 246 246 247 251 254 256 287 257 261 263 265 268 271 272 281 283 283 284 286 287 287 288 290 291 291 292 293 10 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 " wl 11.2 11.3 14 115 12.1 12.2 12.2.1 12.2.2 12.2.3 12.8 Khao sit dong hoc cia d6i tung Khao sat bang SIMULINK Khdo sat bing MATLAB str dung mé hinh tuyén tinh hoa Khao sat mé hinh LT! qua déi thoai voi LT!-Viewer gu chinh véi nhiéu ving phan cap (Cascade Control) Diéu chinh dong phan ting Diéu chinh t6c d6 quay Quan sat trang thai Khau quan sat Luenberger Khu quan sat nhiéu (QS phy tai) Diéu khién trang thai si dyng khau quan sat trang thai ‘Tom tat noi dung chung 9 MOTION CONTROL BLOCKSET: CONG cu KHAO SAT CAC HE THONG BIEU KHIEN CHUYEN BONG Thu vin mé hinh may dién quay Khai quat vé Motion Control Blockset. Méy dign mét chiéu kich thich ddc lap May dién khéng déng bé6 xoay chiéu ba pha May dign déng b§ ba pha kich thich vinh citu May dién déng bé ba pha kich thich déc lip May din khéng dng bé ngudn kép ‘May dign tir khang kiéu dong ngat ‘Tom tat néi dung chttong 10 Thu vign mé hinh thiét bi bién déi (dién tu cdng suat) MG hinh cau chinh luu 6 xung cé diéu khién cat pha MG hinh nghich uu bam xung nguén 4p MG hinh nghich Iuu ngudn déng nudi MDDB Mé hinh thiét bj bién doi truc tiép nudi MDDB va MDDB ‘Tom tat noi dung chuong 11 Thu vién mé hinh phn co va vi dy tmg dung cia Motion Control Blockset ‘Tht vign mé hinh cdc phan tit truyén dong ca hoe Vai vidytingdung Mé phéng mét true chuyén dong cia tay may sit dung MDDB M6 phéng hé théng phat dign chay stie gid sit dung MpDB-RDQ M6 phéng hé truyén dong di b6 theo phutang php “Direct Torque Control” sit dung Logic ma ‘Tom tat ndi dung chuong 12 294 294 295 298 300 301 3038 306 308 310 313 318 401 404 404 409 419 487 v 1 na 11.2 11.3 Tai ligu tham khao ‘Tai liu tham khio chung Céc ti ligu dui dang .pdf-Files Cac luan van, dé an tét nghiép tai DHBK Ha Noi da gop phan xay dung Motion Control Blockset Danh myc tirtra citu 469 469 470 AT 473 1 Cosévé MATLAB MATLAB 1a mét 66 chuong trinh phan mém ldn cia linh vyc ton 6. Tén bé chutong trinh chinh la chit viét tt th MATrix LABoratory, thé hién dinh huéng chinh cia chang trinh 1a cdc phép tinh vector va ma tran. Phin cét Idi ca chung trinh bao gém mét so him ton. cdc chite nang nhap/xudt cding nhu céc kha nang diéu khién chu trinh ma nhd dé ta o6 thé dung nén cde Seripts. ‘Them vio phan cét Idi, cé thé mua b6 sung cdc Toolbox’ (b6 cong cy) voi pham vi chite ning chuyén dung ma ngudi sit dung cin. Tai liu nay sé chi gidi thigu han ché mgt s6 Toolbox lién quan téi Didu khién - Ty déng héa nhu: Control System Toolbox, Signal Processing Toolbox, Optimization Toolbox, Stateflow Blockset, Power System Blockset, Real-Time Workshop va SIMULINK. SIMULINK 1a mt Toolbox c6 vai tro dac biét quan trong: Vai tré cha mét céng cu manh phy vy mé hinh héa vd mé phéng cdc hé thong Ky thudt — Vat ly trén cd sd 0 dé cau tric dang khéi. Cing vdi SIMULINK, Stateflow Blockset taocho ta kha nang mé hinh héa vi mé phéng céc automat trang thai hitu han, Cuéi timg chiang, muc sé c6 phan téng két lai tat ca cdc 1énh quan trong nbat, gidp ban doc hé théng héa lai ndi dung cia chuong, muc d6. Cang cin phai quy wdc trude: Cac bién sé luén duge viet nghiéng va cac tham sé duge viet trong ngoac vudng [ ]. Phdn ma cia MATLAB cing niu cfc sé ligu nhap/xust duge phan biét nhd dang chit ddnh 1.1. Nhig buéc di d4u tién v6i MATLAB 4.4.4. Man hinh MATLAB Sau khi khdi dong matlab ta thu duge man hinh MATLAB, méi trudng tich hgp vai nbiing cita s6 chinh hv hinh 1.1, Dé co man hinh dé, ta lin lugt chon. menu: View, Desktop Layout, Five Panel. Cita sé lénh Command Windows ©: Day IA cita sé chinh cia MATLAB. Tai day ta thue hign toan bé viée nh4p dit ligu va xudt két qua tinh toan, Déu nhdp nhay >> bao higu chugng trinh san sang hoat dong: * Cho ¥: Ngudi bién soan sich chi trudng sit dung nguyén tit gée. Nghia dich trong ngode chi 66 gia tri tham khio. 2 1 Cy sd vé MATLAB >> (4003 + 3*2e3) / 7 ans = 1000 Méi lin nhap dit ligu duge két thac bang dong tac nhaén phim ENTER. Nguyén téc “nan, chia thuc hign trudc cOng, trif* va thit ty ww tién cha dau ngofe vin nin binh thing. $6 ¢6 gid tri Idn thudng duge nhap véi him e mo (c6 thé viét E). Cé thé két thic chung trinh bing cach déng man hinh MATLAB, hoe goi lénh quit, exit, ho&e nha td hgp phim Ctr1+q. Cea a i tical TL De, Kae Ye ee Ee PO] ke |! 8 lemme Sa fs Gore Pee fp eau aetinarah mt a mia Biren = |] s+ se 3 are cos » pdnowese lee Ferme tienes bdeudee Sinners Wp sional Proces: — fe fo ter iw tee foasee we OP 0686) i derclah/ Gd Geroe|max . 5 tied omen: Hinh 11 Man hink MATLAB Cita sé soan thio Editor @: Nhé chuong trinh soan thao cia MATLAB ta 06 thé viét méi, hay xif ly sita déi cde Scripts va céc ham. Bén canh chic nang sogn thao, cdn 6 cde chtte ning thong thudng khae ma mot mdi trudng soan thao chuiong trinh cin phai ¢6, phuc va xt ly tiing bude ngi dung chugng trinh, hhay dé phat hign 16i Cua sé qua kh Command History @: Tat ca cdc lénh da sii dung trong Command Windows ® duoc luu gitt va hién thi tai day. Co thé lap lai lénh ca bang céch nhdy chudt kép vao Iénh d6. Cang c6 thé cit, sao hoge x6a cd nhém Jenh hode titg lénb riéng ré. Cita s6 moi tring cong tic Workspace Browser @: Tat ca cic bién, eae ham tén tai trong moi tring céng tac déu duge hién thj tai cita s6 nay v6i day L1_Nhtng bude di du tien voi MATLAB 3 di thong tin nhu: tén, loai bign/ham, kich c3 tinh theo Bytes va loai dit liu. Ngoaii ra edn c6 thé céit vao bo nhd cae dif ligu d6, hode stt dung chite nang Array Editors (sean thio mang) dé thay ddi cdc bién. Cita sé Launch Pad @: Cita sé nay cho phép ngudi sit dung truy cap nhanh ce cong cu cia MATLAB, phn Help (trg gitp) hodc Online Documents (tai ligu Sn), md Demos (chuong trinh trinh dién), Cua sé thy muc hién tai Current Directory Browser ©: Nhé ctia s6 nay, ngudi sit dung ¢6 thé nhanh chéng nhan biét, chuyén déi thy’ myc hign tai cua méi trudng cing tac, md File, tgo thu muc méi. Trén chi thuan tay 1a vi dy vé m6t kha nang tao man hinh céng tac, Nho menu View, ngvtéi sit dung c6 thé thay déi linh hogt man hinh MATLAB cho phit hgp véi théi quen va nhu cau sti dung cia ban than. 1.1.2 Tién ich trg gitip (Help) cia MATLAB ‘Tien ich Help ciia MATLAB 18 v6 cing phong phit. Tay theo nhu cu, hose ggi help [command] dé xem noi dung hé try eda lénh command tryc tigp tren Command Windows, hoae sit dung céng cu truy cap Help (hinh 1.2). Be Et Vow Go Wek Wado ob react © AAC Seed sa Fan | ae Se ote vanes FI —T] tof seams] | | fiataaroateanemenees cts Tae | sym eiase Wares 3 lector Deserption 1 = dopa ese a ater 4 lopasrn one ears # x Fecal neaehe Examples Testament aeeg(-)) a ceverware ere | * pages ecanbewes Hinh 1.2 Cita s6'truy egp Help cia MATLAB (goi doc 4 1 Co sd vé MATLAB. C6 thé goi ctta sé 4 hinh 1.2 bing cach goi trén menu, goi lénh helpwin hay doc tric ti Command Windows, Bang lénh lookfor searchstring ta c6 thé tim chudi kj tu searchstring trong ding dau cia moi MATLAB Files trong thy mye MATLAB: >>help log LOG Natural logarithm LOG(X) is the natural logarithm of the elements of X. Complex results are produced if X is not positive. See also LOG2, LOG10, EXP, LOGM jaded methods help sym/log.m >> Céc Ignh lién quan tai tign ich Help duge tap hgp trong bang sau: Help help [command] Tién ich Help truc tuyén clia MATLAB trong cita sé 1énh Command Workspace helpwin [command] _Tién ich Help truc tuyén cia MATLAB trong cia sd truy cap Help doc (command) Tu ligu truc tuyén cia MATLAB trong ctta s6 truy cap Help look£or searchstring Tim chudi ky tu searchstring trong ding dau tién cua moi MATLAB Files trong thu. myc MATLAB 1.1.3 Cac bién Thong thudng, két qua cia cae bin duge gin cho ans. Sit dung dau thé dinh nghia mét bién, déng thai gan gia tri cho bién dé. Khi nhap té: n ma khéng gan gid tri, ta thu duge gia trj hién tai cha bién. Tat ca cic bién déu 1a bién global trong Workspace. Ten cua bién cé thé chia tai 32 chit cai, gach ngang thap () cing nhu chit s6. Chit vist hoa to va chit viét nhé déu dude phan biét. Vige nhp gid tri c6 thé duge thuc hign thinh mét chudi lgnh trong cing mot dong, chi cach nhau bdi dau (). Néu str dung déu phéy (.) dé tach céc enh, khi Ay cde gid tr sé duge xudt ra man hinh: 1.1 Nhaing buée di diu tién véi MATLAB 5 >>variable_1 = 25; variable_2 = 1 >> variable 1 variable 1 = 25 >a = A = variable_1 / variable 2 35 A 2.5000 Mét s6'tén bién nhu: pi, i, j va inf da duge MATLAB ding dé chi cac hing sb hay ky hiéu, vay ta phai tranh sth dung ching, Dbi vdi cdc phép tinh bat dinh (vf du: 0/0), trén man hinh sé hién két qué NaN (Not a Number). eps cho ta biét cap chinh xac twang déi khi biéu dién sé v6i d&u phdy dong (vi du: eps = 2.2204e-016): 1/6 % Inf; infinite (vd cung) Warning: Divide by zero. ans = Inf 20/0 % NaN; not-defined (bt dinh) Warning: Divide by zero. ans NaN Cac ky higu = Gan gia tri cho bién eorse Cae phép tink ; Nhap gid trj (con gidt vai tro dau cach khi nhap nhiéu gid tr] trong cng mot ding) Dau cch khi xudt nhiéu gia trj trong cling mot ding eps Cap chinh xc tudng déi khi sit dung gia tri phay dong ig Toan tit do ant V6 cing (2) Nan Not a Number Pi Hing 36 x | 1.1.4 Cac ham toan Chuong trinh MATLAB cé sn rét nhiéu ham todn tap hop trong bang sau day. Dé xem ky hon, ban doc c6 thé su dung céc Iénh help e1 fun hode help datafun. Tat ca céc ham trong bang déu cé kha nang sit dung tinh vdi vector. 6 1 Co sd vé MATLAB. Cac ham toan Can bac hai ram(xy) 36 du cia phép chia xly Ham mii co round@) Lam tron sé Log(x) Logarithm ty nhién ceili(x) Lam tron lén 1og22(x) Logarithm cd sé'thap phan fioor(x) — Lam tron xuding | absta) Gia tri tuvét dé sumv) ‘Téng cac phan tit vector signix) Ham dau prod(v) ——_Tich ede phan tit vector real(x) Phan thye min) Phan tit vector b imag(x) Phan do max(v) Phin tit vector lén nhitt phace(x) Géc pha cita sé phic mean(y) Gi tri trung binh cng Cac ham lugng gia sin) Ham sin atan(z) Ham aretg +90” cos) Ham cos atan2(cy) Ham aretg +180° tan(x) Ham tg sinc(x) Ham sin(x)/(xx) 1.2 Vector va ma tran MATLAB cé mét sé lénh dac biét dé Ithai bao hode xit ly vector va ma tran, Cach don gidn nhat dé khai bao, tao nén vector hoac ma tran 1a nhAp truc tip. Khi nhap true tiép, cic phan tit cba mét hang dude each bdi déu phay hoac vi tri cach bé trong’, cdc hang dude cach béi dau (;) hoac ngat dong. 3 y ix = [my_vector; § 67 ny_matrix = 1 2 3 5 6 7 Vector c6 cae phan tit tiép dién véi mét bude nhiit dinh, e6 thé duge nhap mot edich dan gidn mhi toan tit (:) nhut sau (start: increment: destination), Néu chi nh4p start va destination, MATLAB sé tu dong dit increment la +1 Cung cé thé nhap cae vector tuyén tinh cang nhu vector cé phan hang logarithm bing cach ding Iénh linspace(start, destination, number*) va logspace. Déi vdi logspace. start va destination dude nhap bii sé ma thap phan, vi du: thay vi nhap 100 (=10°) ta chi cin nhap 2: ‘trong moi truting hop khée MATLAt ® (uct phat-lbude:ldich) 3 $6 lugng phan tit eta vector sé bé qua vi tri each bd trdng 1.2 Vector vA ma tran 71 >> long = 1:8 long = 22345678 >>deep = 10:-2:0 deep = 10 @ 6 4 2 0 >> longer = linspace(1,19,10) longer = 13°95 7 9 12 13 45 17 19 >> increase = logspace (1, 2,5) increase = 10.0000 17.7828 31.6228 56.2341 100.0000 Bing cdc ham ones(line, column) va zeros(line, column) ta tgo cae ma tran cé phan tit la 1 hoc 0. Hm eve(line) tgo ma tran don vi, ma tran toan phuong véi cic phdn tit 1 thuge dudng chéo, tét cd cdc phéin ti odn lai la 0. Kich od cha ma trfin hoan toan phy thude ngudi nhap: >>two_three = ones (2, 3) two_three = aid aiid Vige truy ofp ting phén ti cla vector hofe ma trgn duge thyc hién bing céch Khai bio chi 26 eta phan tit, trong dé én Iuu ¥ ring: Chi s6 bé nit 1a 1 chit khéng phi la 0. Dac biét, khi edn xudt ting hang hay ting cdt, ob thé sit dung toan tit () mot ofch rat Igi hai. Néu diu-() ding mét minh, diu By 06 nghia 14: Phai xudt moi phn ti thuge hang hay 6 >> my_matrix (2,3) ans = 7 >> my_matrix(2,:) ans 5 6 7 MATLAB cé mét Jénh rat hitu ich, phye vu tgo ma tran véi chite nang tin hiéu thi, 46 1a rand(m, n). Khi goi, ta thu duge ma tran m hang, n cOt v4i phan. tit mang cc gia trj ng&y nhién: 8 1 Co sé vé MATLAB >> chance = rand(2,3) chance = +9501 0.6068 «0.8913 0.2311 0.4860 0.7622 Khai bao vector va ma tran (el x2... 5x8 xd.) Nhép gia tri cho vector va ma tran startiincrement:destination Toan tit () Linspace (start, destination, number) Khai bao tuyén tinh cho vector logspace (start, destination, number) Khai bao logarithm cho vector eye (line) Khai béo ma tran don vj ones (line, calumn) Khai béo ma tran véi cae phan tit 1 zeros (line, column) Khai bao ma tran véi cae phan tit 0 rand (line, column) Khai béo ma tran véi ce phan ti nan gid tri ngu nhién 1.2.1 Tinh toan véi vector va ma tran Nhiéu phép tinh 6 thé dugc 4p dung cho vector va ma tran. Vi dy: Phép nhan véi ky hiéu (+) duge dang dé tinh tich ca vector hog ma tran. Vite chuyén vi cua vector va ma tran duge thyc hién nhé lénh transpose hoac (’). Néu vector, ma trén la phi, ta dang thém Iénh ctranspose hofe (‘) dé tim 18 tri phite lien hap. Déi véi céc gid tri thue, bai lgnh trén cho ra két qué nh. nhau: >> two_three * my matrix! ans = 6 18 6 18 Néu nhu mét trong cae phép tinb * / * efin duge thyc hign cho ting phdn tit clla vector hodc ma tran, ta sé phai dat thém vao truéc ky hiéu cla phép tinh d6 ky higu (). Phép tinh déi vai cae bién v6 hudng ludn duige thyc hign cho ting phn tit mot: >> two_three ./ my matrix ans = 0000 0.5000 0.3333 0.2000 0.1667 0.1429 Phép tinh trén cing cé hiéu lve ca khi ma trn cé cac phan tit phute: >> complex = [1+i l-i; 2 3) complex = 1,2 Vector va ma tran 21,0000 + 1.00001 1.0000 - 1.00003 2.0000 3.0000 >> complex * complex ans = 2.0000 5.0000 ~ 3.0000i 8.0000 + 2.00001 0000 - 2.00003 >> complex .* complex ans = 0 + 2.00004 0-2. 4.0000 9.0000 Lénh diff(vector [n]} tinh vector sai phan. Bing lénh conv(vector_l, vector_2) ta chap hai vector vector_1 va vector_2. Néu hai vector edin chap c6 phan tit \a cdc hé 80 cda hai da thite, két qua thu dutge s8 ting véi cic hé 86 sau khi nhdn hai da thite d6 véi nhau: >> diff (my_vector) ans = toa Hai lénh inv va det ding dé nghich dao ma tran toan phufong va tinh dinh thie cha ma tran. Gia tri riéng ca ma tran matrix duge tinh béi lénh eig(matrix) va hang bdi rank(matrix): >> rank (matrix) 2 >> eig (matrix) ans 0.1010 9.8990 >> det (matrix) ans 10 1 Ca si vé MATLAB Tinh ton véi vector va ma tran tM transpose (matrix) hoc matrix.’ ctranspose (matrix) hoge matrix’ Céc phép tinh vdi ting phan tit Chuyén vj ma tran matrix Chuyén vi ma tran matrix 06 phan tit phic lién hop Dao ma tran Tinh djnh thite ca ma tran Tinh cdc gid tri riéng cia ma tran Xée dink hang eda ma tran ‘Tinh vector sai phan Chp vector (nhan da thie) inv (matrix) det (matrix) eig (matrix) xank (matrix) di £E (vector [n]) conv (vector_1, vector_2) 1.3. Céu trac va trudng 1.3.1 Cau tric Dé thuan tién cho viée quan ly va su dyng,'ta cé thé tap hgp nhiéu bién lai trong mét cfu tric. Trong d6 méi mang cé mét tén riéng (mot chudi ky tu string’) dat gitta hai dau (‘ ’) cé kém theo gia tri. Mét c&u tric duge tao nén béilénh struct(name_1’, value_1,’name_2, value_2, ...): >>my_structure = struct (‘data', ‘size’, my_matrix, (3p; Vigc tray cap vio da ligu duge thyc hign véi du cach (,): >> my_structure(2).data = my_matrix.*(-1); >> my_structure (2) data (1,1) ans 0000 0.5000 0.3333 Cu tric méc vong Cac cdu tric duong nhién cing cé thé duce tao nén méc vong vi nhau. Vi dy saii day minh hoa khé nang d6: Ta khai béo mt cdu tric 6 tén la componist véi mang déu tién c6 tén TA name, duge gén gid tri 1a chudi ky ty ‘Johann Sebastian Bach’ . Mét edu tric thif 2 06 tén datum véi 3 mang Day, Month va Year dé cat giit ngay, thang va nAm sinh. Sau dé ta gan cau tréc datum vao mang born ctia cau tric componist: " Xem them myc 2.2 vé viin 8 strings 1.8 City tre va trung: un >> componist = struct ('rame', Johann Sebastian Bach") componist = name: ‘Johann Sebastian Bach’ >>datum,Day = 217 >>datum.Month = ‘Marc! >> datum.Year = 1685; >> componist.born = dat >> componist componist = name: ‘Johann Sebastian Bach’ boca: [ixl struct] Ta gan cho mang name cita edu tric componist gid tr} mdi la chudi ky ty ‘Wolgang Amadeus Mozart’. Cae gif trj cia mang born dutge gan truc tip: >> componist (2) .name = ‘Wolfgang Amadeus Mozart; >> componist (2) .born.Day = 27; >> componist (2) .born.Month = ‘January's >> componist (2).born.Year = 1756; >> componist (2) name: ‘Wolfgang Amadeus Mozart’ born: (1x1 struct] >> componist (2) .born ans Day: 27 Month: ‘January! Year: 1756 C&u trite componist lic nay mang dac diém cfu tréc cia céc vector, vA vi vay c6 thé xt ly cc phan tit cla cfu tric dé nhu IA céc vector. Trong-vi du vita néu, céc vector d6 chinh 1a hai mang name va born >> componist componist = 1x2 struct array with fields: name born 12 1 Cod vé MATLAB 1.3.2 Trung ‘Téng quat 6 mét mute cao hon cau tric 18 trvding (Cell Array), D6 chinh 1a cdc Array (mang nhiéu chiéu), chtta Cell (t8 bao) véi di ligu thude céc loai va kich c& khac nhau. Ta c6 thé to ra Cell Array bing Ignh ceil, hodc don gidn bang cach ghép céc phan tit bén trong dau ngoac { }. Ting phdn tt cba Cell Array cé thé dude truy cp nhu cdc vector, ma tran thong thing hoge nhu cée Array nhiéw chiéu, chi cdn luw y ring: Thay vi stt dung dau ngogc tron () ta su dung du ngodc méc {}. Gia sit ta tao mét Cell Array ving 6 tén my_ce 1 nhu sau: >> my_cell = cell (2,3) my_cetl = 0 0 ts a re) ul Bay gid ta Mn lugt gan cho ting mang cia my_cell cic gia tri sau day, trong dé c6 cit cée phan td clu tric componist (1) vA componist (2) & myc LBL: >>my_cell(1,1) = "The first Cell (1,1) contains a text"; >>my_cell (1,2) = 10; >> my_cell(1,3) = (1 2; 3 4); >> my_cell(2,1) = componist (Li: >> my_cell (2,2) = componist (2); 112,3} = date; >> my_ce. Khi nhap tén cba Cell Array trén man hinh hién lén ddu di cfu trie eita no. Cé thé biét néi dung (hay gid tri) cba mét hay nhiéu Cell khi ta nhap cdc chi sé cua Cell: >> my_cell my_cell = [1x36 char } C 10) (2x2 doublel [1x1 struct] (1x1 struct] "12-Apr-2002! >> my_cell my cell = (1x36 char] [ 10) 2x2 double] (1x1 struct) 1x1 struct) 2-Apr-2002" >> my_cell(2,3) ans 12-Apr-2002 14_Qnin ly bign 13 >> my_cell{2, 1:2} ans = name born ‘Johann Sebastian Bach‘ (1x1 struct] ans = name: ‘Wolfgang Amadeus Mozart! born: {1x1 struct] >> my_cell{2,2}.born.Month ans = January Cau tric (Structure) va trudng (Cell Array) struct(nVy v1’, 'n2, v2 Khai bao cfu tric structure.name ‘Truy cAp vao phan tit name my_cell = ( ‘Tao Cell Array réng cell(n) ‘Tao n xn Cell Array cell(m, n) ‘Tao m x n Cell Array 1.4 Quan ly bién Kich cd céa vector hay ma tran duge xe dinh bai lénh size(variable). Déi véi vector cén c6 thé dng lénh length(variable), va khi sit dung lénh d6 cho ma tran ta sé thu duge gid tr} cla vector mang kich cd lén nhat. Ngoai ra, mot bign cé thé c6 kich c@ 1a 0, néu né da dutge tao nén béi Iénh variable = [] >> length (my_matrix) ans = 3 >> size (my matrix) ans = 2 3 o ta c6 thé kiém tra duge moi bién dang tén tai trong Workspace nhd danh myc hién trén min hinh. Bing whos ta cén biét thém cae théng tin vé kich ed va nhu cdu bé nhé cia bién. Bing lénh clear [variable_) variable_: ] ta c6 thé xa 6 cha dich 86 bién nhat dinh, néu chi goi ciear ta sé x6a toan bé bién trong Workspace. Bang lénh wi 14 1 Co sb vé MATLAB >> whos Name Size Bytes Class ans 12 16 double array complex 2x2 64 dovBle array (complex) componist 1x2 1320 struct array datum 1x1 398 struct array deep 1x6 48 double array increase 1x5 40 double array long 1x8 64 double array longer 1x10 80 double array my_cell, 2x3 2070 cell array my_matrix 2x3 48 double array my structure 1x2 456 struct array my_vector 1x3 24 double array two_three 2x3 48 double array Grand total is 276 elements using 4676 bytes C6 thé sit dung ctta sé Workspace Browser (hinh 1.1, goi qua menu Show Workspace holc bing lénh workspace) dé xem théng tin vé céc bién, cing c6 thé xem bing Iénh help elmat. Quin ly bién size (variable) Kich cd cba bién length (variable) Chiéu dai cia vector, kfch ed lén nhét trong ma tran chear Xéa tat cd bién clear [variable_l variable_2] Chi xa céc bién trong ngoac [ ] Who Danh muec cdc bién trong Workspace Whos Danh myc chi tiét cae bién trong Workspace, 6 kém theo tén, kich 3, dung Iugng chodn b§ nhé va loai dit ligu 4.5. Cac phép so sénh va phép tinh logic Cae phép tinh logic o6 thé duge sit dyng cho tAt ed cfc s6. Khi thhh, céc gid tri Khac 0 ting vai logic true va gid tri 0 img vai logic false. Khi xudit gia tri len man binh ta sé chi thu duge cfc 86.0 hoae 1. MATLAB cung edip ddy dit cée phép go sdnh vA tinh logic VA (AND), HOAC (OR), PHU DINH (NOT) va HOAC LOAI TRU (exclusive OR), théng thudng biéu didn bling mot ky higu hay dau ngoge don. Wi dy phép a VA b: a & b, hose and(q, 6). Céc phép tink duge thie hign theo trinh ty: Trude hét 1a cée biéu 1.5 Céc phép so agnh va phép tinh logic 15, thite toan, tiép theo 1A biéu thie logic. Tuy nhién, khi c6 cam gide khéng chdc chan, ban doc nén ding cfch viet voi dau ngode don. >>test = 1; >>test = 1 ans ° >> (4>5-2 & 4<=5) | ~test ans = Vi du tiép thee cung effp cho ta bang két qua khi sif dung céc phép tinh logic AND, OR, exclusive OR, NOT, NAND va NoR &éi véi hai sé nhi phan a va 6. pra= 00 >>b = (01 >> logtab = [a b a&b alb xor(a,b) ~a ~(aéb) ~(alb)] logtab = 0 0 06 0 0 1 1 1 (Opa ee Orr amet ees et OO fe Ob Oper eet ee OO Ltt ao 0 0 0 1 M@t lénh rat hitu ich la exist (variable) gidp kiém tra xem trong Workspace 6 tén tai bién hay ham nao tén 1a variable hay khéng: Néu khong, ta thu duge k6t qua 1a s6 0, néu két qua 1a 6 khae 0, 46 chinh 1A sé néi lén ban chat cia variable. Vi dy: 1 n6i ring variable la bién trong Workspace, 2 néi ring variable lie mot MATLAB File trong tht myc MATLAB, 7 néi ring variable 14 mét th muc’ wv. . C6 thé xem danh mye cdc Iénh nhd help ops. Phép so snh Phép tinh logic eq(a,b) bang - not(ab) Negation (NOT) -= geta,bs — khéc 4 and(a,b) AND < it(a/b) béhon or(ab) OR <= le(a,b) —_ bé hon hodc bing xox(a,b) exclusive OR > qt(asb) én hon Sy tén tai? >= gefarb) lénhon hoe bing | exist(x’), Tim sy tén tai cia x C6 thé xem danh mye chi tit phan Help cia exist 16 1 Casi vé MATLAB 1.6 R&@ nhdnh va véng lap switch h if vi 4.6.1 Lénh ré n Bang cc phép so sanh va logic & muc truéc, ta cé thé “1 ra duge cc quyét dinh, phan biét cc trudng hgp. Dé lam diéu dé, MATLAB co. « Ih sau day: intend © if term command [elseif term command ...J [else cv: © switch term case term command {...} [otherwise command ~ >> test = 5; >> if test<=2; a=2, elseif test<= ; a=5, else a=10, end; 5 S> switch test case 2; a=2, case {3 4 0, end; a=5, otherwise 5 “Trong cd hai trudng hgp trén, cdc lénh con duge nga céch bai du () va dau (). Trong cde Scripts, thiting ta hay viét mdi lénh con trong mét dong riéng, Ngoai ra, ta cfing cé thé viét nhiéu can true if va switch méc vong, dan xen lin nhau. 1.6.2 Vong lap st dung for va while Bang vong lap ta c6 thé thyc hign 14p lai nhiéu lan mét sé lénh nhat djnh: * for variable = term command end hile term command end ‘Trong ca hai trving hgp, lénb break déu 6 tac dung két thc vong lap. 1 2, end; >>while 1, n=n#l; men*2, if m>10, break; end: end 4 9 m Trong vi du trén vong lap for da khéng hé évgc thuc hién vi pham vi 1:0 cla k 18 pham vi rdng va diéu kién ngiing dugc kiém tra truéc. Nguge lai, cing teong vi dy dé vong lap while da dutgc thy hién it nhat 1 ldn, vi diéu kién. ngimg chi dvgc kiém tra sau cing, Ngoai ra, vang while can hai lénh end dé két thue. 1.6.3 Gian doan bang continue va break Hai Iénh hitu ich r&t hay duge sit dung dé diéu khién chu trinh tinh toan 1a continue va break. Trong vong lip for hay while, khi goi continue ngay lap tue chu trinh tinh chuyén sang bude lap (iteration step) ké tiép, moi lénh chia thie hign cba ving lp (thuge vé Dude lap hién tai) sé bi bé qua Lénh break con manh hdn: Ngitng vong lap dang tinh, Lénh break c6 tac dung ca trong céc cfu tric ré nhanh ding if, switch. Néu break duge sit ung ngoi ving for, while trong pham vi ciia mét script file hay function via MATLAB, khi Ay script file va function sé bi ngiing tai vi trf cla break. Vi du sau sé minh hoa cée noi dung vita dé cép dén trong myc nay véi ndi dung: Can kiém tra xem trong céc s6 nguyén thude khoang 3 - 7, sé nao 1A so nguyén t6. Viée kiém tra duge thyc hién d mach ving bén ngoai >> for m= 3: for n = 2:1im-l, Sf mod(m,n) ~= 0, continue, end fprint£(* %2d is not a prime number!\n', m) break end $n ifn fprint£(‘!! $2d is a prime number!\n', m) end & end tm Mach ving trong cé nhiém vu: Léin lugt chia s6 céin kiém tra m cho tat ea cae 86 trong khoang tu 2 dén (m-1), sau dé kiém tra xem s6 dit mod(m, n) ca phép chia cé khic 0 hay khéng. Néu sé du bing 0, khi Sy m chia hét cho n va lénh continue khong duge goi, Ignh fprints! xudt thong bdo Jén man hinh, Néu sé du khée 0, khi Sy m khéng chia hét cho n va lénh continue cé hi¢u luc, lénh fprinté vA break bi bé qua dé chuyén sang kiém tra vong lap mdi vdi n lén hon. Néu m khéng chia hét cho céc sé trong khodng tir 2 dén,(m-1), ma chi chia hét cho 1 va ban than m, khi ay m 1A sé nguyén 16, Vige kiém tra n == m-1 1 cain thiét, vi néu m khéng phai la sé nguyén t6, va vi vay ving lap phia trong 48 duge rdi bé béi lénh break dé tiép tue cae lénh thuée vong lap phia ngoai. * Lanh fprintf dugc gigi thigu ky hon @ myc 2.8 18 1 Co 6d vé MATLAB MATLAB dua ra két qua trén man hinh nhu sau: is a prime number! As not a prime number! ie a prime number! is not a prime number! is a prime number! Dé xem t&t cd cdc lémh tao kha nang diéu khién chu trinh tinh toan, ban doc hay goi help lang Ré nhanh, vong lp va diév khién chu trinh tinh if..,felseif ..][else..],end Lénh if switch .., cece... [uthecwise..],end Lanh switch for variable = term , command , end Vong lap for while term command end Veng lip while continue Lap tue chuyén sang bude tiép theo cba ving lap break Lap tite két thite ving lap 1.7 Cac Scripts va cdc ham cla MATLAB 1.7.1 Cac Scripts cla MATLAB Bén canh kha néng nh&p lénh truc tiép, ta c6 thé viét va c&t nhidu chudi lénh trong cae scripts cha: MATLAB duéi dang file véi ky tu ASCH (rn-file). Mot seript dude khai bao tén khéng c6 dudi .m. Dé soan thio cfc file dé ta 06 thé st dung trinh soun thao cla MATLAB bang cach goi menu File/New/M-File noc FilelOpen. Cing cé thé goi truc tiép nhd nit nhan trén oita sb MATLAB. Gia sit ban doc cha cai dat trinh soan thao dé, cé thé sit dung bat ky trinh soan thao ASCII nao khéc cing duge. Hinh 1.3 minh hoa vi du file pwm.m, 05 nhiém vy tinh ton diéu ché dién ap hinh sin. File pwm.m gidt vai trd cha mét ham ch¥e nang, duge mot m-file khée c6 tén 1A tutor8.m goi. Trong vi du trén ta cé thé thay ré phan thuyét minh (m6 ta bang 1di) cc dong lénh déu duge cach ly béi dau %, nghia 1a: Moi ky ty nam én phai d&u % tho dén hét dong déu bi MATLAB ba qua. Vi mét dong lénh c6 thé tré nén qua dai, ngudi sk dung cb thé xudng ding (cha két thite) bang déu ... 1.7 Cée Scripts va cfc him cia MATLAB 19 ‘Be ES Yer Int Deng. Bree Web ron sb Debelimar cian, 22 oGhna| a) I] ] Basceion vounmite tein GG) | nnceson co coapuee « simusoidal-Pm wolcege wavectorn tor TUR ce > Retecence teeianey 1t00), og | Sco 3 cercter teeny (08) Hetesoenie)s i ptecncestvinnni3Ee 1) wane wwaiear ri Lt Resor Hinh 13° Trinh sogn thdo cia MATLAB vdi vt dy file PWM.M 4.7.2 Cac ham cla MATLAB M6t dang dic biét cia m-files 1A cdc ham cia MATLAB (cée function). Khi goi mét function ta cé thé chuyén giao dit ligu cho function hay nhan di ligu do function dé tra lai. Ngoai ra, mét function cling c6 thé duge cée function khac hay script goi, va mot script cing c6 thé duge cdc scripts goi. Cac bién trong pham vi mét function la bién local (cuc b9). Céc bién global (toan cue, ¢6 gid tri st dung chung) duge dinh nghia bdi l¢nh global variable Lénh dinh nghia dé phai duge goi truc tiép tit Command Windows cia MATLAB, hay tit mét script, va cing c6 thé dinh nghia trong pham vi mot function. Trong pham vi function ta cé thé sit dyng hai bién nargin va nargout dé xée djnh a6 lugng dit iéu duge chuyén giao hay nhan tré lai. Ham trong vi dy sau duge ding dé tinh gid tri trung binh, cft trong m-file nao dé va cé dang nhu sau: function [arithm, geom] = average_value (x) arithm = mean (x); % arithmetic average value geom = prod(x)*(1/length(x)); % geometric average value 20 1 Co si vé MATLAB Bing viée goi average _value (test) ta sé chi nhan duge dit ligu thit nhat, vi vay viéc goi dé nhgn day du dit ligu can sé duge thyc hién nhu sau: >>test = 1 >> [A, G] = average _value (test) A 4 Gs Nu m6t MATLAB script hay mét MATLAB function lin dau tién duge goi, MATLAB sé dich ra ma do (Pseudo-Code'), 1 ma s& duge kich hoat dé thuc hién nhiém vu dat ra cho script hay cha function, Néu vé sau khéng c6 sy thay déi ¢i trong m-file, qua trinh dich sé khéng xdy ra lan thé bai. Bang lénh clear functions ta cé thé xéa cudng bite cac ham da dich, déng thoi gid’ nguyén cae m-files. Cac Scripts vi cac ham % Dau cach phan thuyét minh véi lénh function [out ...]= name (in,...) Dinh nghia him eda MATLAB nargin Xée dinh 36 lyong dit ligu v3o nazgout Xéc dinh s6 luong dit ligu ra clear function X6a céc ham da dich 1.8 Tém tat ndi dung chucng 1 NhAm gitip ban doc hé théng héa duge ndi dung, sau mdi chudng sé 6 phén tom tt cae vain dé da duge gidi quyét tai chusng do. Cac van dé da dugc tra Idi & chung 1 1a: Lam thé nao dé khdi dong MATLAB ? Workspace 1a gi? Lam thé nao dé djnh nghia mot bién ? Céc quy dinh phai tuan theo khi dét tén bié 'Y nghia cla bién ans ? Lam thé nao dé thy hién cae phép tinh cong, tri, nhén, chia va lay thiva ? Lam thé nao dé khai bao mét s6 phite ? Lam thé nao dé khai béo mét vector ? Lam thé nao dé khai bao mét ma tran ? 0, Lam thé nao dé truy cap téi tan timg phan ti cha vector hay ma tran ? gone Ow * C6 thé tao Pseudo-Code bing lanh pcode, sau 46 ett dudi dang p-fle 1.8 Tom tit ndi dung chueng 1 21 ll. 12. 13. 14, 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Nhing Ignh nao e6 tac dung tao ra: Ma tran véi moi phan tit 1a 1 hofc 0, ma tran don vi, ma tran ngau nhién ? Dau () diing truéc cdc déu cia phép toan c6 tac dung gi khi tinh vdi vector hoac véi ma tran ? Cac dic diém cba cfu tric struct 1a gi? Lam thé nao dé khai bao mot struct ? ‘Lam thé nao dé truy cp vao mét struct ? Lam thé nao dé hién thi céc bin trong Workspace ? Lam thé nao dé xéa cac bién ? C6 nhitng phép so sanh gi trong MATLAB ? Co nhitng phép tinh logic nao trong MATLAB ? Cé nhiing kha nding ré nhanh nao trong MATLAB? C6 nhing deng ving lap nao trong MATLAB? Sy khéc nhau gitfa script va ham function trong MATLAB ? Lam thé nao dé tao ra va sit dung mét function? Su dung tién ich trd gitp Help khi cdn tra cttu mot Jénh nhu thé nao? 2 Xuat va nhap dif liéu trén man hinh ‘Tat ca cdc lénh gidi thiéu trong chung nay 06 tac dung diéu khién man bink, phuc vu xudt va nhap dif ligu theo phucng thite déi thoai voi ngudi sit cing nhy xudt va nhap khdu dif Ligu, Noi dung quan trong thit hai 1A vain bang dé thi, eiing nbw viéc xudt va nh4p khau do hoa thuée cac (format) khac nhav. 2.1 Diéu khién xuat ra man hinh Vé mat cd phap, cic Iénh diéu khién xuat ra man hinh MATLAB kha gidng véi cae Iénh tung ty cha UNIX. Ching truée hét duge sit dung vac muc dich kiém tra, phat hién 1i chugng trinh, hay dé tim hiéu mét sé méi lién quan nhat dinh Néu cain thuc hién viée xudt ra man hinh theo titng trang mot, ta ¢6 lénh mere. Bing more on ta déng va more off ta ngat ché d xuat ra theo ting trang, more thay déi trang thai va more(n) hién thi n dong cha mét trang. Viée digu khién gidng nhut trong hé diéu hanh UNIX: Néu ligng xudit ra trang, khi ay phim Return ed tac dung nhich lén ting dong, phim tréng hién thi trang ké tip va phim chi Q sé ngitng viée xuat. Bang echo ta c6 thé hién thi tdt cd cde lénh da dude thye hién sau khi goi script hay mét function. Lénh echo on ¢6 tac dung dng, echo off 06 tae dung ngdt ché d6 hién thi lénh eda seript. Lénh echo function on sé hién thi cde Iénh (xem vi dy sau day: sit dung ham average_va!ve(x) 4 myc 1.7.2) do ham cé tén funetion goi, echo hoc ecko function sé chuyén man hinh sang trang thai khae. mi >P echo avezage_value on >> [A, G] = average_valve(1:2:7) arith: geon mean (x) ; % arithmetic average valve prod(x)*(1/length(x)}; # ge metric average value 4 3.2025 Dai khi, dé phyc vy cong tac lu trit va xi ly sau nay ta rét edn edt aif ligu da nhdp hode xudt tai Command Windows dudi dang File. Dé ghi tat ca déng 24 2 Xusit va nhap d0/ligu trén man hinh, thai nhap / xuat (khong ké dé hoa) qua ban phim vao File véi dinh dang ASCII ta sit dung lénh diary(file)'. Néu da tén tai File, cde dong thai mdi sé duge ghi néi tiép them vio dudi. Lénh diary on kich hoat ghi, diary off ngitng va diary sé chuyén déi gidia hai ché a C6 thé tam nging ché d6 xudt man hinh bing \énh pause, ché dé tam ngiing dé sé bj huy bé néu xdy ra déng tac nhén phim méi bat ky. Lanh pause(n) cé tac dung tam nging trong n gidy, pause off vo hiu héa tat cé cdc lénh pause tiép theo va pause on lai cho phép pause cé tac dung trd Iai. Trong vi du sau day, ett sau méi vong 14p b6 dém lai duge xuat ra man hinh va dgi khoang thdi gian (tinh bang gidy) tng vdi néi dung bé dém. Cuéi cing ta thoat khéi trang thai tam ngiing bang m6t dong thai ban phim. >> for i=1:2:6, disp(i), pause(i),end ,disp(‘Ende"),pause a 3 5 Ende >> Ngoai ra cn ¢6 mot lénh rét hu {ch 1a cle (Clear Command Windows) cé tac dung xéa tat ca cae nhap / xudt trén Command Windows va dita Cursor vé dong dau tién cia ctla sé. Diéu khién xu&t re man hinh more Xuat ting trang mét ra man hinh echo Hién thj cac lénh da goi trong Scripts (m-File) va Functions diary(’file’) Cat cde thao téc xudt ra man hinh trong File 6 tén ‘file’ pause ‘Tam ngitng xuat ra man hinh ele X6a moi luu gitt vé thao téc nhap / xudt ra man bin 2.2. Béi thoai cda MATLAB véi ngudi sit dung C&c déi thoai véi MATLAB, cin thiét khi nh@p / xudt vin ban (Text) va dit ligu (Data), duge thye hign nhé cdc lénh mé ta trong mye nay. Truéc hét ta hay xem xét viée xit ly van ban trong MATLAB, File chvudn la ‘diary’. Bang lgnh get (0, ‘DiazyFite’) ta o6 thé hai xem File 2.2 Dbi thoai cla MATLAB véi ngwii svt dung 25 2.2.1. Van ban (Text) trong MATLAB Cfc doan van ban (ede chudi ky tyt, Strings) thuting duge bao trong pham vi hai dau méc trén cao va cb thé duge gan cho cac bign theo kiéu: string = ‘text’. Cae bién String duge c&t duéi dang vector va cé thé tap hgp lai bing cach viét [text!',text2’}. Néu mét Script cé chudi ky ty véi ngi dung kéo dai nhiéu dng, chudi ky by dé phai duge két thc sau méi déng, nham loai trix kh nang du ngat ding ... duge MATLAB coi 1a mt phn tit cua chudi ky tu do. >>text = ['This ist," ','a Text") text This is a Text >>whos text Name Size Bytes Class text 1x14 28 char array Grand total is 14 elements using 28 bytes 2.2.2 Béi thoai khinh§p van ban Vide hii tim sf ligu duge thyc hién béi Iénh variable = input (string). Chui ty 'string’duge xudt ra man hinh va déng thi gin cho bién 6 tén ‘variable’. Néu trong-di liéu héi ta khéng tim sé ligu ma tim chudi ky ty, khi dy lénh cd dang string = input (string,’ s’ ) . Trong khi thyc hién lénb, c6 thé sit dung mot 86 ky higu dc biét nhu dau ngat xudng déng \n, d&u méc trén cao ’'! va gach nghiéng chéo \\". Sau day 18 vi du vé mt Script v6 kinic déi thoai nhap vin ban: price = input ({/What does the exchange rate \n’, ‘look like today ? On: currency = input (’DEM\\EUR ? 1 185 Sau Khi goi Script va nhap s6 ligu cha nim 2001, vi dy ta co thé nhan két qua nhy sau. What does the exchange rate look like today ? 1.93 DEM\EUR ? DEM ' Khi thye hign ta thm Suge tren man hinh duy nbilt mot dau * * hi thutc hign ta thu duge trén man binh duy nhat mot dau \ 26 2 Xuiit vi nhép da ligu eran man hink 2.2.3 Xuat theo Km xudt s6 ligu hay chudi ky ty ra man hinh ta déu 6 thé dat dinh dang cho vide xudt. Lanh di sp (string) 06 tac dung xuat chudi ky tu. Lénh nay ¢6 thé sit dung cho chudi ky tu chita van ban dong, trong d6 cde chit s6 phai duge bién thanh chudi ky tu nhi lénh num2str (variable {, format] ) Déi voi sé ligu vector ta cé thé lap dinh dang xuat phd string = £ (string, variable), sau a6 xudt bang lénh disp. Khi sit dung hai lénh num2str va sprinté, et phap lap dink dang vé cd bn cling gidng nhu ngon ngit l4p trinh C (xem thém théng tin bang lénh help sprintf). Tat c& cdc bign phai dude khai bio chung trong mot ma tran duy nhat, va mdi cét 1A mot bé tham s6 xuat. T'a hay tigp tue vi dy é muc truée: disp(|'However ‘,num2str(price, ‘%0.2f"), /", currency, ' is already very expensive ' ‘Jj; displ 1); & Dong bd t use 3 Tam ngung Gisplay = sprinté ("Two Bares cost 42.2f 4s peice'2, costency): daspidispiay); once_more = spri cf e4d Euras cost 32. (3:5) *price]); Két qua thu duge li: However 1.93 DEM is already very expensive ! Two Euros cost 3.86 Di 3 Eures cost 5.79 0 4 Euros cost 7.72 0 5 Euros cost 9.65 51 Bén canh cae kha nang vita duge gidi thigu, MATLAB ein tao diéu kin xdy dung cae giao dign véi ngudi sit dung bing dé hoa (GUI), mé ta 6 myc 2.9. Déi thoai khi nhjp vin ban variable nput string) Hoi tim string = input (string, *s") Héi tim chudi ky tut numzstr (variable, format]) — Bién mét sé thank disp (string) string sprinté (string, variabley Tao dinh dang cho chudi ky tu GUL Graphical User Interface 2.3 Nifip va xudt dir tigu 27 l Ky hiéu dac biét f Dinh dang = ee aed $6 nguyén (vf du: 21) \\ Gach nghiéng trai $6.38 a Pee dong (vi du Dau méc dan trén cao a Chad ky tet 2.3. Nhap va xuat dif ligu 2.3.1 Cat vao hodc goi dif ligu ti File Tay su lua chgn, c6 thé thong qua File dé nhap hoac xuat dit ligu dudi dang mé ASCII hode ma nhi phan, Dé cat hoac goi dit ligu ta ding mot trong hai lénh load file_name [variable_1 variable_2 ...] va save filename [variable_1 variable_2 ...). Gia st tén File dA duge eat trong bién ky ty string, khi dy ta chi can viét ngiin gon Load (string) va save (string, [variable_1, variable_2 ...|). Néu sau load ta viet tén mét File khong cé dudi (phdn sau dau cham .), khi MATLAB sé chon mét File véi dinh dang dit ligu theo ma hi phan (céc File 6 duéi MAT). Mét File MAT bao gid cing ext day di cac gid tri va tén cba bién Dé goi sé ligu 6 dang ma ASCII, ta phai viét tén day da cia File, tte 1a phai c6 cd phan dudi. Cac sé ligu thude cing mOt dong phai duge viét cach nhau nha phim tréng hoac phim Tab (chéng ding d&u phay). M4i dong phai chia nhiéu phan ti (duge phép chén ci thuyét minh). Khi goi (doc ait ligu), cae gid tri sé dude gan cho bién c6 tén trong vai tén cia File, >>test_vector = [0:0.1:10]'; % Column vector >> test_matrix = [test_vector cos(test_vector)]; % Matrix >> save test Save into file t t.mat >> clear % Clear Workspace >> load test % Load from file test.mat >> who % Display Workspace Your variables are: test_matrix test_vector Khi céin cit 6 dang ma ASCII ta sé phai bd sung vao dang lénh save thém khéa ~ascii. Trong tring hgp nay, tén cita cac bign sé khong duge c&t ke theo va gia tri cla cac bién duge ghi tudn ty néi duéi nhau vao File. Do khong eat tén eta cac bign, sau nay khi goi ra, MATLAB sé khéng c6 kha nang phan Jogi ede gia tri theo bin n 28 2 Xust va nhdp da ligu tran man hinh, >> save test.txt ~ ii test_matrix % save into file test.txt >> clear % Clear Workspace >> load test.txt % Load from file test.txt >> who % Display Workspace Your variables are: test Néu khi goi hode edt ta khong viét cu thé tén cdc bi6n, khi ty MATLAB sé goi tat cd cae bign da dude cat trong MAT-File, hoic cdt vaio MAT-File moi bién dang tén tai trong Werkspace. 2.3.2 Cat cé dinh dang vao File van ban Khi xudt mét File van ban ta cling cé thé stt dung lénh fprinté véi cd phap giéng nhu cilia sprinté, Tuy vay, bang fprinté ta chi cé thé xit ly sé thuc, dé xit ly s6 phite, ta phdi chuyén s6 sang thanh phén thyc va ao riéng ré. Dé md va déng médt File xust, ta 6 cdc lénh id = fopen(fileextension, ‘w') va felose(id), trong dé id phue ve nh§n dang File di mé. Gid sit File vi dy 8 hai muc 2.2.2 va 2.2.3 o6 tén exchanye.txt (vdi ndi dung vé ty gid quy Aéi) , vide xudt File d6 sé nbut sau: >> exchange_id = fopen(’exchange.txt’,/w!); >> fprint€ (exchange id, ‘84d Euros coat #2.2f.\n", «+ (3:5: (3:5)*pricel); >> fclose (exchange_id); Dé xem thong tin chi tiét vé cdc Jénh phuc vy viée truy cap File ta sit dung Ignk help iofun Nhap va xuat khau dif ligu load file (variable...) Doc tiv MAT-File save file [veriable...} Cait vao MAT-File Load file.extension (variable...) Doc tit ASCI-File save file.extension ~ascii [variable...] Cat vao ASCII-File fprinté (f_idstring.variable) Ghi vao ASCI-File fid= Eopen (file.extension,’ w') M6 File fclose (f.id) Déng File 2.4 He didu hanh va quan If File 29 2.4 Hé diéu hanh va quan ly File Thong thudng, dé MATLAB tim duge cdc Scripts hay dit ligu, bat budc cic Files lién quan phai nam tai thu myc (Folder, Directory) hign tai. Sau day ban doc sé lam quen voi mot 86 lénh dua trén co sd cc hé diéu hanh phé bién, cho phép tim thay File trong khu rimg day dic cae thu myc. Néu ta dat dau chdm than ! 4 daéu cua mét dong, khi dy MATLAB sé chuyén giao toan bé phan cén lai cha dang cho hé diéu hanh du6i dang cée lénh. M6t lgnh tuong déi manh (nhuing cing kha rée roi khi sit dung) 14 1énh eval (string). eval cé tae dung kich hoat cdc lénh ma MATLAB da trao cho hé diéu hanh. Vi du sau day tao nén thy myc test_directory, gan cho bign cau tric (bién loai struct) directory tén cha thu myc va sau dé lai xéa thu muc dé di. >>mkdir ('test_directory") >> directory = dir ('test_direct') directory name: 'test_directory’ date: ‘20-Apr-2002 14:36:16" bytes: 0 isdir: 1 >peval (['!rmdir ',directory.name]) et Path ‘Al changes ae eect immed Ny. waTuag searen path defor | [Casvmrenmouen onan pa = [Sic iarcritouens ¢matabyipotzero-gain Aes sunancs-| VC aTLASr quant chasm Ie earroues cana Serene tmatat vem? Ia erercnscmatabaes simu? Nowe Up IS ciarcimouc ematabves it Cac smaTLAae zavan si [Gre warianRt zauerelectic mathnenranserme JSi° warLaBet zauansectic machinensmnehonot cae war.aee zavangeocré matnnertem in pow [Cac mATiABR zavangelecicmachinerfnamntes Move owe t Gotary| soe_|_ciose J Reet | _ostut He Hinh 2.1 Cia 86 truy oGp thut muc (Path Browser) cia MATLAB Ngoai ra, ban doc cd thé di theo menu View / SetPath hay truc ti€p goi pathtool tit Command Windows dé tdi duge cia 86 truy cap thu muc Path 20 2 Xudt va nhap dit ligu trém man hin Browser (hinh 2.1). Trong cifa sé dé, c6 thé nhéin nuit Add Folder dé tao thém thu mye méi. Dé xem chi tiét ban doc hay gai help general. Goi tiv hé diéu hanh va quan ly File pwd Hién thi thy muc hién tai dir [...] Hién thi ndi dung caa thu mac [...} is [...] Hién thi ndi dung cia thy muc [...] cd directory Chuyén thu myc mkdir directory "Tgo thut mae mei copyfile source destination Sao chép (copy) file delete file Xoa file ! commando Goi Iénh tix hé diéu hanh 2.5 Biéu dién bang dé hoa Khi khdi kigng di ligu 1én, vie xuat ra man hinh du6i dang 36 sé ft 06 § nghia, Vige biéu dién ching dudi dang dé hoa tré nén quan trong va 1a déi tuigng cia muc nay. ‘Trude hét ta dé cp dén cdc lénh lién quan véi gan nhu moi qua trinh xudt ra man hinh dudi dang dé hoa, nhu cac Iénh tao nén, truy cap vao méi trudng va vao ting phan vi cha dé hoa, vi du: tdi true hay viée dit tén va thit nguyén cho truc. Trong hai myc tiép theo 2.6, 2.7 ban doc sé lam quen véi cée kha nang tao dé thi 2 - 8 chiéu ti tap céc dit ligu da c6, minh hoa qua vi dy cy thé. Muc 2.8 gidi thiéu kha nang nhap / xudt va in cae logi dé hoa. 2.54 Gtta sé Figure - co sé cila dé hoa MATLAB SS z Hinh 2.2 Cita sé Figure eta jpeuetareieeo MATLAB Khuén khé cia moi thao tac xudt dé hoa trén nén MATLAB 1a Figure’. C6 thé tao ra cita s6 nhut inh 2.2 bang cach ggi lénh figure va méi Figure sé ty dong duge danh 86. >> figure >> gc ans = 1 " igure: 66 nghia la *hinh* 2.5 Bidu didn bing dé how 31 C6 thé poi mot Figure 83 c6 s6 bing lgnh figure (number). $6 cia Figure (thuc chat IA Aandle chit khong phai number) st hién thi néu ta goi gcf (Get handle to Current Figure). Trong cdc nut nhan nam dudi thanh menu ta cdn biét che nang cba cae mit sau: nat * md trinh Property Editor (soan thao di h, hinh 2.4), mit 4 cho phép ta viet Text vie hinh, nut 7 va 7 cho phép ta vé thém cic nét 06 hode khéng c6 mii tén, ® va ® kich hoat chite ni Zoom (din, co hinh), con 7 sé giup ta xoay dé hoa, déc biét la dé hoa 3 chiéu. B vhanh nhiéu Subplots (dé hoa con) duge counter (b dém) démh sé d phia trén ben trai. Néu vige danh s6 chi edn mot chit $6, ching s@ duge viét tun ty khong can div phay hay déu cach (hinh 2.5). C6 thé xéa néi dung cia mét Figure bang lénh c1f (clear current figure), vA lénh delete figuee(number) sé xéa chinh Figure. Tuong ty, Jénh lese(number) sé déng Figure mang 86 number con lénh close all sé déng vit ea cic Figures dang ma. ¢ lénh sukplot (row. column, counter), c6 thé chia déu mét Figure | Root Figure 1 1 Axes | |Ulcontrol| | Uimenu| | Ulcontextmenu . ] Image Light | Line L Patch [ Rectangle Surface Text Hinh 23. Céiu tric phan céip cita 9 Gi eatng 6 hoe MBt déi tugng dé hoa c6 Ge diém cia mat Figure ( ta lai cé thi tric phan cap duige mé ta 6 hinh 2.3. Co thé xem dle FigureHandle) bang lénh get, véi lénh set! p dac diém cho Figure. get (FigureHandle, ' FigureProperty’ ) set (FigureHandle, ' FigureProperty’ , PropertyValue) Viéc lap trinh dé hoa trong MATLAB luén phu thudc vao déi tugng cu thé va vo cng phong phi. Mgt cdng cu lam nhe bet cong vide 1a trinh soan thio dic tinh dé hoa (Property Editor) véi cita s6 yidi thiéu hinh 2.4 ' Lap (xée dinh) dae diém cho Figure: set (0, ’ DetaltFigureProperty’ , PropertyValu’) 32 2 Xudt va nh@p da ligu trén man hin eatPicpetestecfowee = SSM ‘sve | Tue | Rencetng | int | echgroind clr POROOOT ERT Sg cr grec mana sist apo bl rage or tgu anc ear cory anche spleton | cracaemeuta| secmromoiaa| esr toe Hinh 2.4 Cita s6 Property Editor ciia MATLAB Vi kha nang phye vu xi ly dé hoa cita Property Editor kha phong phi, vugt Khudn khé cia mye nay, dé nghj ban doc tra citu chi tiét tinh nang va ¥ nghia cla tig muc, ting mit nhan 6 phan trg gitip trac tuyén (Online Help). Tong quan vé do hoa Ligure [ (number) } ‘Tao méi (hay mé) Figure subplot (row,column, counter) Tao subplot get Wii 86 cia Figure hign tai clé X6a ngi dung cba Figure get (Handle, ' Property’ ) Xem dic tinh cha Figure set (Handle,' Property’, Value) Lap dic tinh cho Figure delete (figurer (number) ) X6a Figure mang sO number close (number) Dong Figure mang s6 number close all Déng tat cA Figure 2.5.2 Truc va dién ky ty cho truc » phan chia thang bac cita true thudng duge MATLAB ty dong thye nin 1 Tuy nhién, ta ¢6 thé phan chia tha cdng trong truéng hgp hai chiéu (2-D) bang lénh axis ([x_min,x_max,y_min,y_max]) va trong trudng hop ba chiéu (B-D) bang lénh axis ({x_min,x_max,y_min,y_max,2_min,2_max)). Linh axis (‘auto’) sé trao quyén chia truc lai cho MATLAB. Lénh grid on sé tao ra mOt 1v6i toa 49 Ung véi cach chia truc da xac dinh (muc 2.6.2 giéi thigu thém vé cach thay déi luéi toa d6). Déi voi dé hoa 3-D ta cé thém lénh box on dé tao khung bao cho 3-D-Plot. 2.5 Bigu dién bing dé hoa 38 Dé dién ky ty vao mot dé hoa ta cé nhiéu kha nang khac nhau: Dang xlabel (string), ylabel (string), 2lebel (string) dé dién tén cho truc; ding title (string) dé dién tén cho Figure. Ngoai ra ta cdn o6 thé viét cic ky tu lén cao, tut thap hay cde ky tu Hy Lap theo céch viet! MTEX, vi du ta viét lenh: ylabel(’\alpha_a_u_t_o [m/s°2]‘}. ta sé thu duge aucLm/s*). ng Wénh legend (string_1, string_2,..., (position}) ta c6 thé dién thém mot s6 1di ghi chi vao dé hoa. Vi trf ciia cée lai ghi chi duge xac dinh bai sé ghi trong (position) , véi y nghia: 1...4 sé dat lai ghi chu vio 4 géc, 0 dat ty dong va -1 dit vao bén phai, canh dé hoa. Lénh text (x value, y_value, string) cho phép ta dién mt doan van ban véi ndi dung string vao tga dé bat ky x_value, y_value trong &6 hoa. Dé c6 thé quan sat kp hon mét mang nao dé trong a6 hoa, ta sit dung lénh zoom on dé ding chudt ct va co din mang dé (hodc nhéin vao nut tuong tng trong cita sé Figure, xem hinh 2.5). Ngoai ra, ctta sé Figure cén cé mét vai nit cho phép ding chugt dién doan van ban, vé thém nét hoge mdi tén, va mo Property Editor. Cé thé xem thém théng tin chi tiét vé xudt dé hoa ra man hinh bing céch goi help graph2d,help graph3dvahelp specgraph Dé hoa: Cac true axis ( (x min, xmaz,y_min,y_maz)) Chia trye 2-D axis ( (x min, x max,y_min,y_max,z min,2.max]) Chia truc 3-D axis (/ aut Tu dong chia truc grid [on Tao ludi toa d6 zoom [on Cat va co dan mang Dé hoa: Dién ky ty x label (string) Dién tén trycx ylabel (string) Dién tén tracy zlabel (string) Dién tén trucz title (string) Dign tén Figure text (x value, y_value, string) Dign van ban legend (string 1, string_2, ..., [position ]) Dién 1di ghi chi fch viet ede ky higu dic bit \n, °” hay \\ (m6 td 8 muc 2.2) Khong 06 gia tri tai day 34 2 Xusit vi nhap dit ligu trén man hinh 2.6 Dé hoa 2 chiéu (2-D Graphics) 2.6.1 Cac énh vé (Plot Commands) Lénh pict (x_value,y_value. . . [, plotstyle}) vé a6 thi ndi cdc diém cho béi cup gid tri x_value, y_value. Thong thudng cic diém a6 dude noi béi mot nét lién. Néu ta nap Iudn phién nhiéu vector z/y, ta sé thu duge nhiéu nét néi dc lap véi nhau. Néu thiéu x_value, khi Ay cae gia tri cia y_value sé due vé theo thit tu chi s6 cia ching, Néu y_value 1A cdc gid tri phtte, khi ay dé thi ve voi hai truc do va truc thuc, Lénh stars cling duge viét véi ct php tuong ty nhung.sé tao ra dé thi cé dang bac thang (xem cac tin hiéu trich mau, vi dy 6 myc 8.4) Chudi ky ty plotstyle c&u tao béi hai thanh phan: Thanh phan thi nhat la mét chit c4i dé chon mau va thanh phan thit hai 1a chudi ky higu dac trung cho dang chéim / gach ndi tao nén nét dé thi. Vi du: ‘r--" sé tao nén dé thj ding nét ditt va cé6 mau dé (ding lénh help plot dé xem thém chi tiét). Mau Nét va diém k Den r Dé - Nét liés 9 Cham tron b Xanh lam nm Dosim -- Nét dat Chim sao c Xam y Vang Nétgachchiém * Daucing ¢ Xanhlacdy Tring Nét cham x Dau nhan Méi lin goi mdi lenh plot, cc dé thi da cé trong Figure (ho&e trong Subplot) hign tai s@ bi x6a. C6 thé ngan chain didu dé bing cach goi Iénh hold on sau Iénh plot dau tién. Dé hoa d hinh 2.5 duge tao nén bii vi du ké tip. [ya r7i8 Ro Hinh 2.5. Dé hoa MATLAB ¢6 chita hai Subplots 2.6 Dé hoa 2 chiéw (2-D Graphics) >> supplet ( >> plot ([-5:0.1:5], cos((-5: >> held on: >> fplot ('2*sinixi’, (-5 9), >> subplot (12215 >> t = (0:20)40.9*pi; >> plot ( t), O.1:5)*piy, thi") if énh fpict (function, range) trong vi dy trén minh hoa kha nang vé true tiép cdc ham tudng minh (explicit). Ngoai ra, MATLAB can tao diéu kién vé cdc ham khéng tudng minh (implicit) mot cach dé dang nhi lénh ezplot (function_1, [function 2, | range). >> subplot (121); >> ezplot (1x2 - y*2 -2"); >> subplot (122); >>axis([-0.15,0.25,-0.22,0.15]); >> ezplot (‘sin(3*t) * cos(t) / (ttpid's ... ‘sin(S*c) * sindey / (eepi)', [0, 4*pal); 2 Keema) Cost) oak yeeIMaH engi) on | z Grate Sate ot Oe OF ats Hinh 2.6 Ham implicit (ben trdi) va ham explicit (bin phai: thi e5 tham s6) v8 bang, Wenh ezplot Hai lénh semilogx va semi logy cing cé eti phap gidng nhu plot vdi diém khac duy nhat: Hai true x va y duge chia thang logarithm. Lénh logiog cé tae dyng chia déng théi cd hai truc x vay theo thang logarithm. 36 2X va nhdp dit igu trén man hinh Dé hoa: Cac lénh vé dd hon 2-D plot ((x_value, |y_value... {,plotstyle] ) Vé dé thj tran tairs (ix value, ly value... [,plotstyle)) Vé dé thi bic thang Loglog (x_value,y_value...[,plotstyle}) Vé bai true logarithm semilogx (z_value,y_value...[,plotstyle)) Vé trye x logarithm semi logy (x_value,y_value...[,plotstyle)) V8 trucy logarithm fpiot (function, range) Ve ham explicit ezplot (function (xy) [, range} ) Va ham implicit ezplot (function_1, (function 2,}(,range]) Vé ham implicit <6 tham 6 hold [on | off! Bao vé cdc dé thj da vé 2.6.2 Vi dy: Khau quan tinh bac nhét PT, va khau ty 1é-vi phan PD Sau day la mét vi dy sé tao nén dé thj 6 hinh 2.7. Vi du tinh ham dic tinh. tén 38 cia khéu quén tinh bac nbat PY, vA khau ty 1¢-vi phan PD voi hang so) thai gian 7'trén mién anh Laplace, sau d6 vé dé thj cla ham vita tinh duge. 1 PT: H(s)= op PD: H(s)=140r Truéc khi theo déi vi du, xin Iuu y bgn doc: Bing lénh set ta thay déi thang chia cla hai truc. Lénh gca (Get handle to Current Axis) tray cap truc tiép tdi truc cia tiing Subplots dé thay déi tham sé ytick vA yticklabel ‘Toan van dogn lenh sau day duge cit vio File c6 tén 1A Fig02_07.m, sau khi goi trong Command Windows ta thu duge 4é thj hinh 2.7, T = 0.04; % Time constant PT1 [3] omeg = _logspace (0,3,100); & Vector frequency [rad/s] frequency response =(T*j*omegatl) .*(-1); % Frequency response PT? amplitude _cesponse ~abs (frequency response); % Amplitude response phase_response = angle(frequency response); % Phes® response figure (3); * Make figure 3 elf; % Clear all old plots subplot (121); % Subplot: Amplitude loglog (omega, amplitude response, *b-'); hold on: logieg (omega, amplitude_response.*(-1), + invers grid on; title ("Transfer Functions’); xlabel (‘\omega [zad s*=°1]"}; ylabel (*Amplitude (d8)"); egend ('PT1-Element', 'PO-Element", 2); text 1/7, 0.03, "| Time Consta axas ({1 123 0.01 100)); * Visible range skala = ~40:20:40 4 Desired axis scale 2.6 Dé hoa 2 chiéu (2-D Graphics) 37 set (gca, ‘ytick', 10.*(skala/20)); 4 Set axis scale (dB) set (gca, ‘yticklabel', skala); % Set label subplot (322); % Subplot: Phase semilogx (omega, phase_response*180/pi, ‘b-'); hold on; semilogx (omega, -phase_response*180/pi, 'r--'); 6 PD: invers grid on; xlabel (‘\omega [rad s*="1]"); ylabel (‘Phase [Degree]'); axis ([1 1e3 -90 901); 8 Visible range skala = -90:30:90; @ Desired axis scale set (gca, 'ytick', skala); % Set axis scale (Degree) set (gca, tyticklabel', skala); @ Set labei ‘Transfer Functions 80) 8 “Amplitude JOB} 2 Hinh 2.7 Vi du vé dic tink tén s6 cia khéu PT'I (nét lién) vd khdu PD (nét ditt) Ban doc céin biét: Ham dac tinh tdn s6 cin cé thé duge tinh va biéu dién nhd hai Iénh bode va t£ (chudng 8). >rptl = tf ((1], [0.04 1)); >>pd = tf ([0.04 1}, (117 >> bode (ptl,'b-",pd, 'r--") Nha lénh té ta c6 thé tao nén ham truyén dat duéi dang phan thite (6 da thite mAu va ti s6). Sau d6, lénh bode gitp ta vé 46 thi BODE (hinh 2.8: nita trén la dé thi bién, nia dudi la dé thi pha logarithm). 38, 2 Xuat vi nbap da ligu trén man hinh Bode Diagn Hink 28 Dé thi BODE ve bang lenh bode Fregaey ses) 2.7. Dé hea 3 chiéu (3-D Graphics) Dé biéu dién, minh hoa cae quan hé nhiéu chiéu ta thudng sit dung dé hoa 3-D, Muc nay m6 ti mét sé lénh co ban phye vy muc dich dé. Riéng cc lénh ign ky tu va chia thang cho true hoan toan gidng véi dé hoa 2-D. 2.7.1 Cac lénh Plots Hinh 2.9 Dé hoa 3-D vt bring lénh plots 8. 8 é 5 Lénh plot3 cé tae dung ‘. twsng ty nh lgnh plot, 2. be : diém khac duy nhat 1a Patties plot3 6 thém vector sé 2 Tete hs 4.4% | hicu thi ba dinh cho truc 2, as’ | Vidu ta cé6 thé tao duge dé as hha nhu d hinh 2.9 khi goi ‘as 05 chudi lénh sau day: >> phi = (0:100) / 100*2*pi; >> plot3(sin(2*phi), cos (3*phi), phi, 'b*'); 2.7 Dé hga 9 chigu (3-D Graphics) 33 Dé biéu dién cAc ham 2 chiéu duéi dang mat trong khéng gian ta si dung lénh surf (xvalue,yvalue,zvalue... [, color]). Néu x value, y_value, z_value la cic ma tran co s6 hang vA sé cét gidng nhau, khi dy cae diém cla dé hoa sé dutge vé va ndi lién thanh mat. Néu cde diém c6 mot khodng cach déu dan vé phia hai truc x va y, khi dy x_value va y_value cé thé chi 1a vector. Trong truéng hop nay, ci gia tri x_value duge chuan theo cit vA y_value chudin theo hang cla ma tranz_value. Hai l¢nh mesh va waterfall cé cd php ging nhu surf, nhting }gi tao ra mat ludi khéng dién day va dé hoa kiéu thae nude. Ngude lai, contour lai vé nén cde dutng “dang mic“ (dudng néi cdc diém c6 cing z_value). Ngoai ra ta cén c6 thé thém mt ma tran color dé x4c dinh mau cho dé hoa. Méi phan ti ota color ting vi mét phan ti cita z_value. Cac gid tri mau sé duge sit dung trong mét bang mau, va ta 6 thé thay ddi bang 46 nhd lénh colormap (name). Néu khéng khai bao ma tran méu, MATLAB sé tu dong gan. color = z_value. Dai mau c6 thé dude co dan thang nbd lénh caxis (color_min, color_max), Ban doc cé thé tim hiéu ky hon vé cae bing 06 sin cha MATLAB bang cach goi help graph3d. 2.7.2 Phéi cdnh (Perspective) trong dé hoa 3-D Cé thé dang lénh views (horizontal, vertical) dé phdi cinh cho dé hoa 3 chiéu bing c&ch khai cc géc theo phuldng nim ngang (horizontal) va phudng thang diing (vertical) tinh bang dé (°, Degree). Géc chudn cho triée 1 (-37.5°, 30°). Ta 6 thé quan sat céc kha nang biéu dién khdc nhau minh hoa d hinh 2.10. Ngoai ra, cling cé thé tao dumg hay thay déi phdi canh bang cach nhay va kéo thé chuét, sau khi da goi Iénh rotated 2.7.3 Vidy vé dé hoa 3-D 6 phéi cdnh Trong vi du sau day, lénh meshgrid cé tac dung tao nén hai ma trén X va Y tir hai vector x va y, cd hang va ot ting vdi x va y. TU dé MATLAB tinh duge ma tran Z, Toan bé vi du bao gém chuéi lénh (cAt dudi dang File 6 tén Fig02_10.m) sau day (hinh 2.10): x = 020.0522; y= 1:0. (X,¥] = meshgrid(x, y)7 ¥Produce matrix over the range of x, y 2 = (¥#1).* cos (2*pitX.*2) + (¥-1).* sin(2*pitx.#2) / figure 40 2 Xuat va nhgp di ligu trén man hinh subplot (221) surf (X,Y, 2); view (-40, 30); title (‘surf (x, ¥, 2); view (-40, 30)7")s subplot (222); mesh (X, ¥, 2): view (-20, 30); title (‘mesh (x, ¥, 2): view (-20, 30)7')7 xlabel (‘grid off; box on"); grid off; box on; subplot (223); waterfall (Xx, Y, 2)7 view (-20, 10); title (‘waterfall (X, ¥, 2); view (-20, 10);"); subplot (224); contour (Xx, Y, 2)i title (‘contour (X,Y, 2);")s Sut YB wew (40, 30); tmesh (% Y, 2) view (20, 30) 6: Ss ne IN \ i NIA In » $ grid off; box on; ‘contour (X, Y, 2); Hinh 2.10 Vi du vé cdc phuong phép biéu dién khée nhau adi vai dit ligu 3-D 2.8 Nhap, xuait va in dé hoa 41 Do hoa 3-D [XY] =meshgrid (x vector,y_vector) Ma tran toa d6 plot3 (xvalue,y_value,z_value...{,plotstyle]) Ve 3-D ( surf (xvalue,y_value,z_value...[, color}) Ve 3-D (mat) | mesh (x_value,y_value,z_value...[, color]) va 3-D (ludi) waterfall (x_value,y_value,zvalue...[...]) Vé 3-D (thac née) contour (x_value,y_value,zvalue...{...]) Vé 2-D (nét déing mite) box fon | off] Dong / ngat box | rotates. | off ‘T90 phdi canh nh3 Mouse | view (horizontal, vertical) Dat géc phéi canh zlabel (string) Dién kf tu cho trucz | Dat mau name) Chon mdu Lcaxis (color_min, color_max) Co dan thang mau _ J 2.8 Nhap, xuat va in dé hoa éu cin phai gan m cia Figure, ta 6 thé sit dung hai \énh variable = image (variable) Ele Eat Yew Jet Jods Wrdbw Be OSES KAAS PAD a an 0) xy] ‘60 0] rot o| sx0| 000 Hinh 2.11 File dnh dusge gdn vao khudn hinh ciia Figure Ot File d6 hoa c6 sin (vi du: File anh) vao khudn hinh imread (file, fmt) va 42. 2 Xuait vi nhap ditligu crén man hinh Bang lénh imread ta gan File dé hoa vdi ¢inh dang fmt cho bién variable, Néu variable nhan hinh anh chi bao gm gam mau xm, variable sé 1a mot bién 2 chiéu. Néu dé JA anh mau RGB, variable sé 1A mot mang (Array) 3 chiéu, Dinh dang cita dé hoa duge khai bao bai fmt’. Lénh image (variable) s8 xudit dé hoa mdi g4n cho variable ra man hinh Figure. Theo cach vita mé ta, nhiing dong Iénh sau day sé tao ra mét Figure (hinh 2.11) c6 chita anh véi dinh dang Jpg ctia Trung dai hoc Bach Khoa Ha N6i Aanoi_uni.jpg. >> example = imread(*hanoi_uni.jpg'," jpeg"): >> image (example) Dé hoa Figure cha MATLAB cing cé thé dude xuat sang cac dinh dang khac. Lenh print ~fnumber s@ in Figure mang sd number ra méy in. Lénh print fnumber option file sé xudt Figure thanh File véi cdc dinh dang a6 hoa khac. Vi dy: bmp (Windows bitmap), emf (Enhanced metafile), eps (EPS level 1), 3p (JPEG image), pcx (Paintbrush 24-bit) hay tif (TIFF image, compressed). Dé biét chi tiét ban doc hay goi lénh help print Dé minh hoa, sau khi da tao ra duge dé hoa Figure] nbu hinh 2.11, hie nay ©6 thé vigt -Enumber = ~£1, ban doc hay lan lugt thiz chudi Iénh sau day: >> print -f1; 4 Print to standard printer >>print -fl -dmeta ‘picture’; & Convert to picture.emf >>print -f1 -depse ‘picture’; $ Convert to picture.eps Néu can phai Juu lai dé sau nay xis ly, ban doc cé thé cat cae dé hoa da thu duge thanh File vi dinh dang fig cla MATLAB. Dé cat, hoac ta di theo menu File / Save as, hoac goi lénh saveas (handle, ‘file’ (, format}). Lénh saveas c&t handle (Figure hién tai, c6 thé ding act dé héi) thanh tép c6 tén file véi mét trong cae dinh dang: ‘fig’ (File nhj phan), ‘m’ (gm mét File fig va mét File Script, la File s8 goi File £1g). Ngodi ra, c6 thé dang lénh print dé cat vai cdc dinh dang khac nhu da mé ta d trén. Dé hoa: Nhap, xuat va in print -fnumber In dé hoa ra may in print -fnumber -dfimt file Cat dé hoa ra file véi dinh dang fmt saveas (handle, ’ file’, fig’) Cait dé hoa duéi dinh dang MATLAB variable = imzead (file, fmt) Gan cho variable dé hoa cit. duéi dinh dang fmt trong file image (variable) Xudt dé hoa thugc variable ra man hinh * Céc dinh dang: ‘bmp' Windows Bitmap, ‘ico’ Windows Icon Resources, "}pg° hote jpeg’ Joint Photographic Expert Group, Image File Format. x’ Windows Paintbrush, ‘tit’ hoc "ti ft Tagged 2.9 Giao dign dé hoa 43 2.9 Giao dién dé hoa Dé tién dung va thoai mai, ta c6 thé tao nén mét giao dién dé hoa! (GUI) gitta ngudi sit dung vA MATLAB. Giao dign dé 14 mdt d6 hoa giao lu tfch cuc (interactive), duoc xAy dung tuong ty nhut mét hop adi thosi (Diaglog Box). ‘Trong giao ditn dé, ta c6 thé xudt dat ligu dudi ca hai dang: Van ban va dé hoa, DE tao GUI, ho’c ta tao theo phuong thie thi cdng, hodc ta tan dung cdc cong cu dé hoa do MATLAB cung cap. Muc 2.9 s€ gidi thigu ci hai phugng thitc. Tuy nhién, phan trg gidp tét nha i ao GUI van 1a cuén s6 tay véi ndi dung v6 cing phong phui va chi tiét, duge eaip kém theo dia CD cai MATLAB. 2.9.1 Layout (dién mao) cia GUI nén hay xtt 1y Layout céa GUI, ta vao lénh guide dé goi trinh soan thao GUIDE va thu duge mét Layout rng nhu hinh 2.12, Hink 2.12 Trinh GUIDE md cita 86 soan théo GUI, bat déu béing mot Layout ring * Graphical User interface 44 2 Xust va ohdp di ligu tren man hinh Tuy nhién, ta s8 quay trd lai véi quice sau, vi chi khi dé ta méi thute sub r6: guide da lam thay cho ta nhimg viéc phién todi nhu thé nao. Cho dén nay ta da lam quen véi mét s0Iénh nhwt input. disp hay fprincé, phuc vu vi ohgp / xudt ky tu va so ligu lén MATLAB Command Windows. Viéc tao GUL chinh ta nham tao nén mi ct gidc, rat thudn tién. Han thé nia, ta con cé thé dang GUI dé giam sa trinh, hién thi cdc dac tinh cia déi tugng. cong cy dé hoa, phyc vu nhap /xudit mot cich true tcdic qua 2.9.2 Nhap va xuat ky ty, sé ligu ra GUI Ta hay thit goi chudi céc lénh sau day vai tac dung nhap gid tri nhiét do do ng do Fahrenheit, saui d6 quy adi tudng dusng sang 46 C (Celsius) >>f = input('Enter temperature (degrees K): '); p> = (f - 32)*3/9; >> printf (1, ‘Temperature (degrees C) sg\n", ch: Ba dong lénh trén day da thyc hién cdc thao tac * Nap gia tri dau vao « Thuc hién tinh quy déi tung duong © Xudt gid tri quy déi ra man hinh. Vay ta hay thit tim céch cdi cdc ding lénh trén, sao cho ching thyc hién trong khudn khé cia mét khung dé hoa nao dé. Tao khung hinh déu tién Dé tao ra hai khung hinh chi nhat trong cita sé Figure hign tai’ vdi mau nén xam, ban dg¢ hay Ian lugt vao chudi lénh sau day. set(gcf, ‘DefavltWicontrolUnit', 'Nermalized') _ = uicontroligef, rie "style’, ‘Frame', ‘Position’, {0.1 0.1 0.8 0.31): frame2_ = uicentrol (get, Bo ‘stylet, ‘Prame', 600 ‘Position’, 10.10.6 0.8 0.3)); set(framel_, ‘BackgroundColor’, [0.50 0.50 0.50)); set (frame?_, ‘BackgroundColor’, [0.50 0.50 0.50]); * Néu hign cai khong e6 Figure nao dani duge md, MATLAB sé ty dgng tao Figure mat 2.9 Giao din dé hoa 45 Hai khung (Frartes) a6 06 géc trai phia duéi dat d hai toa d6 (0.1 0.1) va (Q.1 0.6), cng c6 chiéu cao 0.3 don vj va bé réng 1a 0.8 don vi. Tai day can phai hr ¥ ban doc: Den vi duge tinh bang % cia kich cd ngoai cla Figure. Vay ta cé thé dién dat lai cho dé hiéu nhu sau: © Khung thit nhat 6 géc trai phia dudi tai diém cé toa d6 tng vai 10% chiéu ngang va 10% chiéu cao ca khung ngoai Figure © Khung thit hai o6 géc trai phia dutéi tai diém c6 toa dé ting véi 10% chidu ngang va 60% chiéu cao cda khung ngodi Figure. * Ca hai khung 6 chiéu cao bing 30% chi bé ngang cla khung ngoai Figure cao, va bé ngang bing 80% Dung inh edit va text dé nhap / xudt ky tyva sé ‘Trén day ta di sit dung lénh uicontrol dé tao va xée dinh vj tri cia hai Khung hinh. Doan lénh sau day si dung vicontrol dé vit chudi ky tr “Fahrenheit® (chuéi Text) Ién khung bén trén. text_f{_ = uicontroligef, ‘stylet, ‘Text’, ‘string’, ‘Fahrenheit: ', Position’, (0.30.7 0,2 0.05), ‘HorizontalAlignment', ‘Left'); Chudi ky tu “Fahrenheit" duge dat vao ding vi tri dén trai cia 6 cé Position ghi trong doan chyong trinh trén, Doan sau day su dung Edit dé viét chudi ky ty “68.0" vao vi tri bén canh cia “Fahrenheit*. Chudi ky tu dé c6 vi tri dén phat trong 6 (Position Box). edit_f_ = vicontroligcf, "style’, ‘Edit’, "String, "68.0", a ‘Position’, [0.60.7 0.1 0.05], HorizontalAlignment', ‘Right', ‘Callback’, ‘£c_cale' }; Do sth dung Edit, chudi ky tu “68.0" 18 chudi c6 thé vit lai duce (editable) true tiép trén GUI. Sau khi nha mit [Enter], gia tri mdi viét lai duge tiép nhgn va MATLAB sé goi leah viét trong phdn Callback: fc_calc. Cuéi cling, ta cén phai ding vicontrol dé tao ra hai chudi Text, hién thi ky tu “Celsius* va “20.0" trong khung bén dvéi. text_cl_ = uicontrol (gef, tyle', "Text!, ‘string’, ‘Celsius: | 46 2 Xusit va nhap da ligu trén man binh Position’, [0.30.3 0.2 0.05), ‘HorizontalAlignment', 'Left'); text_c2_ = uicontrol (gc, ‘style’, "Text", ‘string’, 120.0", ‘Position’, [0.60.3 0.1 0.05), ‘HorizontalAlignment', 'Right'): Sau khi da lan lugt vao tat ca cdc chudi Iénh trén ta sé thu duge két qua nhu hinh 2.13, Dé thuan tién, ban doc nén viét cde lénh dé trong mét Script (m- File), vi du: Fig02_13.m. errr Ele Edt View Inset Tools Window Help Hinh 2.13 Vi du GUI phye vu tinh quy déi tit Fahrenheit (F) sang Celsius °C) Ty dong cap nhét gia tr’ len GUL Dé hon thién vi dy GUI é hinh 2.13, ta cén phai thyc hign chttong trinh véi nhiém vy tinh quy déi tit “K sang °C va ty dong dién két qua tinh vao 6 bén canh 6 mang ky ty “Celsius*. Doan chiiong trinh phye va vo muc dich “Callback* (hoan tra gid tri) dé duge eat dudi tén fe_cale.m.. 2.9 Gino dign 86 hos 47 £ = get(edit *String'); £ x2num(£)7 © = (£ = 32)*5/9; mum2str le); setitext_c2_, 'Steing', c); Doan Script trén di nhan gia trj do lénh uicontrol ‘Edit’ doe vao dudi dang String va sau 6 lan lugt: © bién déi ty String sang dang sé (nh stx2num), «tinh quy déi tir nhigt do Fahrenheit sang Celsius, « —-bién déi ta sé sang String (énh num2str) va + xuat két qua duéi dang String ra GUI nha text_c2_ 2.9.3 Nhap sé ligu ti thanh teugt (Slider) Ngoai cach nhap sé ligu tir ban phim, ta c6 thé nhap s6 liéu tir mgt thanh trugt. Ban doc hay hinh dung ra vai tro cia mot bign trd, thudng duge sit dung dé (vi du) thay doi gid tri dat (gia tri chu dao) ctia mét véng diéu chinh tuong tu Chu y: MATLAB chi hd tro vide xay dung céc Slider theo phutong nim ngang (horizontal) chu khong hé tr¢ tao Slider theo phuang thang dimg (vertical). Dé tao Slider (hinh 2.14), ban doc hay nhap chudi lénh: slider_£_ = uicontrol(gcf, ~ "style', ‘Slider’, ‘Min’, 32.0, ‘Max', 212.0, ‘value', 68.0, oo ‘Position’, (0.6 0.8 0.2 0.05), : "Callback", 'fc_slider_f; fe_calc'); Vi dy trén cho thay: Callback c6 thé goi mat chudi céc lénh MATLAB, viet cach bdi déu chifm than hode dau phdy. Chudi Callback goi fe_slider fm: f£ = get(slider_f_, ‘Value'); £ = num2ste(£)7 set(edit_t_, ‘String’, £17 tac dung nhap gid tri nhiét dd git tai ‘Value’ cla slider_f _£, vao vi tri bén canh 6 ky tu “Fahrenheit", Sau dé, Callback goi tiép fe_cale.m dé tinh quy ddi gia tri mbigt 49 va gan vao vi tri canh 6 ky tu"Celsius". 48, 2 Xuiit va nhap di ligu trén man hinh Tuy nhién, dé c6 thé cap nhat duge gia tri méi, do ngudi sit dung trugt Slider gay nén, ta phai thay déi lai chudi lénh Callback cha Edit uicontrol nhu sau: ‘Trong d6, fe_edit_fim get(edit_¢_, 'String'); £ = str2num(f)7 set(slider_f_, 'Value', £); 6 nhiém vy cap nhat gid tri gitt tai ‘Value’ cla slider_f_f, dé rdi sau d6 fe_calc.m lam nét phéin vige con lai: Tinh quy déi va gan vao vj tri canh 6 ky tut “Celsius” ‘Tu day tré di, cd hai khung (Frames) cia GUI hogt dgng hoan toan déng bd véi nhaw. Ele Est, Yin neat Tools) Window" Heb Hinh 2.14 Quy adi tit Fahrenheit (F) sang Celsius (°C), nhap gid tri béing thank trugt ‘Slider) 2.9 Gino dién dé hoa 49 2.8.4 Nhap dif liéu ty chon (Popup Menu, List Box, Radio Button and Check Box) Ngoai kha nang nhap dit liéu cé dinh theo kiéu ky ty (String) hay kiéu s6, ta hodn toan c6 thé thuc hién viée nhap tay chon ty mot danh myc nao dé. Dé minh hoa, ta tam thdi rdi bé GUI dé quay vé vai Command Windows va thuc hién chuéi lénh sau day: £ + input(/Enter temperature (degrees F): '); £ + 459.75 (E - 32) 4 5 / 97 © + 273.155 choise = input{{’Enter 1 for Rankine,’, ' 2 for Ceisius,’, : ' 3 for Keivin: * Ds: if enoise == 1 Temperature (degrees R) is: tg\n’, ©): 2 ' Temperature (degrees C) isi $g\n’, cl; 3 elseif choise Iprinté(1, ’ Temperature (degrees K) is: tg\n’, ky: end Gia sit ban doe eat chudi Iénh dé trong mét File e6 tén la test.m vdi gia tri nhap cua nhiét dO c6 don vi 1a °F (46 Fohrenheit), gia tri xuat Jén man hinh cé thé duge biéu dién véi ddn vi *R (46 Rankine), °C (d6 Celsius) hose "K (6 Kelvin). Khi goi test.m ta thu duge két qua: >> test. Enter temperature (degrees F): 26 mter 1 for Rankine, 2 for Celsius, 3 for Kelv Temperature (degrees R) is: 485.7 ‘Trong vi du trén: Khi duge héi ta 44 chon nhiét dO dau vao 1a 26°F, va chon dich quy déi la °R. Tuy nhién, cng cu GUT cba MATLAB cho phép ta thuc hién stt ua chon cach nhip dif liu vao mét cach thuan Igi hon thé. Tidp tuc vi du tinh quy doi v8 xudt gid tri nhiét dé, muc nay gidi thiéu vdi ban doc bén prasing hap tay chon sau day: © Phung an menu (Popup Menu). an «Phuong an hép danh muc (List Box). + Phung an nut chon (Radio Button). i dap (Check Box), «Phuong an hop 50 2 Xuslt_ va nb§p di Higu trén man kinh Phuong én Popup Menu Ta hay x6a bé ky ty "Celsius" trong Ignh text_cl_va thay vao d6 kha ning lya chon theo Popup Menu (hin 2.15) nhvt sau: delete (text_cl_) popup_c_ = uicontroligcf, ‘style', *Popupmenu', ‘string’, ‘Rankine |Celsius|Kelvin', ‘value’, 2, ‘Position’, [0.30.3 0.2 0.05], "Callback', '£c_popup_c; fc_cale2"); Plrmrirsl Ele Eét View Inset Joos Window Heb Hink 2.15 Quy adi tit Fahrenheit CF) sang don vj tity chon: Phuong én Popup Menu Hinh 2.15 1a két qua thu dugc sau khi ta bé xung chudi lénh trén. Khi kich chudt vao Popup Menu, c6 ba kha nang Iya chon sé xudt hién, tiép tuc nhay chuét vio mét trong ba kha nang dé, Popup Menu sé bién mat chi cdn lai dan vj duge chon. Khi ding chudt kéo thanh trugt 6 Frame phia trén, ta sé 6 gid tri quy ddi sang don vi duge chon hién thi 8 phia dudi. ‘rong dean chuong trinh trén ban doe hay Iuu ¥: Then chét la ‘ Value’ véi gid tri dat sin 1a 2. Khi Callback goi fe_popup_e.m: 2.9 Gio dién dé hoa A choise = get (popup_c_, 'Value'); gid tri cha bién choise duge dita téi ‘Value’. Sau dé Callback goi tiép fe-calc2.m aé xem két qua chon duge eat trong choise. £ = get(edit_f_, 'String'); £ = str2num(E); raf + 459.7; c 32) #5 / 9; 273.155 it choise elseif choise elseif choise end € = sumdstr(t); set (text_c2_, ‘String’, tl; Can hutu ¥ ring, dé dat duge két qua nhu hinh 2.15, ta cbn phai béo cho Edit VA Slider vicontrois biét dé sit dung fe_cale2.m (trude kia hai lénh dé ding: fe_calc.m) bang cach bé sung thém cde dong sau: set ledit_f_. ‘callback', ‘£c_edit_f; fc_calc2"); set (slider f. "Callback", fc_cale2'); Chi_y: Bang cach thay ‘Popupmenu’ uicontrol béi ‘Listbox’ uicontrol ban doc sé e6 duge phitang 4n List Box (hGp danh myc). Diém khae duy nhat la: Néu sau khi chon, Popup Menu chi chia mét phan tu, thi List Box 6 thé chia déng théi trong danh muc nhiéu phan ti hon, duy nhat phu thude vao chiéu cao tai vi tri (' Position’ property). Phuong 4n Radio Button (nit chon) Ta hay ding Iénh delete (popup_c_} dé xba uicontrol tao Popup Menu ‘Rankine/Celsius/Kelvin* va thém vao dé ba uicontrol tao ba nut chon thit nguyén nhiét dé sau day: delete (popup_c_); strings = [‘Rankine'; ‘Celsius’; 'Kelvine']; show = [ 0 : 1 7 0 1: ys =[°3 i ame meee 1*0.075 + 0.075; 52 2 Xudt va nhop dit ligu trén man hinh for i=1:3 radio_¢_(i) = uicontroligef, ‘style’, *Radiobutton', "string", strings (i), ‘value', show (i), ‘Position’, [0.3 ys(i) 0.2 0.051, ‘Callback’, ‘£c_radio_c; fc_calc2"); end ‘Két qua thu duge sé nhyt hinh 2.16 sau day. fiom fle EGt Yew Inset Tools Window Heip Hink 2.16 Quy déi tit Fahrenheit CF) sang dom vi tity chon: Phuong dn Radio Button Nut duge chon ban dau la “Celsius* (*yelue’ nhan gid tri ban dau 1a 1). ‘Néu ta ding chudt nhay vao mot trong ba nut, MATLAB sé dién gia tri vao nuit 6, sau dé goi chudi Callback véi cdc lgnh a dinh. Cén Iuu § 18 ta chi sit dung m§t chudi Callback chung cho cd ba nit. Truée hét Callback goi fe_radio_c.m a& nhan bist xem mit nao (1, 2 hay 3) duge chon, sau dé ct gid tri dutge chon vao bién choice. 2.9 Gino dign dé hoa. for choice t (radi Script trén 18 mot ving lap, so sinh sO (handle) C21 1back do thu duge i lo ham gcbo tra lai) véi sé (handle) cla méi nut. Nut nado cé sé tring sé duge déng (turned on, ‘Value’ = 1), mit nao khac 6 s& bi ngdt (turned off, ‘value’ = 0). Cuéi cling, Callback goi fecale2.m dé thye hin viée tinh quy Gi da duge chyn va hign thi két qua. 2.9.5 Cae phuong phap tao GUI Thong qua mét vi dy cu thé xuyén suét cae muc 2.9.1 ~ 2.9.4, ban doc da lam quen véi cach tgo GUI, da thdy duge kha nang phong phi cia cae cong cu do MATLAB cung eifp. Tuy nhién, vi dy dé méi cho thay cach tao GUI theo phugng phap thu cong. Con c6 thé tao GUI mot cach dan gidn han nila bing cdc céng cu 6 hoa. Trén eo sd vi du tinh déi tién “Exchange of Funds" (duge trich vi tai Wéu tham khéo), myc nay hé thdng héa hai phuong phap, gitip ban doc cb mot cach nhin so sfinh, thugn tién khi can phai Iya chon. a) Phuong phap tao GUI bang cong cu dé hoa ‘Ta da biét: Khi vao lénh guide ta sé goi trinh dé hoa GUIDE dé soan thio Layout, ké: qua dau tién la Layout rong 6 hinh 2.12. Viée dau tién phai lam 1a md Menue Tools/Application Options a8 xc dinh: © Ligu ta chi mudn tao GUI duéi dang file ed dinh dang .fig. © hay déng thdi tao ca script (m-file). Trong vi du sau day ta sé chon Option nay. Sau khi di hoan thién, dé sti dung GUIDE ta chi viée nhap ten cia m-file dé 6 cita sé Command Windows, hoac kich hoat 6 Menue ToolsiActivate Figure. Tiép theo, ta ln ligt sit dung chugt dé gap cdc phan tit cia GUI ti thu vién nam phia bén trai cha Layout réng (hinh 2.12) va nha vao cae vi tri ta muén. C6 thé st dung chudt dé co dan, thay déi kich thude cla Layout va cba cdc phan tit thudc Layout. Cac kich thude xdc dinh trén Layout cing sé la kich thuée xuat hién trén GUI sau nay (hinh 2.17), Cac phan tit eda Layout duge quin If theo mot edu trite cb phan edp, trong dé dé hoa cia GUI dung 4 cap cao nhat. Ca thé kiém tra cau tric dé bing cach mé cita s6 Tools/Object Browser (hinh 2.18: hinh 6 gitta, bén trai) 54 2 Xust va nhap di ligu wen man hink Méi phn tit via cita sé Layout déu cin phai 6 nhiing dac diém (tham sé) nhat dinh. Dé soan thao cac tham sd ay, ta sit dung Property Inspector (hinh 2.18: hinh phai), goi bing mt trong cae céch: Nhay chudt kép vao phan tit, ding lénh inspect, hay qua Menue Tools/Property Inspector. aa ¢ varargout {1} = fig; globa} factor; % Factor global define Factor = 1.95583 ; ¢ Default for Factor set (handles.Monetary, ‘String’, ‘DEM'); 4 Default for Monetary elseif ischar(varargin(1}} % INVOKE NAMED SUBFUNCTION OR CALLBACK [varargout(1:nargout}] = feval (varargin{:}); 4 PEVAL switchyard cateh disp (lasterr); end end Phan dinh nghia nim 6 déu cla ham AMF dé duge tao nén hoan toan ty dong. Ngudi thiét ké GUI duy nhat chi phai dién bang tay ba ding sau: global * Factor global define Factor = 1.95583 + & Default for Factor handles Monetary, 'String', DEM"); Default for Monetary Khi goi GUI, ba déng lénh dé cé tac dung lap tri cho bién Factor va xac dinh dé 1a bién cé tc dung global trong pham vi cba monetary_guide, cho phén cac ham con st dung Factor mét cich dé dang. Sau 46, cae gid tri cla hé sé quy déi gitta déng tién chung Buro va déng tién riéng cla quéc gia duge dat 58 2 Xust A nhip dit ligu trén min hink vao Mark cia CHLB Dite: 1.95583 va ‘DEM’. Trude d6, vang danh mye chon tuong ting ‘Germany’ di duge dat gid tri lA "1" tai ding ‘Value’ cla cita sb Property Inspector. Tuy nhién, ta cing cé thé thyc hign thi cdng thao tac do bang cach viét thém dong lénh set (handles. Land, ‘Value’, 1). Phén déu cua Application M-File (AMF) Qua vi dy trén ta thay, do lénh if, phéin ddu cia ham monetary_quide da bj chia thanh hai phan nhu sau: « Phan thi nhat sé duge thyc hién, néu khéng c6 trao tham sé khi goi monetary guide. Dé chinh 1a lin goi GUT ddu tién: Dé hoa duge mé ra, chi sO handles duge edt vao bién fig, mdu cla a3 hoa duge lap, GUI duge gan.cho bign handles va ede thing sf cba GUT duge xac lap. «Phan thi hai duge thue hién khi GUI d3 duge kich hoat va chi duge goi: Hoi khi nut chon bi nhén, hodc khi danh mye chon hoat déng, hoac khi goi mét ham con xAc dinh 4 ving CallBack. Cac ham con ciia Application M-File Phan ham con ¢6 chita cfc ham cho phép thuc hién céc thao tac theo yeu cu. Vi du: Thay déi ky ty nhap (Style “ edit’), thay doi danh muc chon (Style ‘popupmenue’), hay goi ham con riéng trong ham monetary_guide nhu Land_Callback cla danh mue dé chon nuéc. ‘ function varargout = Land Callback(h, eventdata, handles, varargin) ghoba) Factor switch get (handles.land, Value’) » case 1, Factor = 1.95583; set (handles. M tary, ‘String’, 'DEM"): case 2, Factor = 6.55957; set (handles.Monetary, ‘String’, 'FRF'); case 3, Factor = 1936.27; set (handles.Monetary, 'String', 'ITL'): case 4, Factor = 13.7603; set (handles.Monetary, ‘String’, 'ATS'): end; . function varargout = Value_Land_Callback(h, eventdata, handles, varargin} set (handles. Value_Land, 'Value", str2num(get (handles .Value_Land, ‘String'))) ‘ fonction varargout = Value Euro_Callback(h, eventdata, handles, varargin) set (handles. Value Euro, 'Value', stz2num(get (handles .Value Euro, 'Steing'))) ‘ fonction varargout = Euro?Land_Callbackih, eventdata, handles, varargin) global Factor set (handles. Value_Land, ‘Value’, get (handles.Value Euro, ‘Value') *Factor) 2.9 Gino dign dé‘noa 59 set (hana) -Value_Land, ‘String’ nundete (get (handles Velue_Land, 'Value')}) C fonction varargout global Factor Land2Eure_Callback(h, eventdata,. handles, varargin) set (nanddes.Value_Buro, 'Value", get handles. Value_Land, "Value" }/Factor) set (handles. Value Euro, ‘String’ , num: er (get (handles Value Euro, 'Value'))) Méi lan, khi thém mot phan tit (c6 kha nang thyc hién mét thao tac ndo d6) vao Layout cia GUI, MATLAB sé ty dng bd sung thém mét ham con mang tén TogName_Callback. Trong dé TagName la ky higu gianh cho thao tac, viet 6 ding Tag cha cita sb Property Inspector. Théng thuting, MATLAB dat tén ! neekbox1_Callback, popupmenu3_Cal lback wy. lin lugt danh 86 (néu 66 nhigu him con cing loai) ching theo thi tw ting dan. Vi du: function varargout = checkbox! Caliback(h, eventdata, handles, varargin) ' Stub for Callback of the sicontrol nandles.checkboxt. ‘boxl Callback not implemented yet."} dispi ‘che Néu ngudi thiét ké GUI mudn dat tén khéo, ngudi dé sé phai cha ding dat tén trén dong Tag trudc khi cat (save) GUI. Néu da 1a cat rdi, ta khong chi phai thay déi Tag trong Property Inspector, ma cn phai déng thdi thay tha céng tén ham con trong AMF. b) Phuong phap thi céng tao GU? Dé cé thé truy cp vo tham s5 cha phan tt (object) cha GUI, phan tit dé phai cé kha ning duge MATLAB nh§n biét mt edch chinh xéc. Cé thé bao dim kha nang nh4n biét nha dae diém Tag. Lénh findob (‘Tag’ , string) sé hién thi chi sé nh4n biét (goi la handles) cba phan tit 6 tén string. Vige truy cp doc néi dung duge thye hign béi Iénh variable = get(handle,‘Parameter’). ‘Tuong ty, co thé ghi bang lénh set (handle,’ Parameter’). Dé ghi / doc sé ligu vao cde ving ‘text’, ‘edit’, ta phai ding cac lénh scanf, sprint£ hoac num2str. Khi dinh tao GUI theo phiténg phap thi céng, ngudi thiét ké nén xéc dink trude pham vi tinh ning dy dinh cling nbut vé phac bé cue cia Layout. Thao tac mang tinh chudn bj nay sé lam don gidn céng vige sau nay rit nhiéu. Bang lénh handle = figure (‘paramatér' value, ...) ta tgo m6t cita sé réng. Sau nay, gia tri handle sé dude ding dé sép xép trat tu cdc phan tit con (goi 1 Childs) cia Layout nO = figure('Units', ‘points’, ... ‘Position’, (100 100 300 100]; oo Xt va nap ig tet mt Cac phin tit con duge tao bai handle = uicontrol ('paramater' value, ...) Lénh dé cho phép ta guy dinh die diém cia phan tu con, va mdi dac diém sé duige khai bao trén mt déng riéng, xudng dang bdi dau ... Trinh tu khai bao dic diém khong c6 § nghia quan trong. Vi du: Doan mi MATLAB cua 6 bén trai hinh 2.17 06 thé cé6 dang sau: h1 = viconerol (‘Parent',hO, .. % Vang phap ky tu ‘Onits', ‘points’, ‘position’, (20 13 60 15}, - 'BackgroundColor', 11 1 11; 'string',' 1.00", Tag’, ‘value Euro’, "Style", 'edit'y; @ Whan biét phn ve Cav tham séCalLback s8 duge nhap theo cach tuong ty. Béi vi cae Iénh eta MATLAB déu dude vist duéi dang ky ty, dé dé phan bigt: Moi ky ty trong pharm vi mot lénh déu phai duge g6i gon ben trong diiu ngoac kép ** ging nhu trong vi dy sau day: h1 = uicontrol ‘Parent! ,h0, ‘Callback’, (‘Land=get (findobj{''Tag'*, Land’), "*value'');°7 Bang sau day téng hop céc lénh do MATLAB cung cfip dé tao GUI tha cong Cée lénh tao GUI figure (‘parameter’ value, ...) Tao ctta $6 ring | vicontsol (*parameter’ value, ...) Tao phan ti GUI vimenu ("parameter', value, ...) Tao menu cia GUL findob3 (' Tag’ , string) Tim chi st handle get (handle, ' parameter’ ) Doc tham s6 set (handle, ' parameter’ , value} Ghi tham sé num2str (variable (, format) ) Dio sb + Kg tt sprint (string, variable) Xudt ky tu | variable=_sscanf (string, format) Doc ky ty Sau day 14 ma MATLAB cita vi dy “giao itn tink quy déi tién", thiét ké thea phudng php the cong. Phan ma in ra day chi bao gém nhing tham sé cin thiét nhit nO = figure(‘Units', pointe', ... # Tham sé cla Layout Position', (100 100 300 1001, ‘uumberritle', off"), ..+ & Khong cO “Figure” & dong ten ‘Name’, 'ADYOLRR - Example for manual made GUI', -.. % Dong tén cla Layout ‘MenuBar', ‘none'}: & Khéng clin Mecu ? 2.9 Gino dign d hoa 61 hl = vicontrol('Parent',h0, + © Vong Text ‘units', ‘points', ‘Position’, (0 70 300 391, ‘FontSize', 24, 'String', ‘Exchange of Funds’, "style', "text'}: & Chon nuge Factor = 1,95583; & bat truse Monetary = 'DBM"; % bar trube hl = vicontrol (*Earent’,h0, % Tao Popup Menu ? ‘Units’, ‘points’, «++ Position’, [190 40 90 15), *BackgroundColor', (1 1 1], .. 'string', ('Germany'; "France '; "Italy ‘;"Austria'), "eallback', [*hand=get (findob§ (* vituand''), value!) ‘switch Land case 1, Factor = 1.95583; Monetary = 6.55957; Monetary = case 3,Factor © 1936.27; Monetary = 7 case 2, Factor peMst, FREY IMG. : case 4,Factor = 13.7603; Monetary = ‘‘ATS** end Feet (£ineob}(*'Tag'', ‘'Monetary''), ''String'', Monetary); '], ‘tag’, "Land", ... @ whan biét phdn tt "Style, 'popupmenu', ‘value', 1); © pat truée: Germany $ Gia tes aa tinn quy dé: sang evr hl = wicontrol(‘Parent',hO, ... ¢ Ving nhép da lieu ‘Units', "points", ‘Position’, (20 33 60 15], *Backgroundcoler’, {2 1 1], ‘String’,' 1.00", ‘vag’, 'Value_Evro', "stylet, 'edit'): ‘units', ‘points, ... ‘Position’, (60 13 30 18], ‘string’, "EUR", "style", ttext/)# + Gia tei hap Bang dény tin quéc gia @ whan biét phén oy uicontrel (*Parent', ho, 4 Vong nhap Text hl = uicontrol("Parent',hO, 4 vong mhap de 1idu ‘units', points", . ‘Position’, (190 13 60 15),

You might also like