355
 TS. PHM HNG LIÊN ĐẶNG NGC KHOA - TR N THANH PHƯƠ NG MATLAB VÀ NG DNG TRONG VIN THÔNG Tháng 11/2005

MATLAB Va Ung Dung Trong Vien Thong

Embed Size (px)

Citation preview

TS. PHM HNG LIN NG NGC KHOA - TRN THANH PHNG MATLAB VNG DNG TRONG VIN THNG Thng 11/2005 L0I N0I 0a0 ii iii N00L00 LI NOI AU.......................................................................................................... i MUCLU C..............................................................................................................iii 1.M AU ........................................................................................................... 3 1.1.NHAP MOT DONG LENH........................................................................................ 3 1.2.CONG CU GIUP .................................................................................................. 5 1.3.DNG MOT LENH HAY CHNG TRNH.......................................................... 6 1.4.NG DAN............................................................................................................... 6 1.5.KHONG GIAN LAM VIEC (WORKSPACE)......................................................... 6 1.6.SAVE VA LOAD D LIEU........................................................................................ 7 2.C BAN VE CU PHAP VA BIEN..................................................................... 9 2.1.MATLAB NH LA MOT CONG CU TNH TOAN............................................... 9 2.2.PHEP GAN VA BIEN.............................................................................................. 10 3.PHEP TOAN VI VECTOR VA MA TRAN .................................................... 14 3.1.VECTOR..................................................................................................................... 14 3.1.1.DAU : VA PHAN TRCH RA T VECTOR............................................... 15 3.1.2.VECTOR COT VA PHEP CHUYEN V........................................................ 16 3.1.3.NHAN, CHIA VA SO MU CUA VECT....................................................... 17 3.2.MA TRAN................................................................................................................... 19 3.2.1.NHNG MA TRAN AC BIET...................................................................... 21 3.2.2.XAY DNG MA TRAN VA TRCH RA MOT MA TRAN CON T MOT MA TRAN LN HN...................................................................................................... 23 3.2.3.TNH TOAN VI MA TRAN............................................................................ 27 4.O TH 2D VA 3D .......................................................................................... 32 4.1.NHNG O TH N GIAN.................................................................................. 32 4.2.MOT SO HAM C S DUNG TRONG VE O TH ................................... 34 4.3.CAC THUOC TNH KHAC CUA NG CONG 2D....................................... 37 4.4.IN AN........................................................................................................................... 38 4.5.O TH 3D.................................................................................................................. 39 iv4.6.BE MAT O TH .......................................................................................................40 4.7.HNH ONG...............................................................................................................46 5.BIEU THC RE NHANH................................................................................ 49 5.1.CAC TOAN T LOGIC VA BIEU THC QUAN HE .........................................49 5.2.BIEU THC IEU KIEN.........................................................................................53 5.3.VONG LAP.................................................................................................................56 6.TAP LENH VA HAM....................................................................................... 60 6.1.TAP LENH M-FILE...................................................................................................60 6.2.HAM M-FILE..............................................................................................................61 6.2.1.NHNG BIEN AC BIET TRONG HAM.....................................................63 6.2.2.BIEN TOAN CUC VA BIEN CUC BO...........................................................64 6.2.3.CACH GOI HAM GIAN TIEP .........................................................................65 6.3.TAP TIN VA HAM.....................................................................................................66 7.VAN BAN........................................................................................................ 69 7.1.CHUOI KY T ............................................................................................................69 7.2.XUAT VA NHAP VAN BAN...................................................................................71 8.GIAO DIEN NGI S DUNG (GUI) ............................................................. 77 8.1.CACH LAM VIEC CUA MOT GUI ........................................................................77 8.2.TAO VA HIEN TH MOT GUI .................................................................................79 8.3.THUOC TNH CUA CAC OI TNG................................................................85 8.4.CAC THANH PHAN TAO NEN GUI.....................................................................86 8.4.1.Text Fields...........................................................................................................87 8.4.2.Edit Boxes ...........................................................................................................87 8.4.3.Frames .................................................................................................................88 8.4.4.Pushbuttons ........................................................................................................89 8.4.5.Toggle Buttons ...................................................................................................89 8.4.6.Checkboxes va Radio Buttons.......................................................................90 8.4.7.Popup Menus......................................................................................................91 8.4.8.List Boxes ............................................................................................................93 8.4.9.Sliders...................................................................................................................95 9.TN HIEU VA HE THONG .............................................................................. 91 v9.1.BIEU DIEN MOT TN HIEU TRONG MATLAB................................................. 91 9.2.TAO TN HIEU: VECTOR THI GIAN................................................................ 91 9.3.LAM VIEC VI CAC FILE D LIEU................................................................... 94 9.4.PHAN TCH VA THIET KE CAC BO LOC ........................................................ 94 9.5.CAC HAM KHAC E THC HIEN LOC............................................................ 97 9.5.1.THC HIEN BANG LOC A TOC O (MULTIRATE FILTER BANK) 97 9.5.2.KH MEO PHA CHO BO LOC IIR................................................................ 98 9.5.3.THC HIEN BO LOC TRONG MIEN TAN SO .......................................... 99 9.6.AP NG XUNG.................................................................................................... 100 9.7.AP NG TAN SO ................................................................................................ 100 9.7.1.TRONG MIEN SO ........................................................................................... 100 9.7.2.TRONG MIEN ANALOG................................................................................ 101 9.7.3.AP NG BIEN O VA AP NG PHA ................................................. 101 9.7.4.THI GIAN TRE .............................................................................................. 102 9.8.GIAN O CC ZERO........................................................................................ 103 9.9.CAC MO HNH HE THONG TUYEN TNH...................................................... 104 9.9.1.CAC MO HNH HE THONG RI RAC THEO THI GIAN................... 104 9.9.2.CAC MO HNH HE THONG LIEN TUC THEO THI GIAN................. 108 9.9.3.CAC PHEP BIEN OI HE THONG TUYEN TNH................................. 108 9.10.BIEN OI FOURIER RI RAC........................................................................... 109 10. THIET KE CAC BO LOC ............................................................................. 117 10.1.CAC CH TIEU THIET KE BO LOC.................................................................. 117 10.2.THIET KE BO LOC IIR......................................................................................... 118 10.2.1. THIETKECACBOLOCIIRCOIENDATRENCACNGUYEN MAU ANALOG............................................................................................................... 119 10.2.2. THIET KE TRC TIEP CAC BO LOC IIR TRONG MIEN SO ............. 126 10.2.3. THIET KE BO LOC BUTTERWORTH TONG QUAT............................. 127 10.2.4. PHNG PHAP MO HNH THONG SO ................................................... 128 10.3.THIET KE BO LOC FIR........................................................................................ 129 10.3.1. CAC BO LOC CO PHA TUYEN TNH....................................................... 129 10.3.2. PHNG PHAP CA SO (WINDOWING)............................................... 130 vi10.3.3. THIETKEBOLOCFIRNHIEUDAITANVICACDAICHUYEN TIEP133 10.3.4. THIET KE BO LOC FIR VI GIAI THUAT BNH PHNG CC TIEU CO GII HAN (CLS CONSTRAINED LEAST SQUARE) ................................136 10.3.5. THIET KE BO LOC FIR CO AP NG TAN SO TUY CHON.............139 10.4.THC HIEN BO LOC ............................................................................................141 11. C BAN VE X LY ANH SO ....................................................................... 147 11.1.BIEU DIEN ANH VA XUAT NHAP ANH...........................................................147 11.1.1. CAC KIEU HNH ANH TRONG MATLAB.................................................147 11.1.2. OC VA GHI CAC D LIEU ANH..............................................................150 11.1.3. CHUYEN OI GIA CAC KIEU D LIEU................................................151 11.1.4. CAC PHEP TOAN SO HOC C BAN OI VI D LIEU ANH..........152 11.1.5. CAC HAM HIEN TH HNH ANH TRONG MATLAB..............................155 11.2.CAC PHEP BIEN OI HNH HOC.....................................................................156 11.2.1. PHEP NOI SUY ANH.....................................................................................156 11.2.2. THAY OI KCH THC ANH....................................................................156 11.2.3. PHEP QUAY ANH...........................................................................................157 11.2.4. TRCH XUAT ANH..........................................................................................158 11.2.5. THC HIEN PHEP BIEN OI HNH HOC TONG QUAT .....................158 11.3.CAC PHEP BIEN OI ANH.................................................................................160 11.3.1. BIEN OI FOURIER.......................................................................................160 11.3.2. BIEN OI COSINE RI RAC.......................................................................163 11.3.3. BIEN OI RADON...........................................................................................165 11.3.4. PHEP BIEN OI FAN-BEAM.......................................................................168 12. NANG CAO CHAT LNG ANH................................................................. 176 12.1.PHNG PHAP BIEN OI MC XAM.............................................................176 12.2.CAN BANG HISTOGRAM....................................................................................180 12.2.1. TAO VA VE BIEU O HISTOGRAM..........................................................180 12.2.2. CAN BANG HISTOGRAM.............................................................................181 12.3.LOC ANH..................................................................................................................186 12.3.1. LOC TUYEN TNH ..........................................................................................187 12.3.2. LOC PHI TUYEN.............................................................................................191 vii12.3.3. LOC THCH NGHI........................................................................................... 194 13. NEN ANH SO ............................................................................................... 199 13.1.PHNGPHAPMAHOAXLYKHOIBTC(BLOCKTRUNCATING CODING) .............................................................................................................................. 199 13.2.NEN TON HAO DA VAO DCT ......................................................................... 201 13.3.NEN ANH BANG GIAI THUAT PHAN TCH TR RIENG (SVD)................ 205 13.3.1. GII THIEU PHNG PHAP SVD............................................................ 205 13.3.2. NG DUNG SVD E NEN ANH SO ......................................................... 206 14. MA HOA NGUON......................................................................................... 203 14.1.TAO MOT NGUON TN HIEU.............................................................................. 203 14.2.LNG T HOA TN HIEU................................................................................. 206 14.3.TOI U HOA CAC THONG SO CUA QUA TRNH LNG T ................. 208 14.4.IEUCHEMAXUNGVISAIDPCM(DIFFERENTIALPULSECODE MODULATION) ................................................................................................................... 209 14.5.TOI U HOA CAC THONG SO CUA QUA TRNH MA HOA DPCM......... 210 14.6.NEN VA GIAN TN HIEU...................................................................................... 211 14.7.MA HOA HUFFMAN.............................................................................................. 213 14.8.MA HOA SO HOC (ARITHMETIC CODING)................................................... 215 15. TRUYEN DAN BASEBAND VA PASSBAND.............................................. 219 15.1.IEU CHE TNG T ......................................................................................... 219 15.2.IEU CHE SO ......................................................................................................... 221 16. KENH TRUYEN VA ANH GIA CHAT LNG KENH TRUYEN............... 231 16.1.KENH TRUYEN AWGN (ADDITIVE WHITE GAUSSIAN NOISE) ............. 231 16.2.KENH TRUYEN FADING..................................................................................... 235 16.3.KENH TRUYEN AO BIT NH PHAN.............................................................. 239 16.4.ANHGIACHATLNGTHONGQUAMOPHONG(PHNGPHAP MONTE CARLO) ................................................................................................................ 240 16.5.TNH XAC SUAT LOI TREN LY THUYET....................................................... 243 16.6.MOT SO CONG CU HO TR E VE O TH BER...................................... 245 16.7.GIAN O MAT (EYE DIAGRAM) ....................................................................... 247 16.8.O TH PHAN BO (SCATTER PLOT) .............................................................. 249 viii16.9.ANHGIACHATLNGDUNGKYTHUATSEMIANALYTIC(BAN PHAN TCH) ........................................................................................................................250 17. MA HOA KENH TRUYEN ............................................................................ 256 17.1.MA KHOI...................................................................................................................256 17.1.1. BIEU DIEN MOT PHAN T TRONG TRNG GALOIS......................257 17.1.2. MA REED-SOLOMON....................................................................................258 17.1.3. MA BCH.............................................................................................................262 17.1.4. MA KHOI TUYEN TNH.................................................................................264 17.2.MA CHAP.................................................................................................................269 17.2.1. DANG A THC CUA BO MA HOA CHAP.............................................270 17.2.2. DANG CAU TRUC TRELLIS CUA BO MA HOA CHAP .......................271 17.2.3. MA HOA VA GIAI MA MA CHAP................................................................273 18. CAC BO CAN BANG ................................................................................... 281 18.1.CAC BO CAN BANG THCH NGHI ...................................................................281 18.1.1. BO CAN BANG KHOANG CACH KY HIEU.............................................281 18.1.2. BO CAN BANG NH KHOANG TY LE ....................................................282 18.1.3. BO CAN BANG HOI TIEP QUYET NH.................................................283 18.2.CAC GIAI THUAT CAN BANG THCH NGHI..................................................284 18.2.1. GIAITHUATBNHPHNGTRUNGBNHCCTIEU(LMS LEAST MEAN SQUARE).............................................................................................284 18.2.2. GIAI THUAT LMS CO DAU (SIGN LMS) ..................................................285 18.2.3. GIAI THUAT LMS CHUAN HOA (NORMALIZED LMS)........................285 18.2.4. GIAITHUATLMSCOBCNHAYTHAYOI(VARIABLE-STEP-SIZE LMS) .......................................................................................................................285 18.2.5. GIAITHUATBNHPHNGCCTIEUHOIQUY(RLS RECURSIVE LEAST SQUARE) ................................................................................285 18.2.6. GIAITHUATMODULUSHANGSO(CONSTANTMODULUS ALGORITHM) .................................................................................................................286 18.3.S DUNG CAC BO CAN BANG THCH NGHI TRONG MATLAB............286 18.3.1. XAC NH GIAI THUAT THCH NGHI ......................................................286 18.3.2. XAY DNG OI TNG MO TA BO CAN BANG THCH NGHI .......288 18.3.3. TRUY XUAT VA HIEU CHNH CAC AC TNH CUA BO CAN BANG THCH NGHI ...................................................................................................................289 ix18.3.4. S DUNG BO CAN BANG THCH NGHI ................................................. 289 18.4.CAC BO CAN BANG MLSE ............................................................................... 295 PHU LUC........................................................................................................... 303 TAI LIEU THAM KHAO..................................................................................... 324 M u 3Chng 1I.N0 0a0 MATLAB l mt cng c tnh ton ton hc. MATLAB c th c s dng tnh ton, n cngchophpchngtavccbiu,ththeonhiucchkhcnhau.Gingnhmt chng trnh phn mm, chng ta c th to, thc thi v lu mt dy cc lnh my tnh c th chy t ng. Cui cng, MATLAB cng c th c coi nh l mt ngn ng lp trnh. Tm li, nh l mt mi trng dng lp trnh hay tnh ton, MATLAB c thit k lm vic vi nhng tp d liu c bit chng hn nh ma trn, vector, hnh nh. Trong mi trng Windows, sau khi ci MATLAB biu tng ca n s xut hin trn mn hnhcamytnh,chngtacthkhingMATLABbngcchdoubleclickvobiu tng ca n. Trong khi chy, ty theo yu cu ca ngi s dng, MATLAB s to ra mt hoc nhiu ca s trn mn hnh. Ca s quan trng nht l ca s lnh (Command Window), y l ni chng ta giao tip (tng tc) vi MATLAB v cng l ni chng ta nhp vo cc lnh v MATLAB s cho ra cc kt qu. Chui >> l du nhc ca chng trnh MATLAB. KhiMATLABhotng,contrchutsxuthinsaudunhc,lcnyMATLABang chngisdngnhplnhvo.Saukhinhplnhvnhnenter,MATLABpngli bngcchinraccdngktqutrongcaslnhhaytoramtcashnh(Figure Window). thot khi chng trnh MATLAB chng ta s dng lnh exit hoc quit. I.I.Nh4F M0I 00N0 LNh Bng 1.1: Tng quan gia cc php ton v lnh. Php tonLnh MATLABa + ba + b a ba b aba*b a/ba/b hay b\a xbx^b xsqrt(x) hay x^0.5 xabs(x) pi 4.1034e3 hay 4*10^3 ii hay j 3 4i3- 4*i hay 3 4*j e, exexp(1), exp(x) lnx, logxlog(x), log10(x) sinx, arctanx, sin(x), atan(x), MATLABlmththngtngtc,lnhscthcthingaylptckhinhnEnter. Nhng kt qu ca mi lnh, nu c yu cu, s c xut hin trn mn hnh. Tuy nhin, mt lnh ch c thc thi nu lnh c nhp vo ng c php. Bng 1.1 l danh sch cc M u 4php ton c bn v lnh tng ng ca chng c s dng trong chng trnh MATLAB gii nhng phng trnh ton hc (a, b v x l nhng s). Sau y l mt s lu nhp vo mt dng lnh ng: Nhng lnh trong MATLAB c thc thi ngay lp tc khi nhn Enter. Kt qu ca mi lnh s c hin th trn mn hnh ngay lp tc. Th thi hnh vi cc lnh sau y: >> 3 + 7.5 >> 18/4 >> 3 * 7 Lu rng khong trng trong MATLAB l khng quan trng. Kt qu ca php tnh cui cng s c gn cho bin ans. >> 14/4 ans =3.5000 >> ans^(-6) ans = 5.4399e-04 5.4399e-04 l mt cch th hin ca 5.4399*10-4.Lu rng ans lun c cp nht gi tr bi kt qu ca php tnh cui cng. Chng ta cng c th nh ngha nhng bin mi. Theo di gi tr c lu trong bin a v b: >> a = 14/4 a = 3.5000 >> b = a^(-6) b = 5.4399e-04 Khimtlnhcktthcbidu;thktqucanskhngcxuthintrn mn hnh. Kim nghim s khc bit gia hai biu thc sau: >> 3 + 7.5 >> 3 + 7.5; c th thc thi nhiu lnh cng mt lc, cc lnh cn c cch nhau bi du , (hin th kt qu) hay cch nhau bi du ; (khng hin th kt qu) >> sin (pi/4), cos(pi); sin(0) ans = 0.7071 ans = 0 Lu rng trong cc kt qu trn gi tr ca cos(pi) khng c hin th. M u 5Vi mi gi tr MATLAB mc nh s hin th dng c 5 ch s. Lnh format long s tng s ch s hin th ln 15 v lnh format short s gim tr v 5. >> 312/56 ans =5.5714 >> format long >> 312/56 ans = 5.57142857142857 Kt qu ca mi lnh c th cha vi dng trng, iu ny c th c khc phc bi lnh format compact. Ngc li lnh format loose s thm vo nhng dng trng. nhp vo mt biu thc qu di ta s dng du xung hng >> sin(1) + sin(2) - sin(3) + sin(4) - sin(5) + sin(6) - sin(8) + sin(9) - sin(10) + sin(11) - sin(12) MATLAB phn bit ch thng v ch hoa. Tt c cc k t t sau du % n cui dng ch c tc dng ghi ch. >> sin(3.14159)% gn bng sin(pi) Ni dung ca lnh thc thi cng c th c ly li bng phm . thay i ni dung ca lnh ta s dng cc phm mi tn v di chuyn con tr n v tr mong mun v sa lnh. Trong trng hp lnh qu di, Ctrl-a v Ctrl-e c s dng di chuyn nhanh con tr n v tr u v cui ca lnh. gi li lnh thc thi bt u bng k t, v d c, ta nhn phm sau khi nhn phm c. iu ny cng ng vi mt cm t, v d, cos theo sau bi phm s tm nhng lnh thc thi bt u bi cos. Lu : nn kt thc mi lnh bng du ; trnh trng hp xut ra mn hnh mt kt qu qu ln, v d xut ra mn hnh mt ma trn 1000x1000. I.2.00N0 00 0I0F 00 MATLAB cung cp mt cng c gip trc tip. Lnh help l cch n gin nht c gip . bit chi tit hn v lnh help: >> help help Nu bit tn mc hay tn mt lnh c th no , ta c th s dng lnh help mt cch c th hn, v d: >> help ops cho ta bit thng tin v cc ton t v cc k t c bit trong MATLAB. Khi s dng lnh help tn mc m bn mun gip phi chnh xc v ng. Lnh lookfor hu dng hn trong trng hp bn khng bit chnh xc tn ca lnh hay mc. V d: >> lookfor inverse th hin danh sch cc lnh v mt m t ngn gn ca cc lnh m trong phn gip c t inverse.Bncngcthsdngmttnkhnghonchnh,vdlookforinv.Bncnh lnh help v lnh lookfor cn c lnh helpwin, lnh helpwin m ra mt ca s mi th hin th mc cc mc gip . M u 6#Bi tp 1-1. S dng lnh help hoc lookfor tm kim thng tin cho cc cu hi sau: Hy tm lnh th hin php ton hm cosin o hay cos-1. C phi MATLAB c mt hm ton hc dng tnh c s chung ln nht (the greatest common divisor)? Tm thng tin v hm logarithms. I.3.00N0 M0I LNh h4 0h00N0 I8Nh Thnh thong chng s gp mt li bn trong lnh hay chng trnh ca mnh, li ny c th lm cho lnh hay chng trnh khng th dng li. dng lnh hay chng trnh ny li ta nhnthpphmCtrl-ChocCtrl-Break.ikhichngtrnhdnglitaphilm ng tc ny vi ln v phi ch trong vi pht. I.4.000N0 04N Trong MATLAB, lnh hay chng trnh c th cha m-flie, cc file ny ch l cc file text v cphnmrngl.m.CcfilenyphicttrongccthmcmMATLABthy c. Danh sch cc th mc ny c th c lit k bi lnh path. Mt trong cc th mc m MATLAB lun nhn thy l th mc lm vic hin ti, th mc ny c th c xc nh bi lnh pwd. S dng hm path, addpath v rmpath thm hay xa cc th mc ng dn. Cng vic ny cng c th c thc hin t thanh cng c: File Set path #Bi tp 1-2. Glnhpathkimtraccthmcctrongngdn.Cngmtthmcbtkvo trong ng dn. I.5.Kh0N0 0I4N L4M I0 {w08K5F40) Khi lm vic trong ca s lnh (Command Window), MATLAB s nh tt c cc lnh v tt c cc bin m chng ta to ra. Cc lnh v bin ny c hin th trong workspace. Chng ta c th d dng gi li cc lnh ny khi cn, v d gi lnh trc ta s dng phm . Cc gitrbincthckimtralibilnhwho,lnhwhoschodanhschccbinc trong workspace. V lnh whos th hin c tn, kch thc v lp ca bin. V d, gi s rng bn thc thi tt c cc lnh trong phn 1, khi thc thi lnh who bn s c c cc thng tin nh sau: >> who Your variables are: aansbx Lnh clear s xa bin ny khi workspace, clearhay clear all s xa tt c cc gitrbin.Vicxattcccgitrbinlcnthitkhitabtumtchngtrnhhay mt bi tp mi >> clear a x >> who Your variables are: ansb M u 7I.6.54 4 L040 00 LI0 Cch d nht save hay load cc bin l s dng thanh cng c, chn File v sau chn Save Workspace as hay Load Workspace.MATLAB cng c lnh save d liu vo file hoc load d liu ra t file. Lnh Save s lu cc bin trong workspace mt file nh phn hoc file ASCII, file nh phn t ng c phn rng .mat. #Bi tp 1-3. Hc cch thc thi lnh save. >> s1 = sin(pi/4); >> c1 = cos(pi/4); c2 = cos(pi/2); >> str = hello word;%y l mt chuI k t. >> save%luccbindngnhphnvo file matlab.mat. >> save numdata s1, c1%luhaibins1vc1vofile numdata.mat >> save strdata str%lu chui str vo file strdata >> save allcos.dat c* -ascii%lu 2 bin c1 v c2 di dng ascci vo file allcos.datLnh load cho php chp cc bin v gi tr ca chng t file vo workspace. C php ging nhlnhsave.Lnhloadcsdngkhichngtacnnpccgitrckhito trc vo trong chng trnh. #Bi tp 1-4. Gisrngchngtalmbitptrc,thcthicclnhloadsauy.Trcmilnh load, s dng lnh clear all xa workspace v sau s dng lnh who kim tra gi tr cc bin c trong workspace. >> load%load tt c cc bin trong file matlab.mat >> load data s1 c1%chloadccbincchnhtrongfile data.mat >> load strdata%load tt c cc bin trong file strdata.matTacngcth ccfileASCII,lfilechamtdyccbinringr.Chnghnnh file cha cc ch thch c bt u t k t %. Kt qu c t vo bin c cng tn vi file ASCII (ngoi tr phn m rng). >> load allcos.dat% load d liu t file allcos vo bin allcos >> who % lit k tt c cc bin c trong workspace M u 8Danh sch cc lnh v hm c gii thiu trong chng 1 addpathThm ng dn vo danh sch cc ng dn ca MATLAB clearXo khng gian lm vic (workspace) exitThot khi MATLAB formatnh dng d liu hin th helpXem thng tin gip v mt hm no helpwinM mt ca s hng dn mi loadTi d liu t file .mat vo khng gian lm vic hin ti lookforTm kim cc hm MATLAB nh t kho cho trc pathLit k cc ng dn m MATLAB c th thy c pwdXc nh th mc hin hnh ca MATLAB quitThot khi MATLAB rmpathXo mt ng dn khi danh sch cc ng dn ca MATLAB saveLu cc bin d liu vo file .mat whoLit k danh sch cc bin c trong workspace whosLit k cc bin c trong workspace: gm tn, kch thc v lp ca bin C bn v c php v bin 9Chng 22.00 8aN 9 00 Na 9a 8IN 2.I. M4IL48 Nh0 L4 M0I 00N0 00 INh I04N CckiuscbncsdngtrongMATLABlsnguyn,sthcvsphc. MATLABcngcthbiudinccsnon-number.Chaidngsnon-numbertrong MATLAB: Inf, l s v cc dng c to ra bi php chia 1/0 v NaN, l s c to ra t cc php ton chng hn nh 0/0 hay - . Nhchngtabit,MATLABlmtcngcthcshudngiviccphptnh. Chng hn khi nhp vo lnh: >> (23*17)/7 Kt qu s l ans =55.8571 MATLAB c su php ton s hc c bn: +, -, *, / hoc \ v ^ (s m).Lu rng hai php ton chia tri v chia phi l khc nhau >> 19/3% 19/3 ans =6.3333 >> 19\3, 3/19% 3/19 ans = 0.1579 ans = 0.1579 CchmlnggicvcchmmlogarithcngcsdngtrongMATLAB.Sdng help elfun lit k danh sch cc hm c bn c trong MATLAB. #Bi tp 2-1. Th tnh ton cc biu thc sau y bng tay v sau s dng MATLAB kim tra li kt qu. Lu s khc nhau gia php chia tri v phi. S dng lnh help c hng dn v cch s dng cc lnh mi, chng hn nh cc lnh lm trn s: round, floor, ceil, 2/2*33^2/4 8*5\43^2^3 8*(5\4)2 + round(6/9 + 3*2)/2 7 5*4\92 + floor(6/9 + 3*2)/2 6 2/5 + 7^2 12 + ceil(6/9 + 3*2)/2 10/2\5 3 + 2*4x = pi/3, x = x 1, x = x + 5, x=abs(x)/x C bn v c php v bin 10#Bi tp 2-2. SdngcclnhnhdngMATLABkhngxuthindngtrngtrongktquvkt qu c xut ra dng s c 15 ch s. Thc hin cc lnh: >> pi >> sin(pi) sau s dng lnh cc lnh format khi phc li nh dng chun. 2.2.FhF 04N 4 8IN Cc php ton lin quan n s phc c thc thi mt cch d dng bi MATLAB. #Bi tp 2-3. Cho hai s phc bt k, v d 3 + 2i v 5 7i. Hy thc hin cc php ton cng, tr, nhn v chia hai s phc ny vi nhau. Trong bi tp ny vi 4 php tnh th cc s phc phi c nhp 4 ln, n gin vic ny ta gn mi s phc cho mt bin. Kt qu ca bi tp ny s l: >> z = -3 + 2*i;>> w = 5 7*i; >> y1 = z + w;>> y2 = z w; >> y3 = z*w; >> y4 = z/w; y5 = w\z; Khnggingnhccngnnglptrnhthngthng,trongMATLABtakhngcnphi khai bo bin. Mt bin s c t ng to ra trong qu trnh gn d liu cho bin . Mi gi tr khi mi to ra th c mc nh c kiu s l double, kiu s 32 bit. Chng ta c th s dng lnh single chuyn kiu s t dng double sang dng single, l kiu s 16 bit. >> a = single(a); Lnh single nn c s dng trong trng hp cn x l nhng ma trn c kch thc ln. Tuy nhin trong trng hp ch c vi gi tr c s dng th ta nn chuyn qua dng double c c s chnh xc hn. S dng lnh double thc hin php bin i ny. >> a = double(a); Lu rng mt bin cha c nh ngha th khng c s dng gn cho mt bin khc >> clear x; >> f = x^2 + 4*sin(x); on lnh trn s khng cho ra mt kt qu ng bi v gi tr ca x cha c khi to. Biu thc trn c th sa li bng cch gn mt gi tr bt k cho bin x. >> x = pi; >> f = x^2 + 4*sin(x); Trong MATLAB, tn ca mt bin phi c bt u bi mt k t ch, c th l ch thng hay ch in hoa, v theo sau bi cc k t ch, cc k t s s hoc du gch chn. MATLAB ch c th phn bit c cc bin vi nhau bi ti a 31 k t u tin ca tn bin. C bn v c php v bin 11#Bi tp 2-4. Sau y l v d v mt vi kiu bin s khc nhau ca MATLAB. Chng ta s c hc k hn v cc lnh ny phn sau. >> this_is_my_very_simple_variable_today = 5% iu g s xy ra? >> 2t = 8;% iu g s xy ra? >> M = [1 2; 3 4; 5 6];% mt ma trn >> c = E% mt k t >> str = Hello word;% mt chui >> m = [J,o,h,n]% m l ci g? Sdnglnhwhokimtrathngtinvccbin.Sdnglnhclearxo cc bin khi workspace. TrongMATLABcnhng scmc nh to ra vc xem nh l cc hng s, v d nh pi, eps, hay i, mt s cc gi tr khc c cho trong bng 2.1.Bng 2.1: Mt s bin mc nh trong MATLAB Tn binGi tr / ngha ansTnbinmcnhdngluktqucaphptnh cui cng. pi = 3.14159 epsS dng nh nht infM t s dng nan hay NaNM t mt not-a-number, v d 0/0 i hay j 1 = = j inargin/nargoutS i s input/output ca hm realmin/realmaxS thc dng nh nht/ln nht c th Cc bin c to ra bng cch gn gi tr cho chng. Mt cch khc l gn gi tr ca bin ny cho bin khc. >> b = 10.5 >> a = b Theocchnybinatngctora,nubinatntithgitrccansb chng ln bi mt gi tr mi. Mt bin cng c th c to ra bi kt qu ca mt php ton: >> a = 10.5;>> c = a^2 + sin(pi*a)/4; Ktqutr vcamthmcthcsdnggnvtoraccbinmi.Vd,nu minltncamthm(tmhiuthmchcnngvcchsdngcahmminbilnh help min) th: >> b = 5; c = 7; C bn v c php v bin 12>> a = min(b,c);% gi tr nh nht ca b v c s gi mt hm vi hai bin b v c l hai i s. Kt qu ca hm ny (gi tr tr v ca hm) s c gn cho bin a. Lu : ta khng c s dng tn bin trng vi tn hm. kim tra mt tn no c phi tnhmhaykhngtasdnglnhhelpxcnh.Nuktqulcchngdn lin quan n hm th tn c s dng lm tn hm. V d, trong trng hp thc hin cc vng lp lin quan n s phc, ta khng s dngbin i hoc j lm bin m bi v cc gi tr ny c s dng lm s phc. C bn v c php v bin 13Danh sch cc lnh v hm c gii thiu trong chng 2 ceilLm trn ln doubleChuyn sang kiu s chiu di 32 bit floorLm trn xung format nh dng cc d liu s minTr v gi tr nh nht ca hai hay nhiu s roundLm trn v s nguyn gn nht singleChuyn sang kiu s chiu di 16 bit whoLit k cc bin c trong workspace Php ton vi vector v ma trn 14Chng 33.N T0aN 90I 90T08 9a Na T8aN TrongMatlab,ttcccitngucxemnhlmtmatrnhaycncgil mng. Mt ch s c xem nh l mt ma trn 1x1 v ma trn ch c mt hng hay mt ct c gi l vector. 3.I.0I08 Trong qu trnh khi to, cc thnh phn ca mt vector c phn bit vi nhau bi khong trnghocdu,.Chiudicamtvectorlsthnhphntntitrongn(lnhlength csdngxcnhchiudicavector).Ttcccthnhphncamtvectorphi c t trong du []: >> v = [-1sin(3)7] v = -1.00000.14117.0000 >> length(v) ans = 3 Ta c th p dng nhiu php tnh c bn khc nhau i vi vector. Mt vector c th nhn vimthshoccng/trvimtvectorkhcccngchiudi.Trongphpcng/tr, tng thnh phn ca hai vector cng/ tr vi nhau v cho ra mt vectorc cng chiu di. Ta cng c th s dng php gn i vi vector. >> v = [-127];>> w = [234]; >> z = v + w % cng tng thnh phn vi nhau z = 1511 >> vv = v + 2% 2 c cng vo tng thnh phn ca vector v vv = 149 >> t = [2*v, -w] ans = -2414-2-3-4 Mi thnh phn ca vector cng c th c s dng mt cch ring bit: >> v(2) = -1 % thay I gi tr thnh phn th 2 ca v v = -1-17 >> w(2) % hin th gi tr thnh phn th 2 ca w ans = 3 Php ton vi vector v ma trn 153.I.I.040 : 4 Fh4N I80h 84 I0 0I08 Du : l mt ton t quan trng, n c s dng x l vi cc vector hng (xem thm bng 3.1 hoc s dng lnh help colon c nhiu thng tin hn v ton t ny): Bng 3.1: Nhng thnh phn con ca ma trn LnhKt qu A(i, j)Aij A(:, j)Ct th j ca A A(i, :)Hng th i ca A A(k:l,m:n)Ma trn con ca ma trn A v(i:j)Mt phn ca vector v >> 2:5 ans = 2345 >> -2:3 ans = -2-10123 Mtcchtngqut,lnhccutrcfirst:step:laststoramtvectorcthnhphnu tinbngfirst,gitrcaccthnhphntiptheoctngbistepvthnhphncui cng c gi tr last: >> 0.2:0.5:2.4 ans = 0.20000.70001.20001.70002.2000 >> -3:3:10 ans = -30369 >> 1.5:-0.5:-0.5 % step cng c th l s m ans = 1.50001.0000 0.50000-0.5000 Ton t : cng c s dng trch ra mt s thnh phn t mt vector. >> r = [-1:2:6, 2, 3, -2] % -1:2:6 -1135 r = -113523-2 >> r(3:6) % cc gi tr ca r t 3 n 6 ans = 3523 >> r(1:2:5) % ly cc v tr 1, 3, 5 ans = Php ton vi vector v ma trn 16-132 >> r(5:-1:2) % iu g s xy ra? 3.I.2.0I08 00I 4 FhF 0h0N j i vi mt vector ct, cc thnh phn ca n phi c phn bit vi nhau bi du ; hoc xung dng: >> z = [1 7 7]; z = 1 7 7 >> u = [-1;3;5] u = -1 3 5 Nhng php ton p dng vi vector hng cng c th c s dng vector ct. Tuy nhin, chngtakhngthcngmtvectorhngvimtvectorct.thchincphptnh ny,tacnsdngtontchuynv,tontnyschuynmtvectorhngthnhmt vector ct v ngc li: >> u' % u l vector ct, u s l vector hng ans = -135 >> v = [-1 2 7]; % v l mt vector hng >> u + v % khng th cng mt vector ct v vector hng ??? Error using ==> + Matrix dimensions must agree. >> u' + v ans = -2512 >> u + v' ans = -2 5 12 Nu z l mt vector phc th z s cho ra mt chuyn v lin hp ca z, ngha l tng thnh phn ca z l lin hp phc vi cc thnh phn trong z. Trong trng hp cn chuyn v theo kiu thng thng (cc s phc c gi nguyn gi tr) ta phi s dng ton t . Php ton vi vector v ma trn 17>> z = [1+2i, -1+i] z = 1.0000 + 2.0000i-1.0000 + 1.0000i >> z' % chuyn v lin hp ans = 1.0000 - 2.0000i -1.0000 - 1.0000i >> z.' % php chuyn v thng thng ans = 1.0000 + 2.0000i -1.0000 + 1.0000i 3.I.3.Nh4N, 0hI4 4 50 M0 004 0I0 Chng ta c th nhn hai vector c cng chiu di, =ii iTy x y x theo cch n gin: >> u = [-1;3;5] % mt vector ct >> v = [-1;2;7] % mt vector ct >> u * v % khng th nhn 2 vector ct vi nhau ??? Error using ==> * Inner matrix dimensions must agree. >> u' * v % kt qu nhn 2 vector ans = 42 Mtcchkhcnhnhaivectorlsdngtont.*.Vitontnyccthnhphn tng ng ca hai vector s c nhn vi nhau. Cho hai vector x v y c cng chiu di, tch .* ca hai vector l [x1y1, x2y2, , xnyn]: >> u .* v % nhn tng thnh phn tng ng 1 6 35 >> sum(u.*v) % tng ng php nhn 2 vector ans = 42 >> z = [431]; % z l vector hng >> sum(u'.*z) % php nhn 2 vector ans = 10 >> u'*z' % tch 2 vector ans = Php ton vi vector v ma trn 1810 V d 3-1:>> x = 1:0.5:4; >> y = sqrt(x) .* cos(x) y = 0.54030.0866-0.5885-1.2667-1.7147-1.7520-1.3073 Trongtonhckhngtntiphpchiahaimatrnchonhau.Tuynhin,trongMATLAB ton t ./ c nh ngha nh l php chia tng thnh phn tng ng ca hai ma trn vi nhau. Kt qu cng l mt ma trn c cng kch thc: >> x = 2:2:10 x = 246810 >> y = 6:10 y = 678910 >> x./y ans = 0.33330.57140.75000.88891.0000 >> z = -1:3 z = -10123 >> x./z % 4/0, kt qu l Inf Warning: Divide by zero. ans = -2.0000Inf6.00004.00003.3333 >> z./z % 0/0, kt qu l NaN Warning: Divide by zero. ans = 1NaN111 Ton t ./ cng c th c s dng chia mt s cho mt vector: >> x=1:5; 2/x % chng trnh bo li ??? Error using ==> / Matrix dimensions must agree. >> 2./x % php tnh ng ans = 2.00001.00000.66670.50000.4000 #Bi tp 3-1. Php ton vi vector v ma trn 19lmquenviccphptonvvectorhngvvectorct,hythchinccvnsau y: To mt vector bao gm nhng s l trong khong t 21 n 47. Cho x = [4 5 9 6]. -Tr i 3 mi thnh phn ca vector -Cng 11 vo cc thnh phn c v tr l -Tnh cn bc 2 ca mi thnh phn -M 3 mi thnh phn To mt vector vi cc thnh phn -2, 4, 6, 8, , 20 -9, 7, 5, , -3, -5 -1, , 1/3, , 1/5, , 1/10 -0, , 2/3, , 4/5, , 9/10 To mt vector vi cc thnh phn: 1 2) 1 (=nxnnvi n = 1, 2, 3, , 100. Tm tng 50 thnh phn u tin ca vector ny. Cho vector t bt k, vit biu thc MATLAB tnh -ln(2 + t + t2) -cos(t)2 sin(t)2 -et(1 + cos(3t)) -tan-1(t) Kim tra vi t = 1:0.2:2 Cho x = [1 + 3i, 2 2i] l mt vector phc. Kim tra cc biu thc sau: -x- x*x -x.- x*x. #Bi tp 3-2. Cho x = [2 1 3 7 9 4 6], hy gii thch cc lnh sau y (x(end) l thnh phn cui cng ca vector x) -x(3)- x(6:-2:1) -x(1:7)- x(end-2:-3:2) -x(1:end)- sum(x) -x(1:end-1)- mean(x) -x(2:2:6)- min(x) 3.2.M4 I84N Vector hng v vector ct l nhng trng hp c bit ca ma trn. Ma trn nxk l mt mng gmcnhngvkct.nhnghamtmatrntrongMATLABtngtnhnhngha Php ton vi vector v ma trn 20mt vector. Cc thnh phn ca hng c phn bit vi nhau bi du , hoc khong trng, cn cc hng c phn bit bi du ;. V d ma trn =9 8 76 5 43 2 1Ac nh ngha nh sau: >> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 Mt s v d khc: >> A2 = [1:4; -1:2:5] A2 = 1234 -1 135 >> A3 = [13 -4 7] A3 = 13 -47 T nhng v d trn ta nhn thy rng mt vector hng l mt ma trn 1xk v mt vector ct l mt ma trn nx1. Php chuyn v s chuyn mt vector hng thnh mt vector ct v ngc li. iu ny c th m rng cho mt ma trn, php chuyn v s bin cc hng ca ma trn thnh cc ct v ngc li. >> A2 A2 = 1234 -1135 >> A2' % chuyn v ca ma trn A2 ans = 1-1 21 33 45 >> size(A2) % kch thc ca ma trn A2 ans = 24 >> size(A2') Php ton vi vector v ma trn 21ans = 42 3.2.I.Nh0N0 M4 I84N 040 8II Trong MATLAB c mt s hm c s dng to ra cc ma trn c bit, tham kho thm bng 3.2. Bng 3.2: Mt s hm v php ton thng s dng vi ma trn. LnhKt qu n = rank(A)S chiu ca ma trn A x = det(A)nh thc ca ma trn A x = size(A)Kch thc ca A x = trace(A)Tng cc thnh phn trn ng cho ca A x = norm(v)Chiu di Euclide ca vector v C = A + BTng hai ma trn C = A BHiu hai ma trn C = A*BTch hai ma trn C = A.*BTch tng thnh phn tng ng ca hai ma trn C = A^kLy tha ca ma trn C = A.^kLy tha tng thnh phn ca ma trn C = AMa trn chuyn v AT C = A./BChia tng thnh phn tng ng ca hai ma trn C = inv(A)Nghch o ca ma trn A X = A\BGii phng trnh AX = B X = B\AGii phng trnh XA = B x = linspace(a,b,n)Vector x c n thnh phn phn b u trong khong [a,b] x = logspace(a,b,n)Vector x c n thnh phn bt u 10a v kt thc vi 10b A = eye(n)Ma trn ng nht A = zeros(n,m)Ma trn all-0 A = ones(n,m)Ma trn all-1 A = diag(v)Ma trn zero vi ng cho l cc thnh phn ca vector v X = tril(A)Trch ra ma trn tam gic di X = triu(A)Trch ra ma trn tam gic trn A = rand(n,m)Ma trn A vi cc thnh phn l phn b ng nht gia (0,1) A = randn(n,m)Ging nh trn vi cc thnh phn phnb chun. v = max(A) Nu A l mt vector th v l gi tr ln nht ca A Neu A l ma trn th v l mt vector vi cc thnh phn l gi tr ln nht trn mi ct ca Av = min(A)Nh trn vi gi tr nh nht v = sum(A)Nh trn vi tng Php ton vi vector v ma trn 22>> E = [] % mt ma trn rng 0 hng 0 ct E = [] >> size(E) ans = 00 >> I = eye(3); % ma trn ng nht 3x3 I = 100 010 001 >> x = [2; -1; 7]; I*x % I*x = x ans = 2 -1 7 >> r = [13 -2];>> R = diag(r) % to mt ma trn ng cho R = 100 030 00-2 >> A = [1 2 3; 4 5 6; 7 8 9]; >> diag(A) % trch ra ng cho ca ma trn A ans = 1 5 9 >> B = ones(3,2) B = 11 11 11 >> C = zeros (size(C')) % ma trn all zero vi kch thc ca C C = 000 000 Php ton vi vector v ma trn 23>> D = rand(2,3) %matrnccgitrngunhintrong khong (0, 1) D = 0.02270.91010.9222 0.02990.06400.3309 >> v = linspace(1, 2, 4) % v l mt vector c 4 gi tr cch u nhau trong khong [1, 2] v = 1.00001.33331.66672.0000 3.2.2.I4 00N0 M4 I84N 4 I80h 84 M0I M4 I84N 00N I0 M0I M4 I84N L0N h0N Chng ta c th to ra mt ma trn ln t cc ma trn nh hn: >> x = [4; -1], y = [-1 3] x = 4 -1 y = -13 >> X = [x y'] % X bao gm cc ct ca x v y' X = 4-1 -13 >> T = [ -1 3 4; 4 5 6]; t = 1:3; >> T = [T; t] % cng thm vo T mt dng mi, t T = -1 34 456 123 >> G = [1 5; 4 5; 0 2]; % G l ma trn 3x2 >> T2 = [T G] % kt ni 2 ma trn T2 = -1 3415 45645 12302 >> T3 = [T; G ones(3,1)] % G l ma trn 3x2 % T l ma trn 3x3 T3 = -1 34 456 Php ton vi vector v ma trn 24123 151 451 021 >> T3 = [T; G']; % iu g xy ra? >> [G' diag(5:6); ones(3,2) T] % kt ni nhiu ma trn ans = 14050 55206 11 -134 11456 11123 Cngtngtnhvivector,chngtacthtrchramtsthnhphn camatrn.Mi thnhphncamatrncnhdubivtrhngvct.Thnhphnhngivctj c khiu l Aij, v k hiu trong MATLAB l A(i,j). >> A = [1:3; 4:6; 7:9] A = 123 456 789 >> A(1,2), A(2,3), A(3,1) ans = 2 ans = 6 ans = 7 >> A(4,3) % khng ng v A l ma trn 3x3 ??? Index exceeds matrix dimensions. >> A(2,3) = A(2,3) + 2*A(1,1) % thay I gi tr ca A(2,3) A = 123 458 789 Mt ma trn cng c th c m rng theo cch sau y: >> A(5,2) = 5 % gn 5 cho v tr A(5,2) v % cc thnh phn khc l zero A =Php ton vi vector v ma trn 25123 458 789 000 050 Cc thnh phn zero ca ma trn A trn cng c th c thay i: >> A(4,:) = [2, 1, 2]; % gn vector [2, 1, 2] vo hng th 4 ca A >> A(5,[1,3]) = [4, 4]; % gn A(5,1) = 4 v A(5,3) = 4 >> A% kim tra s thay i ca ma trn A? Nhng phn khc nhau ca ma trn A c trch ra theo cch sau y: >> A(3,:) % trch ra hng th 3 ca A ans = 789 >> A(:,2) % trch ra ct th 2 ca A ans = 2 5 8 1 5 >> A(1:2,:) % trch ra hng th 1 v 2 ca A ans = 123 458 >> A([2,5],1:2) % trch ra mt phn ca A ans = 45 45 Cc lnh nhng v d trn c gii thch ngn ngn trong bng 3.1. Lu khi nim ma trn rng [], chng hn cc hng hay ct ca ma trn c th c xa b bng cch gn gi tr ca n cho ma trn rng []. >> C = [1 2 3 4; 5 6 7 8; 1 1 1 1]; >> D = C; D(:,2) = [] % xa ct th 2 ca D >> C ([1,3],:) = [] % xa ct th 1 v 2 ca C #Bi tp 3-3. Hy xa tt c cc bin (s dng lnh clear). nh ngha ma trnA = [1:4; 5:8; 1111]. Hy thc thi v kim tra kt qu ca cc php tnh sau: Php ton vi vector v ma trn 26x = A(:, 3)y = A(3 : 3, 1 : 4) B = A(1 : 3, 2 : 2)A = [A; 2177; 7745] A(1, 1) = 9 + A(2, 3)C = A([1, 3], 2) A(2 : 3, 1 : 3) = [000; 000]D = A([2, 3, 5], [1, 3, 4]) A(2 : 3, 1 : 2) = [1 1; 3 3]D(2, :) = [ ] #Bi tp 3-4. ChoA = [1, 5, 6; 3, 0, 8], B = [7, 3, 5; 2, 8, 1], C = 10 v D = 2. Hy thc hin cc php tnh sau y: E = A B Gn ct u tin ca A cho M F = D*B Gn ct th hai ca ca G cho N G = A.*B Ch nhn ct th 3 ca A cho 5 H = A Cng M v N J = B/DTm tng tt c cc gi tr ca ma trn A #Bi tp 3-5. nh ngha ma trn T = [ 3 4; 1 8; -4 3]; A = [diag(-1:2:3) T; -4 4 1 2 1]. Thc hin cc php bin i sau y i vi ma trn A: Trch ra mt vector bao gm thnh phn th 2 v 4 ca hng th 3. Tm gi tr nh nht ca ct th 3 Tm gi tr ln nht ca hng th 2 Tnh tng cc thnh phn ca ct th 2 Tnh gi tr trung bnh ca hng th 1 v th 4. Trch ma trn con bao gm hng th 1 v th 3. Trch ma trn con bao gm hng th 1 v 2 ca ct 3, 4, 5. Tnh tng cc thnh phn ca hai hng 1 v 2. Cng cc thnh phn ca ct th 2 v th 3 vi 3. #Bi tp 3-6. Cho ma trn A = [2 4 1; 6 7 2; 3 5 9]. Thc thi cc php ton sau i vi ma trn A: Gn hng th 1 cho vector x Gn 2 hng cui ca A cho y. Cng cc thnh phn trong tng hng ca A Cng cc thnh phn trong tng ct ca A #Bi tp 3-7. Cho A = [2 7 9 7; 3 1 5 6; 8 1 2 5]. Gii thch kt qu ca cc lnh sau: Asum (A) Php ton vi vector v ma trn 27A(1, :)sum (A) A(:, [14])mean (A) A([23], [31])mean (A) reshape (A, 2, 6)sum (A, 2) A(:)mean (A, 2) flipud (A)min (A) fliplr (A)max (A) [A; A(end, :)]min (A(:, 4)) [A; A(1 : 2, :)][min(A) max(A)] max (min(A))Xa ct th 2 ca A [[A; sum (A)] [sum (A,2); sum (A(:))]] Gn cc ct chn ca A cho B Gn cc hng l ca A cho C Bin A thnh ma trn 4x3 Tnh 1/x cc thnh phn ca A Tnh bnh phng cc thnh phn A Cng mt hng all-1 vo u v cui A Hon i hai hng 2 v 3 Lu : s dng lnh help tm hiu ngha ca cc lnh mi. 3.2.3.INh I04N 0I M4 I84N Cc hm v php ton thng s dng vi ma trn c cho trong bng 3.2. Lu ton t . trong php nhn ma trn vi ma trn v php nhn ma trn vi vector. Ton t . xut hin trongphpnhn,phpchiavsm.Khictontny,phptonscthchinvi tng thnh phn ca ma trn. C th trong php nhn/chia, tng thnh phn tng ng ca 2 ma trn s nhn/chia vi nhau v kt qu s l mt ma trn c cng kch thc vi 2 ma trn ban u. Nh vy trong trng hp s dng ton t ny 2 ma trn phi c cng kch thc vi nhau. Xem xt cc v d sau: >> B = [1 -1 3; 4 0 7] B = 1 -13 407 >> B2 = [1 2; 5 1; 5 6]; >> B = B + B2' % cng 2 ma trn B = 248 61 13 Php ton vi vector v ma trn 28>> B-2 % tr cc thnh phn ca B cho 2 ans = 026 4 -1 11 >> ans = B./4 % chia cc thnh phn ca B cho 4 ans = 0.50001.00002.0000 1.50000.25003.2500 >> 4/B % sai c php ??? Error using ==> / Matrix dimensions must agree. >> 4./B % tng ng vi 4.*ones(size(B))./B ans = 2.00001.00000.5000 0.66674.00000.3077 >> C = [1 -1 4; 7 0 -1]; >> B .* C % nhn tng v tr vi nhau ans = 2-432 420 -13 >> ans.^3 - 2 % m 3 cc thnh phn sau tr cho 2 ans = 6 -6632766 74086-2-2199 >> ans ./ B.^2 % tng v tr chia cho nhau ans = 0.7500-1.031263.9961 342.9907-2.0000-1.0009 >> r = [13 -2]; r * B2ans =6-7 Lu cc php nhn ma trn-ma trn v php nhn ma trn-vector. >> b = [1 3 -2]; >> B = [1 -1 3; 4 0 7] B = 1 -13 407 Php ton vi vector v ma trn 29>> b * B % khng th thc hin c ??? Error using ==> * Inner matrix dimensions must agree. >> b * B' % thc hin c ans = -8-10 >> B' *ones(2,1) ans = 5 -1 10 >> C = [3 1; 1 -3]; >> C * B ans = 7-316 -11 -1 -18 >> C.^3 % m 3 tng thnh phn ans = 271 1-27 >> C^3 % tng ng vi C*C*C ans = 3010 10-30 >> ones(3,4)./4 * diag(1:4) ans = 0.25000.50000.75001.0000 0.25000.50000.75001.0000 0.25000.50000.75001.0000 #Bi tp 3-8. Hy thc thi tt c php ton trong bng 3.2, t chn cc gi tr cho ma trn A, B vector v v cc h s k, a, b, n v m. #Bi tp 3-9. Cho A l mt ma trn vung, to ma trn B ging ma trn A nhng tt c cc thnh phn trn ng cho chnh u bng 1. #Bi tp 3-10. Cho vector x = [137], y = [242] v ma trnA = [3 16; 5 27], B = [14; 78; 22]. Php ton no sau y l khng ng? Kt qu ca mi php tnh? Php ton vi vector v ma trn 30x + y[x; y] x + A[x; y] x + yA 3 A - [x y]A + B [x; y] + AB + A B*AB./x A.* BB./[x x] A.* B2/A 2*Bones(1, 3)*A 2.* Bones(1, 5 #Bi tp 3-11. Cho A l mt ma trn ngu nhin 5x5, b l mt vector ngu nhin 5x1. Tm x tha mn biu thc Ax = b (tham kho thm bng 3.2). Gii thch s khc nhau gia ton t \, / v lnh inv. Sau khi c x, hy kim tra Ax b c phi l mt vector all-zero hay khng? #Bi tp 3-12. Hy tm hai ma trn 2x2 A v B tha mn A.*B A*B. Sau tm tt c cc ma trn A v B sao cho A.*B = A*B (gi : s dng cc ton t /, \ v lnh inv). Php ton vi vector v ma trn 31Danh sch cc lnh v hm c gii thiu trong chng 3 detnh thc ca ma trn diagTo ma trn ng cho eyeMa trn n v invNghch o ca 1 ma trn lengthChiu di ca vector linspaceChia mt on thnh cc khong chia tuyn tnh logspaceChia mt on thnh cc khong chia logarithm maxHm gi tr ln nht minHm gi tr nh nht normChiu di Euclide ca vector onesMa trn ton 1 randMa trn ngu nhin vi cc thnh phn phn b u trn (0,1) randnMa trn ngu nhin vi cc thnh phn phn b chun rankHng ca ma trn sizeKch thc ca ma trn sumHm tnh tng traceTng cc thnh phn trn ng cho ca ma trn (vt ca ma trn) trilTrch ra ma trn tam gic di triuTrch ra ma trn tam gic trn zerosMa trn ton zero th 2D v 3D 32Chng 44.00 TNJ 20 9a 30 MATLAB c th c s dng th hin cc kt qu di dng th, mi bin s cha tt c cc gi tr ca mt i s trong lnh v th. 4.I.Nh0N0 00 Ihj 00N 0I4N Vi lnh plot chng ta d dng v c nhng th n gin. Cho vector y, lnh plot(y) s xcnhnhngim[1,y(1)],[2,y(2)],,[n,y(n)]vniccimnylibngnhng ng thng. Lnh plot(x,y) thc hin mt cng vic tng t nh vy vi nhng im [x(1), y(1)], [x(2), y(2)], , [x(n), y(n)].Lu rng hai vector x v y phi cng l vector hng hoc vector ct v c cng chiu di (s thnh phn trong vector). Nhng lnh loglog, semilogx v semilogy c chc nng tng t nh lnh plot, ngoi tr mt hoc hai trc th ca chng c xc nh theo logarith. #Bi tp 4-1. Donktqucaonchngtrnhsauy,sauhykimchngktqubng MATLAB: >> x = 0:10; >> y = 2.^x; % y = [1 2 4 8 16 32 64 128 256 512 1024] >> plot(x,y) % biu din di dng th >> semilogy(x,y)% v th vi trc y theo logarith Saukhithcthixongonchngtrnhtrntanhnthy,chaithucthhin trong cng mt ca s Figure No.1. th th nht s b xa b ngay khi th th hai xut hin. v hai th trn hai ca s khc nhau, ta s dng lnh figure to ra mt ca s mi trc khi thc hin lnh v th th hai. Bng cch ny chng ta s c hai ca s ring bitthhin2th.Chngtacngcthchuynncccaskhcnhaubnglnh figure(n), lnh ny s a ca s No.n ln trn mn hnh. Thc thi li on chng trnh trn v quan st s thay i. >> x = 0:10; >> y = 2.^x;>> plot(x,y)>> figure >> semilogy(x,y) v mt th hm tng i chnh xc v p, iu quan trng l phi ly mu mt cch thch hp: >> n = 5; >> x = 0:1/n:3; % ly mu khng tt >> y = sin(5*x); >> plot(x,y) th 2D v 3D 33 >> n = 25;>> x = 0:1/n:3; % ly mu tt >> y = sin(5*x); >> plot(x,y) Lnh plot mc nh s v th bng nhng ng nt lin mu en. Ta c th thay i kiu cng nh mu sc ca nt v, v d: >> x = 0:0.4:3; y = sin(5*x); >> plot(x,y,'r--') Hnh 4.1. th trn c v bi ng nt t mu . Thng s th ba ca lnh plot ch nh mu v kiu ng ca nt v. Bng 4.1 trnh by mt s trng hp c th, s dng lnh help plot c nhng thng tin chi tit hn.Bng 4.1: Cc k hiu mu v kiu v ca th K hiuMuK hiuKiu v rRed. , onh du cc im bng du ., o gGreen*nh du cc im bng du * bBluex , +nh du cc im bng du x. + yYellow-V bng ng nt lin mMagenta--V bng ng nt t di cCyan:V bng ng nt t ngn kBlack-.V bng ng nt t chm gch. Tiu ca th, ng k v nhn cho cc trc c xc nh bi cc lnh sau: >> title('Function y = sin(5*x)'); Ly mu khng ttLy mu tt th 2D v 3D 34>> xlabel('x-axis'); >> ylabel('y-axis'); >> grid % loi b cc ng k bng lnh grid off Hnh 4.2. #Bi tp 4-2. V mt ng bng nt gch ngn mu ni cc m sau li vi nhau: (2, 6), (2.5, 18), (5, 17.5), (4.2, 12.5) v (2, 12). #Bi tp 4-3. V th ca hm y = sin(x) + x - xcos(x) trong hai ca s ring bit vi hai khong 0 plot(x1,y1,'md'); >> x2 = 1:.3:3.1; y2 = sin(-x2+pi/3); >> hold on >> plot(x2,y2,'k*-.') >> plot(x1,y1,'m-') >> hold off th 2D v 3D 35 Hnh 4.3. Cch th hai l v nhiu hm cng mt lc. Vi cch ny , cc hm s c v cng mt lc trn cng mt ca s hnh: >> x1 = 1:.1:3.1; y1 = cos(x1); >> x2 = 1:.3:3.1; y2 = cos(-x2+pi/3); >> plot(x1, y1,'md', x2, y2, 'k*-.', x1, y1, 'm-') Hnh 4.4. xcnhcthdicamitrctasdnglnhaxis.thysthayihythm lnh sau vo on lnh trn. >> axis([0,4,-2,2]) Hnh 4.5. th 2D v 3D 36Lnh axis tight cng cho ra kt qu tng t. S dng lnh help tm hiu thm v cc lnh axis on/off, axis equal, axis image v axis normal. to dng ghi ch cho mi th ta s dng lnh legend, thm lnh sau vo on chng trnh trn >> legend ('cos(x)', 'cos(-x+pi/3)'); Hnh 4.6. toranhiucascontrongcngmtcashnhtasdnglnhsubplot.Vilnh subplot, ca s hnh c chia thnh pxr ca s con c nh s t 1 n p.r, bt u t ca s trn cng bn tri v m theo tng hng. Cc lnh plot, title, grid ch lm vic vi ca s con hin ti. >> x = 1:.1:4; >> y1 = sin(3*x); >> y2 = cos(5*x); >> y3 = sin(3*x).*cos(5*x); >> subplot(1,3,1); plot(x,y1,'m-'); title('sin(3*x)') >> subplot(1,3,2); plot(x,y2,'g-'); title('cos(5*x)') >> subplot(1,3,3); plot(x,y3,'k-'); title('sin(3*x) * cos(5*x)') Hnh 4.7. #Bi tp 4-5. th 2D v 3D 37V th cc hm f(x) = x, g(x) = x3, h(x) = ex v z(x) = e^x2 vi x[0, 4] trn cng mt ca s hnh v vi h trc c chia bnh thng v h trc ta c chia log-log. Ly mu thch hp lm phng th. M t mi th bng cc hm: xlabel, ylabel, title, legend. #Bi tp 4-6. V th ca cc hm f(x) = sin(1/x), f(x) = cos(1/x) trn cng mt ca s hnh, vi x [0.01, 0.1]. Ly mu thch hp cc ng cong r rng nht. 4.3.040 Ih000 INh Kh40 004 000N0 00N0 20 MATLAB c mt s hm c thit k c bit s dng vi nhng hnh 2D, v d nh cc hm: fill, polar, bar, barh, pie, hist, errorbar hay stem. Trong v d sau, lnh fillc s dng to ra mt hnh a gic: >> N = 5; k = -N:N; >> x = sin(k*pi/N); >> y = cos(k*pi/N); % (x, y) l cc nh ca a gic >> fill(x,y,'g') >> axis square >> text(-0.7,0,'I am a green polygon') Hnh 4.8. #Bi tp 4-7. Thc thi cc lnh sau v m t kt qu (lu rng lnh figure s to ra mt ca s hnh mi): >> figure %vthctcamtngconghnh chung. >> x = -2.9:0.2:2.9; >> bar(x,exp(-x.*x)); >> figure % v sng hnh sin dng bc thang >> x = 0:0.25:10; >> stairs(x,sin(x)); >> figure % v errorbar >> x = -2:0.1:2; >> y = erf(x); % dng lnh help hiu thm th 2D v 3D 38>> e = rand(size(x)) / 10; >> errorbar (x,y,e); >> figure >> r = rand(5,3); >> subplot(1,2,1); bar(r,'grouped')>> subplot(1,2,2); bar(r,'stacked') >> figure >> x = randn(200,1);% s ngu nhin ca phn b bnh thng >> hist(x,15) % biu vi 15 ct 4.4.IN 4N Trc khi tin hnh in miu t mt cch r rng hn chng ta c th thm mt s thng tin vo th, chng hn nh ta , hay thay i cch trnh by. Bng 4.2 trnh by mt s lnh c s dng trnh by hnh v hay th. Bng 4.2: Mt s lnh thao tc vi th Lnh Kt qu grid on/offCng li vo th axis([xmin xmax ymin ymax]) Xc nh gi tr ln nht v nh nht ca cc trc box off/onXa/hin th ng vin khung ca th. xlabel('text')Nhn ca trc x ylabel('text')Nhn ca trc y title('text')Ta trn th. text(x,y,'text')Cng dng k t vo im (x,y) gtext('text')Cng dng k t vo v tr xc nh bi chut. legend('fun1','fun2')Cng vo tn ca cc hm. legend offXa tn ca cc hm. clfXa ca s hnh hin ti. subplotTo ra nhng ca s hnh con. #Bi tp 4-8. Vthcchmy1=sin(4x),y2=xcos(x),y3=(x+1)-1x1/2vix=1:0.25:10,vmt im (x; y) = (4; 5) trn cng mt ca s hnh. S dng cc mu v kiu khc nhau cho cc th.Cngthmvolichthch,nhnchochaitrcvmtta.Cngmtontext single point n v tr (4; 5). Thay i gi tr ln nht v nh nht ca cc trc sao cho c th quan st hm y3 mt cch chi tit nht. CchnginnhttinhnhinlchnFiletrnthanhcngcvsauchnPrint. Lnhprintcsdnggimtthnmyinhocluvomtfile.Docnhiu thng s khng c gii thch chi tit y, s dng lnh help hiu r hn. C gng hiu cc v d sau y. th 2D v 3D 39 >> print -dwinc% s dng my in hin hnh in mu hnh ang hin th >> print -f1 -deps myfile.eps%luhnhFigureno.1nfilemyfile.epsdngen trng. >> print -f1 -depsc myfilec.eps % lu hnh Figure no.1 n file myfilec.eps dng mu. >> print -dtiff myfile1.tiff% lu hnh hin hnh n file myfile1.tiff >> print -dpsc myfile1c.ps % lu hnh hin hnh n file myfile1.ps dng mu >> print -f2 -djpeg myfile2% lu hnh Figure no.2 n file myfile2.jpg #Bi tp 4-9. Trong nhng bi tp trc, thc hnh lu cc hnh th n mt file c ch nh. 4.5.00 Ihj 30 Lnh plot3 c s dng v th 3D, lnh ny tng ng vi lnh plot trong 2D. V hnh thc n ging nh lnh plot tuy nhin lnh plot3 c m rng thm cho mt trc ta th3.Vdv ngcongrcnhnghar(t)=[tsin(t);tcos(t);t]vitnmtrong khong [-10; 10]. >> t = linspace(-10*pi,10*pi,200); >>plot3(t.*sin(t),t.*cos(t),t,'md-');%vngcongvimu hng >> title('Curve r(t) = [t sin(t), t cos(t), t]'); >> xlabel('x-axis'); ylabel('y-axis'); zlabel('z-axis'); >> grid Hnh 4.9. th 2D v 3D 40#Bi tp 4-10. V mt th 3D c nh ngha [x(t); y(t); z(t)] = [sin(t); cos(t); sin2(t)] vi t = [0, 2]. V ng trn bng mu xanh v cc im nh du l cc vng trn. Cng thm ta ca th, m t cc trc v v cc ng k.Chng ta c th xoay hnh 3D va v bng cch chn mc Tools trn thanh cng c ca ca s hnh v chn mc Rotate 3D hay bng cch nhp vo lnh rotate3D. Sau nhn chut vo hnh, gi v bt u xoay theo hng mnh mong mun. Hnh 4.10. 4.6.8 M4I 00 Ihj Mt b mt c nh ngha bi mt hm f(x, y), vi mi cp gi tr ca (x,y), cao z c tnhz=f(x,y).vmtbmt,vnglymu(x,y)nnlmtvnghnhchnht.H thng cc gi tr x v y c to ra bi lnh meshgrid nh sau: >> [X, Y] = meshgrid (-1:.5:1, 0:.5:2) X = -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 -1.0000 -0.5000 0 0.5000 1.0000 Y = 0 0 0 0 0 0.5000 0.5000 0.5000 0.5000 0.5000 1.0000 1.0000 1.0000 1.0000 1.0000 1.5000 1.5000 1.5000 1.5000 1.5000 2.0000 2.0000 2.0000 2.0000 2.0000 Trc khi xoaySau khi xoay th 2D v 3D 41Vng ly mu trong trng hp ny l [-1, 1]x[0, 2] v khong ly mu l 0.5. b mt th phng hn ta nn ly mu dy c hn. >> [X,Y] = meshgrid(-1:.05:1, 0:.05:2); >> Z = sin(5*X) .* cos(2*Y); >> mesh(X,Y,Z); >> title ('Function z = sin(5x) * cos(2y)') Hnh 4.11 Th thay lnh mesh bng lnh waterfall v nhn xt s khc nhau gia hai lnh. #Bi tp 4-11. V th mt ca hm 4 22y xxy) y , x ( f+=ti vng gn im (0, 0). Lu nn s dng mt ly mu dy c. Hnh 4.12. S dng lnh meshS dng lnh waterfall th 2D v 3D 42#Bi tp 4-12. Vmtqucuviccthngscnhngha[x(t,s),y(t,s),z(t,s)]=[cos(t)cos(s), cos(t)sin(s), sin(t)], vi t,s = [0, 2] (s dng lnh surf). S dng lnh shading interp xa cc ng mu en, sau s dng lnh shading faceted phc hi li hnh nguyn thy. Hnh 4.13 #Bi tp 4-13. Vhmtheorv:[x(r,);y(r,);z(r,)]=[rcos();rsin();sin(6cos(r)-n)].Chnnl mt hng s. Quan st s thay i ca hnh theo n. Trong MATLAB, hm peaks l mt hm hai bin, c c t php bin i phn b Gauss. Cng dng ca hm peaks l to ra cc bin gi tr s dng trong cc hm 3D nh: mesh, surf, pcolor, contour, . V d: >> [X,Y,Z] = peaks; % to cc gi tr v,% X, Y, Z l cc ma trn 49x49 >> surf(X,Y,Z);% v b mt S dng lnh meshS dng lnh surf th 2D v 3D 43 Hnh 4.14 >> figure >> contour (X,Y,Z,30); % v ng vin trong 2D >> colorbar %thmvotrczmtthanhmutngng vi % gi tr ca Z. >> title('2D-contour of PEAKS'); Hnh 4.15 >> figure >> contour3(X,Y,Z,30); % v ng vin trong 3D >> title('3D-contour of PEAKS'); th 2D v 3D 44>> pcolor(X,Y,Z); % gi tr z cth hin vi gi tr% mu tng ng, xem thm lnh colorbar Hnh 4.16 Lnh close all c s dng ng tt c cc ca s hnh, ng tng ca s ta c th s dng lnh close (close 1 ng ca s hnh Figure No.1). on chng trnh sau y dng xc nh v tr c gi tr nh nht ca th 3D. >> [mm,I] = min(Z); % mm l vector hng cha cc gi tr nh nht.% I cha cc v tr c gi tr nh nht. >> [Zmin, j] = min (mm);% Zmin l gi tr nh nht v j l v tr%tngng.Zminmanggitrca Z(I(j),j) >> xpos = X(I(j),j);% gi tr tng ng ca X. >> ypos = Y(I(j),j);% gi tr tng ng ca Y. >> contour (X,Y,Z,25); >> xlabel('x-axis'); ylabel('y-axis'); >> hold on >> plot(xpos,ypos,'*'); >> text(xpos+0.1,ypos,'Minimum'); >> hold off Thc hin tng t xc nh c v tr c gi tr ln nht: th 2D v 3D 45 Hnh 4.17 Chng ta cng c th kt hp hai hay nhiu th vo trong cng mt hnh. >> surf(peaks(25)+6); % dch th theo trc z +6 n v. >> hold on >> pcolor(peaks(25)); >> hold off Hnh 4.18 #Bi tp 4-14. V b mt ca hm 2 2y xxye ) y , x ( f =vi vng ly mu [-2, 2]x[-2, 2]. Tm v tr, gi tr ln nht v nh nht ca hm. th 2D v 3D 464.7.hNh 00N0 TrongMATLABchngtacthtorahnhchuynngbngcchtoramtchuicc hnh. hiu cch to ra mt hnh ng, phn tch on chng trnh sau y vi th ca hm f(x) = sin(nx) trong x = [0, 2] v n = 1, , 5. N = 5; M = moviein(N); x = linspace (0,2*pi); for n=1:N plot (x,cos(n*x),'r-'); xlabel('x-axis') if n > 1, ss = strcat('cos(',num2str(n),'x)'); else ss = 'cos(x)'; end ylabel(ss) title('Cosine functions cos(nx)','FontSize',12) axis tight% gii hn cc trc theo gi tr. grid M(:,n) = getframe; pause(1.8) end movie(M) % chy on film. Cc lnh c t m trn l cc thnh phn chnh to nn mt on hnh chuyn ng trong MATLAB. Trong on chng trnh trn, cu trc vng lp for c s dng to ra cc khung nh choonfilm.Chngtascpncutrcvnglpmtcchchitithnphnsau. Lnh strcat dng ni cc chui li vi nhau, s dng lnh help strcat hiu r hn. Khi chy on film, u tin 5 frame c hin th v sau 5 frame xut hin li vi tc nhanh hn. Lnh moviein(M) bo vi MATLAB rng c mt on film gm c M frame s c to ra. Cc frame lin tip nhau s c to ra bn trong vng lp. Vi lnh getframe, cc frame s c lu vo cc ct ca ma trn M. Lnh movie(M) s chy on film va to. Lu rng vic to ra on film yu cu kh nhiu b nh, do vy khi kt thc cng vic nn clear M ra khi workspace. #Bi tp 4-15. Vitchngtrnhtomtonfilmgmc5framelbmtcahmf(x;y)= sin(nx)sin(ny) vi x,y = [0; 2] v n = 1 : 5. Thm vo on film ta , miu t ca cc trc. th 2D v 3D 47Danh sch cc lnh v hm c gii thiu trong chng 4 Cc hm v th 2D barV biu ct barhV biu ct nm ngang errorbarV th li fillT mu mt a gic 2D histV biu histogram loglogV th trn h trc logarithm pieV biu phn trm plotV th trn h trc tuyn tnh polarV th trn h to cc semilogxV th trn h trc c trc honh chia theo thang logarithm semilogyV th trn h trc c trc tung chia theo thang logarithm stemV th xung Cc hm phc v cho th 2D axisiu chnh cc gii hn ca cc trc to box off/onXa/hin th ng vin khung ca th. clfXo ca s hnh hin ti closeng mt hay nhiu figure ang m figureTo mt figure mi v th gridHin th hoc khng hin th li vung gtextThm dng k t ti im xc nh bi con tr chut hold onCho php v th khc ln cng h trc to hin hnh hold offXo cc th c trc khi v th mi legendHin th cc ch thch trn th legend offXo cc ch thch trn th subplotChia figure thnh nhiu phn, mi phn v mt th textThm dng k t ti mt im xc nh trn th titleHin th tiu ca th xlabelHin th tn ca trc X ylabelHin th tn ca trc Y Cc hm v th 3D contourV th ng ng mc meshV th 3D vi b mt dng li th 2D v 3D 48meshgridTo li cc im (min xc nh) v thpcolorV bng mu t mt ma trn cc to peaksMt hm hai bin dng minh ho cho cc th 3D plot3V th 3D rotate3D on/offCho php / khng cho php xoay th 3D bng chut shadingChn ch ph mu surfV th 3D bng cch t mu waterfallV th 3D dng waterfall Cc hm lin quan n hnh ng getframeLu cc frame hnh ng vo mt ma trn movieinKhi ng b nh cha cc frame (khung) hnh ng movieHin th on nh ng Cc lnh v hm khc for ... endThc hin vng lp c s ln lp hu hn strcatNi hai hay nhiu chui vi nhau Biu thc r nhnh 49Chng 56.8I0 TN00 8 NNaNN Cu trc ca biu thc r nhnh bao gm mt nhm lnh cho php thc thi mt on chng trnh c iu kin hay thc hin mt vng lp. 5.I.040 I04N I0 L00I0 4 8I0 Ih00 q04N h thc thi biu thc r nhnh, chng trnh cn thc hin nhng php ton m kt qu ca n l NG hay SAI (TRUE hay FALSE). Trong MATLAB, kt qu tr v ca mt ton t logic l 1 nu n ng v kt qu l 0 nu n sai. Bng 5.1 trnh by nhng ton t logic v nhng biu thc quan h trong MATLAB. S dng lnh help relop hiu r hn v ton t logic v cc biu thc quan h. Nhng ton t quan h =, == v ~= c th c s dng so snh hai ma trn c cng kch thc (lu rng mt s thc c xem nh l mt ma trn 1x1). Hn na, cc hm xor, any, v all cng c s dng nh l cc ton t logic (s dng lnh help hiu r hn) Bng 5.1: Ton t logic v biu thc quan h. LnhKt qu a = (b > c)a l 1 nu b ln hn c. Tng t vi =, > b = 10; >> 1 | b > 0 & 0% | l logic OR, & l logic AND. ans = 0 >> (1 | b > 0) & 0 %biuthcnytngngvibiuthc trn. ans = 0 >> 1 | (b > 0 & 0) ans = 1 Lurngtrnhcctrnghpnhmlntannsdngdungocphnbitcc biu thc logic c cp u tin khc nhau. Biu thc r nhnh 50#Bi tp 5-1. D on trc kt qu v sau kim tra li bng MATLAB cc biu thc quan h trong bng 5.1 vi b = 0 v c = -1. D on trc kt qu v sau kim tra li bng MATLAB cc ton t logic (and, or) vi b = [2, 31, -40, 0] v c = 0. nh ngha hai vector ngu nhin (randn(1,7)) v thc thi tt c cc ton t logic bao gm c xor, any, v all. #Bi tp 5-2. 1.Cho x = [1, 5, 2, 8, 9, 0, 1] v y = [5, 2, 2, 6, 0, 0, 2]. Thc thi v gii thch kt qu ca cc lnh sau: x > yx = x(x > y) | (y < x) x == yx | y(x > y) & (y < x) 2.Cho x = 1 : 10 v y = [3, 5, 6, 1, 8, 2, 9, 4, 0, 7]. Thc thi v gii thch kt qu ca cc lnh sau: (x > 3) & (x < 8)x ((x < 2) | (x >= 8)) x(x > 5)y ((x < 2) | (x >= 8)) y(x > hold on >> x = -3:0.05:3; >> y = sin(3*x); >> subplot(1, 2, 1); >> plot(x, y); >> axis tight >> z = (y < 0.5).*y; >> subplot(1, 2, 2); >> plot(x, y, 'r:'); >> plot(x, z, 'r'); Biu thc r nhnh 51>> axis tight >> hold off Trc khi tip tc, chc chn rng bn hiu c ngha v hot ng cc biu thc sau: >> a = randperm(10); %hon v ngu nhin. >> b = 1:10; >> b - (a > (a >= 2) & (a < 4) % bng 1 nu 2 > ~(b > 4) % bng 1 nu b > (a == b) | b == 3 % bng 1 nu a = b hoc b = 3>> any(a > 5) % bng 1 nu bt k thnh phn no% ca a ln hn 5. >> any(b < 5 & a > 8) % bng 1 nu tn ti a v b sao cho% (b < 5 v a > 8)>> all(b > 2) % bng 1 nu tt c cc gi tr% ca b ln hn 2. Cc thnh phn ca vector hay ma trn c th c trch ra khi chng tha mn mt iu kin no . S dng lnh find cng cho ta mt kt qu tng t. Kt qu tr v ca lnh find l v tr ca cc thnh phn tha mn iu kin. V d: >> x = [11341]; >> i = (x == 1) i = 11001 >> y = x(i) y = 111 >> j = find(x == 1) % j l cc v tr ca x tha mn x(j) = 1. j = 125 >> z = x(j) z = 111 Mt v d khc l: >> x = -1:0.05:1; >> y = sin(x) .* sin(3*pi*x); >> plot (x, y,'-');>>hold on >> k = find (y > plot (x(k), y(k), 'ro'); >> r = find (x > 0.5 & y > 0) r = 35363738394041 >> plot (x(r), y(r), 'r*'); Vi ma trn, lnh find cng c thc thi theo cch tng t. >> A = [13-3-5; -12-10; 3-727]; >> k = find (A >= 2.5) k = 3 4 12 >> A(k) ans = 3 3 7 Theocchny,utinlnhfindspxpmatrnAli thnhmtvectorcttheocchct sau c ni tip vo ct trc n. Do vy, k l v tr cc thnh phn ca vector va to ra c gi tr ln hn hoc bng 2,5 v A(k) l gi tr ca cc thnh phn ny. Cc gi tr ct v dng ca cc thnh phn ny cng c th c xc nh: >> [I, J] = find (A >= 2.5) I = 3 1 3 J = 1 2 4 >> [A(I(1),J(1)),A(I(2),J(2)),A(I(3),J(3))]ans = 337 #Bi tp 5-5. Cho A = ceil(5 * randn(6, 6)) Tm cc thnh phn ca A nh hn 3. Tm cc thnh phn ca A ln hn 1 v nh hn 5. Biu thc r nhnh 53Loi b cc ct c cha thnh phn 0. 5.2.8I0 Ih00 0I0 KIN Cu trc iu kin if c s dng quyt nh nhm lnh no s c thc thi. Di dy l mttngqutcacclnhiukin.Trongnhngvdny,lnhdispcsdng thng xuyn. Lnh ny in ra mn hnh on vn bn gia hai du nhy. Cu trc if end Cu trc if else end Cu trc if elseif else end if biu thc logic lnh th 1 lnh th 1 end C php if (a > 0) b = a; disp ('a is positive'); end V d if biu thc logic 1 cc lnh c thc thi khi biu thc logic 1 TRUE elseif biu thc logic 2 cc lnh c thc thi khi biu thc logic 2 TRUE else cclnhcthcthikhi khngcbiuthclogicno TRUE end C php if(height > 190) disp ('very tall'); elseif (height > 170) disp ('tall'); elseif (height < 150) disp ('small'); else disp ('average'); end V d if biu thc logic cc lnh c thc thi khi biu thc logic TRUE else cc lnh c thc thi khi biu thc logic FALSE end C php if (temperature > 100) disp ('Above boiling.'); toohigh = 1; else disp ('Temperature is OK.'); toohigh = 0; end V d Biu thc r nhnh 54 Lu : Chng ta c th s dng mt m-file thc thi cc v d trn. m-file l mt tp tin chamtchuicclnhtrongMATLAB.toramtm-file,utinchngtammt chng trnh son tho sau nhp vo tt c cc lnh cn thit (khng c du nhc>> u mi lnh). Cui cng lu file ny vi phn m rng .m, v d mytask.m. thc thi m-file va to, t ca s lnh ca MATLAB chng ta g vo lnh mytask. Mt cch khc to ra m-file l s dng chng trnh son tho c sn ca MATLAB, chn File trn thanh cng c, sau chn New v cui cng chn m-file. Mt ca s mi s xut hin, trong ca s ny chng ta c th nhp vo on chng trnh cn thit v lu chng vo trong cng (chng trnh s t ng lu file ny vi phn m rng .m). Tt c cc lnh trong tp tin ny s c thc thi mt cch tun t trong MATLAB. m-file c th c thc thi th chng phi c lu vo nhng th mc m MATLAB c th thy c, y chnh l cc th mc nm trong danh sch ng dn ca MATLAB. Chng ta s cp mt tit hn v m-file trong nhng phn sau. V d 5-1. To mt m-file short.m cha hai dng lnh sau y v thc thi chng bng lnh short. x = 0:0.5:4; plot(x, sin(x), '*-'); #Bi tp 5-6. Hy xc nh cc gi tr tr v ca mi on chng trnh di y, (lu rng khng phi tt c cc lnh u ng). 1.if n > 1 a) n = 7 m = ? m = n + 2 b) n = 0 m = ? else c) n = -7 m = ? m = n - 2 end 2.if s = 24 a) t = 50 h = ? z = 3t + 1 b) t = 19 h = ? elseif t < 9 c) t = -6 h = ? z = t^2/3 - 2t d) t = 0 h = ? else Biu thc r nhnh 55z = -t end 4.if 0 < x < 7 a) x = -1 y = ? y = 4x b) x = 5 y = ? elseif 7 < x < 55 c) x = 30 y = ? y = -10x d) x = 56 y = ? else y = 333 end #Bi tp 5-7. TomtonchngtrnhnhpvogitrNvtnhtontrvgitrC(sdngcu trc if elseif ). S dng lnh input yu cu nhp vo mt gi tr (s dng lnh help input hiu r hn cch s dng ca lnh input). ( ]( ]( ]> +=5 5 , / 4 8 19 . 05 5 , 3 1 , 43 . 03 1 , 1 . 0 ), 14 . 0 1 ( / 241 . 0 , 0 , / 240 , 07 . 0e N N ee e Ne N N NN NNCSdngonchngtrnhtrntnhCviN=-3e3,0.01,56,1e3,3e6(lurng3e3 c th hin trong MATLAB l 3*10^3). #Bi tp 5-8. Vit mt on chng trnh nhp vo mt s nguyn v kim tra n c chia ht cho 2 hay 3 khng.Thchinvittccctrnghpcth:chiahtchoc2v3,chiahtcho2 nhng khng chia ht cho 3, (s dng lnh rem). Cu trc switch cng thng c s dng trong biu thc iu kin, switch chuyn i gia cctrnghpphthucvogitrcamtbiuthc,biuthcnycthlshayl chui. switch biu thc case choice1 khi lnh th 1 case choice2 khi lnh th 2 otherwise khi lnh end method = 2; switch method case{ } 2 , 1disp('Method is linear.'); case 3 disp('Method is cubic.'); case 4 disp('Method is nearest.'); otherwise disp('Unknown method.'); end V dC php Biu thc r nhnh 56Nhngphtbiutronglnhcaseutincbiuthcngs cchn thcthi.Biu thc c th l mt s hay l mt chui k t. Trong trng hp l s, nhm lnh c chn nu biu thc = choice. Cn trong trng hp l chui biu thc c chn khi strcmp(biu thc,choice)trvgitr1(ng)(lnhstrcmpcsdngsosnhhaichuivi nhau).Lu rng cu trc switch ch cho php thc thi duy nht mt nhm lnh. #Bi tp 5-9. Gi s rng bin thng c gi tr t 1 n 12. S dng cu trc switch, vit mt on chng trnhnhpvogitrcabinthng,ktqutrvlsngytrongthngvtnthng (November, October, December, ). 5.3.0N0 L4F Cu trc vng lp s lp li mt khi cc pht biu cho n khi mt s iu kin khng cn tha mn. C hai kiu cu trc lp ph bin l for v while. Vng lp for s thc hin mt nhm cc pht biu trong mt s ln xc nh. Trong cu trc vng lp for, step c th l s m, index c th l mt vector. Xem cc v d sau: Vng lp while thc hin mt nhm cc pht biu cho n khi biu thc iu kin l FALSE. for i = 1 : 2 : n end for i = n : -1 : 3 end V d 2 V d 1 for i = 0 : 0.5 : 4 disp(x^2); end for i = [25 9 8] disp(sqrt(x)); end V d 4 V d 3 for index = first : step : last nhm cc pht biu end sumx = 0; for i = 1:length(x) sumx = sumx + x(i); end V d C php while biu thc iu kin pht biu 1; pht biu 2; pht biu 3; end N = 100; iter = 1; msum = 0; while iter = 1) error ('a phi nh hn 1'); end #Bi tp 6-6. Vithm[elems, mns]=nonzero(A),viisngvolmatrnAvgitrtrvl vectorelemschattcccthnhphnnonzerocaA,ismnschagitrtrungbnh tng ct ca A. #Bi tp 6-7. Vithm[A,B]=sides(a,b,c),viisngvol3sdng.Nu3scthlba cnh ca mt tam gic chng trnh s tr v gi tr din tch v chu vi ca n. Trong trng hp cn li th thng bo li cho cc trng hp. #Bi tp 6-8. Vit hm [A] = matrix(n, m, min, max), cc i s ng vo l cc s nguyn. Nu n v m l cc s dng, chng trnh s tr v mt ma trn nxm c cc thnh phn l cc s ngu nhin trong khong [min, max]. Thng bo li cho cc trng hp cn li. #Bi tp 6-9. Vit hm [x1, x2] = bac_hai(a, b, c). Trong trng hp a, b, c khc zero, chng trnh tr v nghim ca phng trnh ax2 + bx + c = 0. Thng bo li cho cc trng hp cn li. Mthmm-filecthchanhiuhnmthm.Trongtrnghpmtm-filechanhiu hm th hm xut hin u tin c gi lhm chnh, hm chnh vn c cc tnh cht thng thng ca mt hm: cch hot ng, cc i s, tn hm , . Nhng hm cn li c gi l Tp lnh v hm 63hm con, chng ch c th c truy xut t hm chnh v khng th c truy xut t bt k hm no khc, k c t ca s lnh. Cu trc ca mt hm con cng gm ba phn: khai bo hm, ch thch v thn hm. Cc hm con cn c s dng trong trng hp mt hm qu di hay qu phc tp. V d hm average by gi l mt hm con ca hm stat.m. function [a,sd] = stat(x) % STAT Simple statistics. %Computestheaveragevalueandthestandarddeviationofa vector x. n = length(x); a = average(x,n); sd = sqrt(sum((x - avr).^2)/n); return; function a = average (x,n) % AVERAGE subfunction a = sum(x)/n; return; Trong on chng trnh trn, lnh a = average(x, n) c s dng trong ni dung ca hm stat gi mt hm con. Trong trng hp ny stat l hm chnh v average l hm con. 6.2.I.Nh0N0 8IN 040 8II I80N0 h4M Khi mt hm c s dng, chng trnh s t ng to ra hai bin ni l nargin, nargout. Binnarginlsisngvocsdngkhigihm,nargoutlsisngra. Phn tch hm sau y: function [out1,out2] = checkarg (in1,in2,in3) %CHECKARG Mt v d s dng bin nargin v nargout. if (nargin == 0) disp('no input arguments'); return; elseif (nargin == 1) s = in1; p = in1; disp('1 input argument'); elseif (nargin == 2) s = in1+in2; p = in1*in2; disp('2 input arguments'); elseif (nargin == 3) s = in1+in2+in3; p = in1*in2*in3; disp('3 input arguments'); Tp lnh v hm 64else error('Too many inputs.'); end if (nargout == 0) return; elseif (nargout == 1) out1 = s; else out1 = s; out2 = p; end Trong v d trn, chng trnh s cho ra cc kt qu khc nhau ty thuc vo c bao nhiu i s ng vo c s dng v c bao nhiu i s ng ra. Trong cc chng trnh ln, mt cchtngqutngitathnghaysdngbinnarginvnargoutiukhinlinhhot ni dung ca chng trnh. #Bi tp 6-10. Xydnghmcheckargvinidungnhtrn,hygihmcheckargviccisng vo v ng ra khc nhau. Mt s trng hp gi : >> checkarg >> s = checkarg(-6) >> s = checkarg(23,7) >> [s,p] = checkarg(3,4,5) 6.2.2.8IN I04N 000 4 8IN 000 80 Mi hm m-file truy cp n mt phn ring bit ca b nh trong khng gian lm vic ca MATLAB.iu ny c ngha l mi hmm-file c nhng bin cc b ca ring n, nhng hm khc khng th truy cp n cc bin ny. hiu r hn chng ta hy phn tch s sau y: Hnh 6.1 Cc bin a, b, c xut hin trong khng gian lm vic ca MATLAB, trong khi cc bin x, y, z ch c gi tr bn trong hm myfun. Tuy nhin, nu ta khai bo bin dng ton cc th tt c cc hm khc u c th s dng c bin ny (tham kho thm bng lnh help global).Lu rng chng ta nn cn thn khi s dng bin ton cc, n d gy nn nhng xo trn v nhm ln. MATLABmyfun.m >> a = -1; >> b = 20; >> c = myfun(a, b); (a, b) (x, y) c z function z = myfun(x, y) z = x + cos(x-y) return; Tp lnh v hm 656.2.3.040h 00I h4M 0I4N IIF chngtrnhtrnntngquthntannsdngcchgihmgintip,trongtrng hpnytnhmccoinhlmtisngvo.Tasdnglnhfeval(function evaluation) gi hm gin tip. Cch s dng thng thng ca lnh feval nh sau: [y1, .., yn] = feval (F, x1, ..., xn), viFltncahmcnhnghatrongMATLAB,x1, .. xnlccisngvo, y1, , yn l cc i s ng ra. V d: >> x = pi; y = cos(x); >> z = feval('cos', x); Lnh sau th tng ng vi c hai lnh u tin. Mt cch s dng khc ca hm feval. >> F = 'cos'; >> z = feval(F, x) Cch gi hmgin tip l mt cng c cn thit xy dng chngtrnhxemhmnh l mt i s. #Bi tp 6-11. Hy miu t hot ng ca hm funplot sau: function funplot (F, xstart, xend, col); %FUNPLOT makes a plot of the function F at the interval%[xstart, xend]. The plot should be made in one%of the standard Matlab colors, so'col' is one%of the following value:%'b','k','m','g','w','y' or 'r'. % default values: % [xstart,xend] = [0,10] % col = 'b' % Note: illustrates the use of feval command if (nargin == 0) error ('No function is provided.'); end if (nargin < 2) xstart = 0; xend = 10; end if (nargin == 2) error ('Wrong number of arguments. You should provide xstart and xend.'); end if (nargin < 4) Tp lnh v hm 66col = 'b'; end if (xstart == xend), error ('The [xstart, xend] should be a non-zero range.'); elseif (xstart > xend), exchange = xend; xend = xstart; xstart = exchange; end switch col case { } r' ' , y' ' , w' ' , g' ' , m' ' , k' ' , b' ' ;% do nothing; the right color choice otherwise error ('Wrong col value provided.') end x = linspace(xstart, xend); y = feval(F, x); plot (x, y, col); description = ['Plot of ', F]; title (description); return; Lu cch ghi ch thch, bin nargin v cu trc switch.Hy s dng hm funplot va to v cc th hm khc nhau, v d: sin, cos, exp, . 6.3.I4F IIN 4 h4M im khc nhau c bn nht gia tp tin v hm l tt c cc tham s v bin s trong tp tin u c th c s dng t bn ngoi (cc tham s v bin ny nm trong workspace), trong khi cc bin ca hm ch c gi tr bn trong hm v khng c truy xut hoc s dng bi cc hm khc. Do vy trong trng hp cn gii quyt mt vn vi cc thng s bt k tannsdnghm,cntrongtrnghpcnthnghimnhiulnmtvntanns dng tp tin. #Bi tp 6-12. To ra mt hm binom, c header function b = binom(n, k), tnh gi tr ca nh thckn. Lu rng trong trng hp ny ta nn to ra mt hm con factorial tnh gi tri ca biu thc n * ... * * ! n 2 1 = .Hmfactorialcthlmthmclphaycngcthlmthm Tp lnh v hm 67con trong file binom.m. Sau khi to xong hm binom, hy vit mt tp tin tnh ton cc nh thc kn vi n = 8 v k = 1, 2, .., 8. #Bi tp 6-13. Vit mt hm c ba i s l cc s nguyn dng. -Nu ba s c th l ba cnh ca mt tam gic, kt qu tr v l din tch ca hnh tam gic . Bit cng thc tnh din tch ca mt tam gic: ) c s )( b s )( a s ( s A = vi 2c b as+ +=-Ngc li nu ba s nhp vo khng phi l ba cnh ca mt tam gic th thng bo li. #Bi tp 6-14. Vitmthmkimtrahaiisnguyndngcphilhaisnguynttngihay khng? Hai s c gi l nguyn t tng i khi chng c c s chung ln nht l 1. #Bi tp 6-15. Mt cng ty in lc tnh gi tin in theo t gi sau y: -1000/kwh cho 300 kwh u tin. -800/kwh cho 300 kwh tip theo. -600/kwh cho 200 kwh tip theo. -500/kwh cho tt c cc mc s dng in trn 800 kwh. Hy vit chng trnh tnh tin in theo s kwh. #Bi tp 6-16. Vit hm c mt i s l vector x (vector ca cc s nguyn dng), kt qu tr v l vector y cha cc c s nh nht ln hn 1 ca cc thnh phn trong vector x. #Bi tp 6-17. Vit hm sp xp cc thnh phn trong vector x theo th t tng dn hoc gim dn. #Bi tp 6-18. Vit chng trnh phn loi sinh vin theo im trung bnh: -Yu:5 0 < tb-Trung bnh:5 6 5 . tb < -Kh:8 5 6 < tb .-Gii:9 8 < tb-Xut sc:10 9 tbTp lnh v hm 68Danh sch cc lnh v hm c gii thiu trong chng 6 errorHin th mt thng bo li v dng on chng trnh ang thc thi fevalThc thi mt hm c nh ngha trc fillT mu mt a gic phng (2D) globalnh ngha bin ton cc returnKt thc gi hm v tr v gi tr ca hm Vn bn 69Chng 77.9aN 8aN 7.I.0h00I K I0 Trong MATLAB vn bn c lu dng l chui ca cc k t. Chui l mt vector m cc thnh phn ca n lu tr gi tr ASCII ca cc k t trong chui. Do vn bn l mt vector ca cc k t nn ta cng c th x l vn bn ging nh x l mt vector bt k. V d: >> t = 'This is a character string' t = This is a character string >> size(t) ans = 1 27 >> whos NameSizeBytes Class t 1x2754 char array >> t(10 : 19) ans = character >> t([2, 3, 10, 17]) ans = hi t miu t chui di dng m ASCII ta s dng lnh double hoc abs bin i: >> double(t(1:12)) ans = 841041051153210511532973299104 Hm char c s dng bin i t dng m ASCII sang k t chui: >> t([16:17]) ans = ct >> t([16:17])+3% m ASCII c s dng. ans = 102119 >> t([16:17])-3% thay i m ASCII ans = 96113 >> char(t([16:17])-2) % bin i m ASCII sang k t chui. Vn bn 70ans = ar #Bi tp 7-1. Thc thi cc lnh cmiut trn, s dng chui t to ra chui u ch cha cc k t character. Bin i chui u thnh chui u1 = retcarahc. Sau y l mt s v d v cc hm c s dng bin i chui. V d hm findstr c s dng tm mt k t hay mt nhm cc k t xut hin trong chui.>> findstr(t, 'c') % tm v tr ca 'c' xut hin trong t ans = 1116 >> findstr(t, 'racter') % tm v tr ca chui 'racter' trong t ans = 14 >> findstr(t,u)% tm chui u trong chui t ans = 11 >> strcat(u,u1)% ni hai chui u v u1 li vi nhau ans = characterretcarahc >> strcmp(u,u1)% so snh hai chui ans = % tr v 1 nu hai chui ging nhau% v ngc li l 0 0 >> q = num2str(34.35) % bin i s thnh chui q = 34.35 >> z = str2num('7.6') % bin i chui thnh s. z = 7.6 >> whos q z%qlchui(matrncckt),zl s. NameSizeBytes Class q 1x5 10 char array z 1x1 8 double array >> t = str2num('1-7 2') % bin i chui thnh vector ca cc s. t = 1-72 >> t = str2num('1-72')% lu cc khong trng xung quanhVn bn 71% du '-' hoc '+', trong trng hp % ny l: [1-7,2] t = -62 Lu rng khi bin i t chui sang s hoc t s sang chui, cc khong trng xung quanh du - hoc + mang ngha rt quan trng. >> A = round(4*rand(3,3))+0.5; >> ss = num2str(A) % bin i ma trn A thnh chui cc k t. ss = -3.5-3.56.5 -2.5-1.50.5 5.5-1.5 -3.5 >> whosss NameSizeBytes Class ss 3x28168 char array >> ss(2,1), ss(3,15:28) % ss l mt ma trn cc k t. ans = - ans = .5 -3.5 >> ss(1:2,1:3) ans = -3. -2. #Bi tp 7-2. Thcthicclnhtrongvdtrn.nhnghamtchuimis = 'Nothing wastes more energy than worrying' v thc hin cc v d vi lnh findstr. 7.2.I04I 4 Nh4F 4N 84N Lnh input c s dng yu cu ngui dng nhp vo mt s hay mt chui. >> myname = input('Enter your name: ','s'); >> age = input('Enter your age: '); Lu ngha ca hai lnh trn, lnh th nht yu cu nhp vo mt chui v lnh th hai yu cu nhp vo mt s. C hai hm c s dng xut vn bn l disp v fprintf. Hm disp ch th hin gi tr ca mt i s l mt ma trn s hay ma trn chui. V d: >> disp('This is a statement.')% xut ra mt chui. This is a statement. >> disp(rand(3)) % xut ra mt ma trn. Vn bn 720.2221 0.0129 0.8519 0.4885 0.0538 0.5039 0.2290 0.3949 0.4239 Hm fprintf (tng t trong ngn ng lp trnh C) c s dng ghi d liu vo file hay xut ra mn hnh nh dng chnh xc ca i s. V d: >> x = 2; >> fprintf('Square root of %g is %8.6f.\n', x, sqrt(x)); Square root of 2 is 1.414214. >> str = 'beginning'; >> fprintf('Every %s is difficult.\n',str); Every beginning is difficult. Hm fprintf c kh nng bin i, nh dng v ghi i s ca n vo mt file hay th hin chng trn mn hnh theo mt nh dng c bit. C php sau y c s dng xut ra mn hnh: fprintf (format, a, ...) Chui format cha cc k t thng thng s c a n ng ra v cc ch nh bin i, michnhbinischuynimtiscahmfprintfthnhchuiktcnh dng tng ng v sau in ra mn hnh. a l cc i s ca hm fprintf. Mi ch nh bin i bt u bng k t % v kt thc bi mt k t chuyn i. Gia % v k t chuyn i c th l: du -: khi c k t ny i s s c in ra vi nh dng canh l tri, trong trng hp ngc li, mc nh l canh l phi. sxcnhchiuditithiu:lphmvitithiumisscinra,trong trng hp chiu di ca i s ln hn chiu di ti thiu th phm vi in ra s bng vi chiu di ca i s. s xc nh s cc ch s thp phn du .: l du dng phn bit hai nh dng trn. Bng 7.1: Mt s k t chuyn i v ngha ca chng K t ngha. dbin i i s sang kiu s thp phn ubin i i s sang kiu s thp phn khng du cbin i i s thnh mt k t sbin i i s thnh mt chui ebinissinglehaydoublethnhsthpphncdng []m.nnnnnnE[]xx. Xem thm v d bn di fbin i s single hay double thnh s thp phn c dng []mmm.nnnnnn. Xem thm v d bn di gnh dng ging trng hp e v f nhng c vit dng ngn hn. Cc s zero khng c ngha s khng c in ra Vn bn 73Cc nh dng \n, \r, \t, \b ln lt c s dng to ra mt dng mi, xung dng, tab v tab ngc (ngc vi phm tab). in ra ra k t \ ta s dng \\, tng t, in ra k t % ta s dng %%. Phn tch v d sau y: >> fprintf('look at %20.6e!\n', 1000*sqrt(2)) look at 1.414214e+3! >> fprintf('look at %-20.6f!', 1000*sqrt(2)) look at 1414.213562!Trongchaitrnghp,khongtithiuinisl20vschsthpphnl6. Trong trng hp u, gi tr 1000*sqrt(2) c nh dng canh l phi v trong trng hp th hai, bi v c du - nn gi tr 1000*sqrt(2) c nh dng canh l tri. S khc nhau ca hai kt qu cn do ngha ca cc k t bin i e v f. #Bi tp 7-3. S dng lnh input nhp vo cc gi tr ca mt vector. Sau s dng lnh disp hay lnh fprintf xut vector mi va to ra mn hnh. #Bi tp 7-4. Xemxtccvd sauyvlnhfprintfvsautlmccbitptngt hiu r hn v cc ch nh ny: >> str = 'life is beautiful'; >> fprintf('My sentence is: %s\n',str); % lu nh dng \n My sentence is: life is beautiful >> fprintf('My sentence is: %30s\n',str); My sentence is:life is beautiful >> fprintf('My sentence is: %30.10s\n',str); My sentence is: life is be >> fprintf('My sentence is: %-20.10s\n',str); My sentence is: life is be >> >> name = 'John'; >> age = 30; >> salary = 6130.50; >> fprintf('My name is %4s. I am %2d. My salary is f %7.2f.\n',name, age, salary); My name is John. I am 30. My salary is f 6130.50. >> >> x = [0, 0.5, 1]; >> y = [x; exp(x)]; >> fprintf('%6.2f %12.8f\n',y); 0.00 1.00000000 0.50 1.64872127 1.00 2.71828183 Vn bn 74>> >> fprintf('%6.1e %12.4e\n',y); 0.0e+00 1.0000e+00 5.0e-01 1.6487e+00 1.0e+00 2.7183e+00 >> >> x = 1:3:7; >> y = [x; sin(x)]; >> fprintf('%2d %10.4g\n',y); 1 0.8415 4 -0.7568 7 0.657 Lurnglnhfprintfsdngccchnhbinikhaibocbaonhiuistheo sauvkiucatngis.Nuchngtakhngcungcpishaycungcpis khng ng kiu th chng ta s nhn c mt kt qu khng ng. Do vy, cn cn thn vi vic khai bo i s trong lnh fprintf. Xem xt v d sau: >>fprintf('Mynameis%4s.Iam%2d.Mysalaryisf %7.2f.\n',name,salary); My name is John. I am 6.130500e+03. My salary is fCh rng lnh sprintf cng tng t nh lnh fprintf ngoi tr lnh sprintf c s dng gn kt qu cho mt chui. Xem xt v d sau y: >>str=sprintf('Mynameis%4s.Iam%2d.Mysalaryisf %7.2f.\n',name,age,salary) str = My name is John. I am 30. My salary is f 6500.50. #Bi tp 7-5. nh ngha chui s = 'How much wood could a wood-chuck chuck if a wood-chuck could chuck wood?', s dng lnh findstr tm cc v tr xut hin cc chui con wood, o, uc hay could trong chui s. #Bi tp 7-6. Vit mt tp tin hay hm bin i s La M sang gi tr thp phn tng ng. IVXLCDM 1510501005001000V d: IV(4), IX(9), XL(40), XC(90), CD(400) v CM(900). Vit mt hm lm cng vic ngc li, bin i s thp phn sang s La M. #Bi tp 7-7. Vit hm m ha v gii m theo lut sau y: tt c cc k t trong chui s c gi tr ASCII ca n dch i n, vi n l mt i s. V d trong trng hp n = 1, chui abcde s c m ha thnh bcdef v alphabet c m ha thnh bmqibcfu. Trong trng hpny z s Vn bn 75c m ha thnh a. M ha vi n = 26 s cho ta ta kt qu l chui nhp vo. Vit hai hm coder v decoder, mi hm c hai i s, i s th nht l chui cn m ha/gii m v isthhailscndchn.Trongtrnghpmha,chuinhpvonnlchui c m ha. #Bi tp 7-8. Vit mt hm xa b tt c cc k ttrng trong chui. #Bi tp 7-9. Vit mt hm nhp vo mt danh t v tr v dng s nhiu ca n da trn nhng quy tc sau: a)Nu danh t kt thc bng y, hy loi b y ri thm vo ies b)Nu danh t kt thc bng s, ch hay sh hy thm vo es c)Trong cc trng hp khc thm s. #Bi tp 7-10. Vitchngtrnhongcccttrongchui.VdNguyenVanAnthnhAnVan Nguyen. Vn bn 76Danh sch cc hm c gii thiu trong chng 7 absChuyn kiu k t thnh m ASCII charChuyn m ASCII thnh k t dispHin th mt chui ra ca s lnh ca MATLAB doubleChuyn kiu k t thnh m ASCII findstrTm mt chui trong mt chui khc fprintfBin i nh dng mt chui v ghi vo mt file hoc hin th ra mn hnh inputYu cu ngi s dng nhp vo mt chui v tr v chui c nhp sprintfGing fprintf nhng kt qu c gn cho mt chui Giao din ngi s dng 77Chng 88.0Ia0 0IN N000I 80 00N0 (00I) Giaodinngisdng(GraphicalUserInterfaceGUI)lgiaodinbnghnhnhca chngtrnh.MtGUIttcthlmchochngtrnhtrnndsdngbngcchcung cpnhngthngtinbanucnthitvvinhngcngciukhinnh:ntnhn (pushbutton), hp lit k (list box), thanh trt (slider), trnh n (menu), . GUI nn c thit k mt cch d hiu v thn thin ngi s dng c th hiu v d on c kt qu ca mt tc ng. 8.I.040h L4M I0 004 M0I 00I GUI bao gm cc nt nhn, hp lit k, thanh trt, menu, , chng cung cp cho ngi s dng mt mi trng lm vic thn thin h tp trung vo cc ng dng ca chng trnh hn litmhiucchthclmvic cachngtrnh.Tuynhin,toraGUIlcngvic kh khn i vi ngi lp trnh bi v chng trnh phi c x l vi cc click chut cho bt k thnh phn no ca GUI v vo bt k thi im no. Trong MATLAB, to ra mt GUI lu ba yu cu chnh sau y: Component(ccthnhphn):miitngtrongGUI(ntnhn,nhn,hpsontho, ) l mt thnh phn. Cc thnh phn c phn loi thnh: cng c iu khin (nt nhn, hp son tho, thanh trt, ), cc thnh phn tnh (khung hnh, chui k t,),menuv axes (l cc h trc dng hin th hnh ha). Cc cng c iu khin v cc thnh phn tnhctorabihmuicontrol,menuctorabicchmuimenuv uicontextmenu, axes c to ra bi hm axes. Figure:ccthnhphncaGUIphicspxpvotrongmtfigure,lmtcas chinthtrnmnhnhmyvitnh.Trongccchngtrc,mtfigurectng to ra khi v th. Lnh figure to ra mt figure c s dng cha cc thnh phn ca GUI. Callback: cui cng, khi ngi s dng tc ng vo chng trnh bng cch nhn chut hay g bn phm th chng trnh phi p ng li mi s kin ny. V d, trong trng hp ngi s dng tc ng vo mt nt nhn th MATLAB s thc thi mt hm tng ng vi nt nhn . Mi thnh phn ca GUI phi callback mt hm tng ng ca n.Cc thnh phn c bn ca GUI c tm tt trong bng 8.1 v c th hin trong hnh 8.1. Chng ta s tm hiu nhng thnh phn ny thng qua cc v d v sau s dng chng to ra cc GUI. Giao din ngi s dng 78Bng 8.1 Mt s thnh phn c bn ca GUI Cng cTo bi hmMiu t Cc cng c iu khin PushbuttonuicontrolL mt nt nhn. N s gi hm khi nhn vo n. Toggle buttonuicontrolL nt nhn c hai trng thi l on v off. Khi c tc ng n s gi hm tng ng v thay i trng thi t on sang off hoc ngc li. Radio buttonuicontrolCng l mt nt nhn c hai trng thi c th hin bi mt vng trn nh, trngthiontngngvitrnghpcduchmgiavngtrnv ngc li l trng thi off. Trong mt nhm Radio button ta ch c th chn cmtthnhphn.Khictcngvomithnhphnscmthm c gi. Check boxuicontrolCng l mt nt nhn c hai trng thi c th hin bi mt hnh vung nh, trngthiontngngvitrnghpcnhdugiahnhvungv ngcliltrngthioff.Khictcngnsgihmtngngv thay i trng thi t on sang off hoc ngc li. List boxuicontrolL mt danh sch cc chui. Ngi s dng c th chn mt chui bng cch clickhocdoubleclickvon.Chngtrnhsgimthmkhicmt chui c chn. Popup menusuicontrolLcngcchophpchngtachnmtchuitrongmtnhmccchui. Danh sch tt c cc chui s c hin th khi c click chut. Khi khng c click chut cng c ch th hin chui hin ti c chn. SlideruicontrolLcngcchophpiuchnhmtcchlintcgitrtrongmtthanh trt. Mi khi gi tr ca thanh trt thay i s c hm c gi. Cc thnh phn tnh Frameuicontrolcs dng toramtkhung hnhch nht.Framecn cs dng nhm cc cng c iu khin li vi nhau. Frame khng c kh nng gi hm. Text fielduicontrolc s dng to ra mt nhn bao gm cc k t. Text field khng c kh nng gi hm. Memu v trc th Menu itemsuicontrolcsdngtoramenutrnthanhcngc.Chngtrnhsgihm khi mt i tng trong menu c chn. Context menusuicontextmenucsdngtoramenuxuthinkhiright-clickvomthnhtrong giao din. Axesaxesc s dng to mt h trc th. Axes khng c kh nng gi hm. Giao din ngi s dng 79 8.2.I40 4 hIN Ihj M0I 00I Trong MATLAB, cng c guide c s dng to ra cc GUI, cng c ny cho php b tr, la chn v sp xp cc thnh phn. Cc thuc tnh ca mi thnh phn: tn, mu sc, kch c, font ch, u c th c thay i. Cng c guide c thc thi bng cch chn File New GUI, khi c gi guide s to ra mt Layout Editer, nh hnh 8.2. Vng mu xm c nhng ng k l vng lm vic, trong vng ny chng