Phụ lục-Lệnh hàm 152 POLYVALM POLYVALM Ỉåïc lỉåüng âa thỉïc ma tráûn Nãúu V l vectå cọ cạc pháưn tỉí l cạc hãû säú ca âa thỉïc, thç POLYVALM(V,X) l giạ trë ca âa thỉïc tải âäúi säú ma tráûn X Xem POLYVAL våïi cạch âa thỉïc trỉåìng håüp âäúi säú thỉåìng hồûc mng RESIDUE RESIDUE Tênh khai triãøn tỉìng pháưn hay thàûng dỉ [R,P,K] = RESIDUE(B,A) tçm thàûng dỉ, cỉûc v hỉåïng ca khai triãøn tỉìng pháưn ca chia âa thỉïc, B(s) v A(s) Nãúu khäng cọ nghiãûm kẹp, B(s) R(1) R(2) R(n) -= + + + + K(s) A(s) s - P(1) s - P(2) s - P(n) Cạc vectå B v A l cạc hãû säú ca cạc âa thỉïc theo ly thỉìa thoại ca s Thàûng dỉ tr vãư vectå cäüt R, cạc vë trê cỉûc vectå cäüt P, v cạc hỉåïng vectå dng K Säú cạc cỉûc l n = length(A)-1 = length(R) = length(P) Vectå hãû säú hỉåïng l räùng nãúu length(B) < length(A); ngỉåüc lải thç length(K) = length(B)-length(A)+1 Nãúu P(j) = = P(j+m-1) l mäüt cỉûc ca multplicity m, thç khai triãøn bao gäưm cạc hảng tỉí thüc dảng R(j) R(j+1) R(j+m1) _ + -+ + s - P(j) (s - P(j))^2 (s P(j))^m [B,A] = RESIDUE(R,P,K), våïi âäúi säú nháûp v âäúi säú xút, chuøn khai triãøn phán säú tỉìng pháưn thnh cạc âa thỉïc våïi cạc hãû säú B v A Khuún cạo: Vãư màût säú, khai triãøn phán säú cạc âa thỉïc l biãøu hiãûn ca mäüt bi toạn úu Nãúu âa thỉïc thỉïc máùu, A(s), gáưn âa thỉïc cọ nghiãûm bäüi, thç cạc thay âäøi nh säú liãûu, kãø c sai säú, cọ thãø lm thay âäøi låïn cạc cỉûc v thàûng dỉ kãút qu Cạc cäng thỉïc ca bi toạn lm cho viãûc dng cạch biãøu diãùn cỉûc träúng hồûc l thêch håüp hån POLYFIT POLYFIT Khåïp âỉåìng cong âa thỉïc POLYFIT(x,y,n) tçm cạc hãû säú ca âa thỉïc p(x) báûc n âãø khåïp säú liãûu, p(x(i)) ~= y(i), theo phỉång phạp bçnh phỉång bẹ nháút [p,S] = POLYFIT(x,y,n) tr vãư cạc hãû säú âa thỉïc p v ma tráûn S âãø dng våïi POLYVAL âãø cho cạc ỉåïc lỉåüng sai säú cạc dỉû âoạn Nãúu cạc sai säú säú liãûu, y, âäüc láûp våïi biãún Phan Thanh Tao - 2004 Phụ lục-Lệnh hàm 153 hàòng, thç POLYVAL s cho cạc giåïi hản sai säú chỉïa êt nháút 50% ca dỉû âoạn Phan Thanh Tao - 2004 Phụ lục-Lệnh hàm 154 POLYDER POLYDER Âảo hm âa thỉïc POLYDER(P) tr vãư âảo hm ca âa thỉïc cọ cạc hãû säú l cạc pháưn tỉí ca vectå P POLYDER(A,B) tr vãư âảo hm ca âa thỉïc A*B [Q,D] = POLYDER(B,A) tr vãư âảo hm ca âa thỉïc thỉång B/A, biãøu diãùn thnh Q/D CONV Têch cháûp v nhán âa thỉïc C = CONV(A, B) têch cháûp cạc vectå A v B Vectå kãút qu cọ âäü di LENGTH(A)+LENGTH(B)-1 Nãúu A v B l cạc vectå l cạc hãû säú ca âa thỉïc, thç têch cháûp chụng tỉång âỉång nhán hai âa thỉïc DECONV Tạch cháûp v chia âa thỉïc [Q,R] = DECONV(B,A) tạch cháûp cạc A B Kãút qu tr vãư vectå Q v pháưn dỉ vectå R âãø B = conv(Q,A) + R Nãúu A v B l cạc vectå l cạc hãû säú ca âa thỉïc, thç tạch cháûp tỉång âỉång våïi chia âa thỉïc Kãút qu chê B cho A âỉåüc thỉång Q v dỉ R Näüi suy säú liãûu INTERP1 INTERP1 näüi suy säú liãûu chiãưu (tra cỉïu bng) YI = INTERP1(X,Y,XI) tr vãư vectå YI chỉïa cạc pháưn tỉí tỉång ỉïng våïi cạc pháưn tỉí XI v xạc âënh båíi phẹp näüi suy bãn cạc vectå X v Y Phẹp näüi suy cng thao tạc " tra cỉïu bng " Mä t cạc säú hảng " tra cỉïu bng ", "bng" l [X,Y] v INTERP1 " cạc tra cỉïu" l cạc pháưn tỉí ca XI X, v, dỉûa vo cạc vë trê ca chụng, cạc giạ trë tr vãư YI näüi suy bãn cạc pháưn tỉí ca Y INTERP1 thỉûc hiãûn xút nhiãưu giạ trë tra cỉïu bng nãúu Y l ma tráûn Nãúu Y l ma tráûn cọ length(X) dng, v N cäüt, thç INTERP1 tr vãư ma tráûn YI cåỵ length(XI)xN chỉïa nhiãưu kãút qu xút ca tra cỉïu bng Ngáưm âënh, INTERP1 dng näüi suy tuún YI = INTERP1(X,Y,XI,'method') chè âënh cạc phỉång phạp khạc Cạc phỉång phạp cọ thãø l: 'linear' - näüi suy tuún 'spline' - näüi suy spline láûp phỉång 'cubic' - näüi suy láûp phỉång Táút c cạc phỉång phạp näüi suy âi hi X phi l âån âiãûu Phỉång phạp láûp phỉång 'cubic' cng âi hi cạc âiãøm X phi cạch âãưu Vê dủ, phạt sinh âỉåìng cong hçnh sin thä v näüi suy trãn mäüt honh âäü täút hån: Phan Thanh Tao - 2004 Phụ lục-Lệnh hàm x = 0:10; y = sin(x); xi = 0:.25:10; interp1(x,y,xi); plot(x,y,'o',xi,yi) 155 yi = INTERP2 INTERP2 näüi suy säú liãûu chiãưu (tra cỉïu bng) ZI = INTERP2(X,Y,Z,XI,YI) tr vãư ma tráûn ZI chỉïa cạc pháưn tỉí tỉång ỉïng våïi cạc pháưn tỉí ca XI v YI v xạc âënh bàòng phẹp näüi suy bãn hm chiãưu mä t båíi cạc ma tráûn X, Y, v Z Cạc giạ trë bãn ngoi miãưn tr vãư NaN X cọ thãø l mäüt vectå dng, trỉåìng håüp ny âỉåüc gi thiãút ạp dủng vo cạc cäüt ca Z Tỉång tỉû, Y cọ thãø l vectå cäüt v cạc pháưn tỉí ca âỉåüc gi thiãút ạp dủng qua cạc dng ca Z Phẹp näüi suy cng thao tạc "table lookup" Mä t cạc säú hảng " tra cỉïu bng ", "bng" l TAB = [NaN,Y; X,Z] v INTERP2 "cạc tra cỉïu " l cạc pháưn tỉí ca XI X, YI Y, v, dỉûa vo vë trê ca chụng, cạc giạ trë tr vãư ZI näüi suy bãn cạc pháưn tỉí ca Z Ngáưm âënh, INTERP2 dng phẹp näüi suy song tuún ZI = INTERP2(X,Y,Z,XI,YI,'method') chè âënh phỉång phạp khạc Cạc phỉång phạp cọ thãø l: 'linear' or 'bilinear' - näüi suy song tuún 'cubic' or 'bicubic' - näüi suy song láûp phỉång 'nearest' - näüi suy cáûn gáưn nháút Táút c cạc phẹp näüi suy âãưu âi hi X v Y l âån âiãûu v lỉåïi vng (nãúu chụng âỉåüc tảo bàòng cạch dng MESHGRID) Khong cạch biãún âäøi âỉåüc xỉí l bàòng ạnh xả cạc giạ trë â cho X,Y,XI, v YI vo mäüt miãưn giạ trë cạch âãưu trỉåïc näüi suy INTERPFT INTERPFT Näüi suy chiãưu bàòng cạch dng phỉång phạp FFT (biãún âäøi Fourier nhanh) Y = INTERPFT(X,N) tr vãư vectå Y âäü di N nháûn âỉåüc bàòng cạch näüi suy biãøn âäøi Fourier ca X Gi sỉí x(t) l hm tưn hon theo t våïi chu k p, tảo máùu tai cạc âiãøm cạch âãưu, X(i) = x(T(i)) våïi T(i) = (i-1)*p/M, i = 1:M, M = length(X) Räưi y(t) l mäüt hm tưn hon khạc cng chu k v Y(j) = y(T(j)) våïi T(j) = (j-1)*p/N, j = 1:N, N = length(Y) Nãúu N l mäüt bäüi ngun ca M, thç Y(1:N/M:N) = X Nãúu X l mäüt ma tráûn, phẹp näüi suy âỉåüc thỉûc hiãûn theo tỉìng cäüt INTERPFT, khäng tham säú, l mäüt chỉång trçnh máùu Phan Thanh Tao - 2004 Phụ lục-Lệnh hàm 156 GRIDDATA GRIDDATA Lỉåïi dỉỵ liãûu ZI = GRIDDATA(X,Y,Z,XI,YI) tr vãư ma tráûn ZI chỉïa cạc pháưn tỉí tỉång ỉïng våïi cạc pháưn tỉí ca cạc ma tráûn XI v YI, v âỉåüc xạc âënh bàòng phẹp näüi suy bãn hm chiãưu mä t båíi cạc vectå (X,Y,Z ) thäng thỉåìng l khäng âäưng bäü XI cọ thãø l vectå dng, trỉåìng håüp ny chè âënh mäüt ma tráûn våïi cạc cäüt hàòng Tỉång tỉû, YI cọ thãø l vectå cäüt v chè âënh mäüt ma tráûn våïi cạc dng [XI,YI,ZI] = GRIDDATA(X,Y,Z,XI,YI) tr vãư XI v YI tảo nãn cạch ny, âọ l giäúng cạc ma tráûn tr vãư båíi MESHGRID GRIDDATA dng phỉång phạp khong cạch âo Näüi suy Spline SPLINE Phẹp näüi suy säú liãûu spline láûp phỉång Cạc vectå säú liãûu cho trỉåïc X v Y, v mäüt vectå honh âäü måïi XI, hm YI = SPLINE(X,Y,XI) dng phẹp näüi suy spline láûp phỉång âãø tçm vectå YI tỉång ỉïng våïi XI Âáy l mäüt vê dủ âãø phat sinh âỉåìng cong hçnh sin thä, räưi näüi suy trãn mäüt honh âäü täút hån: x = 0:10; y = sin(x); xi = 0:.25:10; yi = spline(x,y,xi); plot(x,y,'o',xi,yi) PP = spline(x,y) tr vãư dảng-pp ca phẹp näüi suy spline láûp phỉång, âãø sau âọ dng våïi ppval, v.v PPVAL Ỉåïc lỉåüng âa thỉïc tỉìng mnh v = ppval(pp,xx) tr vãư giạ trë pp ca hm pp tải xx Hm vãư xáu chỉỵ STRINGS STRINGS Cạc chùi k tỉû MATLAB X = 'Any Ch' l mäüt vectå cọ cạc thnh pháưn ca l m ASCII ca cạc k tỉû Âäü di ca X l säú k tỉû Mäüt dáúu nhạy chùi âỉåüc biãøu hiãûn bàòng dáúu nhạy X = REAL(X) âàût vectå vo m ASCII dảng tháûp phán X = SETSTR(X) âàût ngỉåüc lải mäüt chùi ISSTR(X) kiãøm tra X l mäüt biãún chùi Vo lãûnh "help strfun" cho danh cạc hm xỉí l chùi ABS Láúy giạ trë tuût âäúi v chuøn chùi sang säú Phan Thanh Tao - 2004 Phụ lục-Lệnh hàm 157 ABS(X) l giạ trë tuût âäúi ca cạc pháưn tỉí ca X Nãúu X phỉïc thç ABS(X) l mäâun ca cạc pháưn tỉí ca X Nãúu S l biãún chùi MATLAB thç ABS(S) tr vãư cạc giạ trë säú ASCII tháûp phán ca cạc k tỉû chùi Khäng thay âäùi biãøu hiãûn bãn m chè thay âäøi cạch in SETSTR Xem cạc giạ trë säú l chùi X = SETSTR(X) cọ thãø dng cho cạc vectå chỉïa cạc säú ngun tỉì âãún 255 âãø biãøu hiãûn m ASCII cho vàn bn Hm tr vãư vectå âỉåüc hiãøn thë vàn bn chỉï khäng l cạc säú ngun ISSTR Âụng nãúu l chùi ISSTR(S) tr vãư nãúu l chùi vàn bn, ngỉåüc lải tr vãư BLANKS Mäüt chùi gäưm cạc k tỉû träúng BLANKS(n) l mäüt chùi gäưm n k tỉû träúng Dng våïi DISP, DISP(['x' BLANKS(20) 'y']) DISP(BLANKS(n)') di chuøn tr xúng n dng DEBLANK DEBLANK Xọa cạc k tỉû träúng åí cúi mäüt chùi DEBLANK(S) Xọa cạc k tỉû träúng åí cúi mäüt chùi v mi k tỉû null chùi S K tỉû null l mäüt k tỉû cọ trë tuût âäúi bàòng STR2MAT STR2MAT Tảo dảng ma tráûn vàn bn tỉì cạc chùi riãng biãût S = STR2MAT(T1,T2,T3, ) tảo ma tráûn S chỉïa cạc chùi vàn bn T1,T2,T3, l cạc dng Tỉû âäüng thãm mäùi chùi cạc k tỉû träúng nhàòm tảo mäüt ma tráûn håüp l Cọ thãø dng âãún 10 chùi âãø tảo S Mäùi tham säú vàn bn, Ti, cọ thãø chênh l mäüt ma tráûn chùi Cạch ny cho phẹp tảo cạc ma tráûn chùi låïn ty EVAL Thỉûc hiãûn chùi chỉïa biãøu thỉïc MATLAB EVAL(s), våïi s l mäüt chùi, lm cho MATLAB thỉûc hiãûn mäüt biãøu thỉïc hồûc mäüt lãûnh EVAL(s1,s2) cung cáúp kh nàng bàõt läùi Nọ thỉûc hiãûn s1 v tr vãư nãúu thao tạc thnh cäng Nãúu thao tạc bë läùi thç s2 âỉåüc ỉåïc lỉåüng trỉåïc tr vãư Nghé lãûnh EVAL('try','catch') [X,Y,Z, ] = EVAL(s) tr vãư cạc âäúi säú xút tỉì biãøu thỉïc chùi s Cạc chùi nháûp vo EVAL thỉåìng âỉåüc tảo bàòng cạch näúi cạc chùi v cạc biãún bãn càûp ngồûc vng Vê dủ: Phạt sinh mäüt dy ma tráûn cọ tãn tỉì M1 âãún M12: Phan Thanh Tao - 2004 Phụ lục-Lệnh hàm 158 for n = 1:12 , eval(['M' num2str(n) ' = magic(n)']) , end Chảy mäüt tãûp M-file ngun bn Cạc chùi tảo nãn cạc dng ca ma tráûn D phi cng âäü di D = ['odedemo ' 'quaddemo' 'fitdemo ']; n = input('Select a demo number: '); eval(D(n,:)) Âc v xỉí l cạc tãûp data1.dat, data2.dat, k = 0; while k = k+1; datak = ['data' int2str(k)]; filename = [datak '.dat']; if ~exist(filename), break, end eval(['load ' filename]); X = eval(datak); % Xỉí l dỉỵ liãûu ma tráûn X end STRCMP So sạnh chùi STRCMP(S1,S2) tr vãư nãúu S1 v S2 giäúng v ngỉåüc lải thç tr vãưì FINDSTR FINDSTR Tçm mäüt chùi chùi khạc K = FINDSTR(S1,S2) tr vãư cạc chè säú bàõt âáưu ca mi xút hiãûn S2 S1 Vê dủ: s = 'How much wood would a woodchuck chuck?'; findstr(s,'a') tr vãư 21 findstr(s,'wood') tr vãư [10 23] findstr(s,'Wood') tr vãư [] findstr(s,' ') tr vãư [4 14 20 22 32] UPPER Chuøn chùi sang chỉỵ hoa A = upper(a) chuøn mi k tỉû thỉåìng A thnh k tỉû hoa tỉång ỉïng, cạc k tỉû khạc khäng thay âäøi LOWER Chuøn chùi sang chỉỵ thỉåìng b = lower(A) chuøn mi k tỉû hoa A thnh k tỉû thỉåìng tỉång ỉïng, cạc k tỉû khạc khäng thay âäøi ISLETTER ISLETTER âụng nãúu l chỉỵ cại Våïi mäüt chùi S, thç ISLETTER(S) l cho cạc chỉỵ cại, cn lải l ISSPACE Phan Thanh Tao - 2004 Phụ lục-Lệnh hàm 159 ISSPACE âụng nãúu l k tỉû träúng, sang dng, vãư âáưu dng, tab, tab âỉïng, hay sang trang Våïi chùi S, thç ISSPACE(S) l1 cho cạc k tỉû träúng v cho k tỉû khạc STRREP STRREP tçm v thay thãú chùi S = STRREP(S1,S2,S3) thay thãú S2 S1 måïi S3 Vê dủ: s1='This is a good example'; strrep(s1,'good','great') tr vãư great example' strrep(s1,'bad','great') tr vãư good example' strrep(s1,'','great') tr vãư good example' våïi chùi 'This is a 'This is a 'This is a STRTOK Tçm dáúu hiãûu chùi (dáúu hiãûu l k tỉû khäng l chỉỵ cại hay säú) STRTOK(S,D) tr vãư dáúu hiãûu âáưu tiãn S âỉåüc âạnh dáúu båíi D Nọ cng cọ cạc tr vãư ty chn l pháưn cn lải ca chùi gäúc D l mäüt mng cạc k tỉû dáúu hiãûu Nãúu khäng cho dáúu hiãûu thç gi thiãút l k tỉû träúng NUM2STR NUM2STR Chuøn säú sang chùi T = NUM2STR(X) chuøn säú vä hỉåïng X sang chùi biãøu hiãûn T våïi khong chỉỵ säú v cọ mäüt pháưn m nãúu cáưn Hm ny thỉåìng dng âãø âạnh nhn cạc hçnh v våïi cạc lãûnh TITLE, XLABEL, YLABEL v TEXT Mäüt âäúi säú ty chn cọ thãø cho âãø biãøu hiãûn mäüt âäü chênh xạc thay âäøi T = NUM2STR(X,PREC) chuøn säú vä hỉåïng X sang chùi våïi mäüt âäü chênh xạc täúi âa chè âënh båíi PREC Phan Thanh Tao - 2004 ...Phụ lục- Lệnh hàm 153 hàòng, thç POLYVAL s cho cạc giåïi hản sai säú chỉïa êt nháút 50% ca dỉû âoạn Phan Thanh Tao - 2004 Phụ lục- Lệnh hàm 154 POLYDER POLYDER Âảo... Phan Thanh Tao - 2004 Phụ lục- Lệnh hàm 157 ABS(X) l giạ trë tuût âäúi ca cạc pháưn tỉí ca X Nãúu X phỉïc thç ABS(X) l mäâun ca cạc pháưn tỉí ca X Nãúu S l biãún chùi MATLAB thç ABS(S) tr vãư cạc... âãún 255 âãø biãøu hiãûn m ASCII cho vàn bn Hm tr vãư vectå âỉåüc hiãøn thë vàn bn chỉï khäng l cạc säú ngun ISSTR Âụng nãúu l chùi ISSTR(S) tr vãư nãúu l chùi vàn bn, ngỉåüc lải tr vãư BLANKS Mäüt