Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
546,9 KB
Nội dung
CH NG 1: MATLAB C B N §1 KH I NG MATLAB Kh i ng MATLAB: MATLAB (Matrix laboratory) ph n m m dùng gi i m t lo t toán k thu t, c bi t toán liên quan n ma tr n MATLAB cung c p toolboxes, t c hàm m r ng môi tr ng MATLAB gi i quy t v n c bi t nh x lí tín hi u s , h th ng i u n, m ng neuron, fuzzy logic, mô ph ng v.v kh i ng MATLAB ta nh n úp vào icon c a hình ánh l nh c a s l nh : Khi ta ánh l nh vào c a s l nh, s c thi hành k t qu hi n lên hình N u ta khơng mu n cho k t qu hi n lên hình sau l nh ta t thêm d u “;” N u l nh dài, không v a m t dịng dịng có th ánh l nh nhi u dòng cu i m i dòng t thêm d u r i xu ng dòng Khi so n th o l nh ta có th dùng phím t t : Ctrl P g i l i l nh tr c ó Ctrl N g i l nh sau Ctrl B lùi l i m t kí t Ctrl F ti n lên m t kí t Ctrl Ctrl R sang ph i m t t Ctrl Crtl L sang ph i m t t home Ctrl A v u dòng end Ctrl E v cu i dịng esc Ctrl U xố dịng del Ctrl D xố kí t t i ch nháy ng backspace Ctrl H xố kí t tr c ch nháy ng Set path: Khi ch y ch ng trình MATLAB th m c khác th m c hi n hi n hành ta ph i i th m c b ng l nh File | Set Path Help Demo: Ph n giúp hi u bi t hàm, l nh c a MATLAB ch y th ch ng trình demo §2 CÁC MA TR N Các tốn t : MATLAB khơng ịi h i ph i khai báo bi n tr MATLAB phân bi t ch hoa ch th ng c dùng Các phép toán : + , , * , / , \ (chia trái) , ^ (m ) , ‘ (chuy n v hay s ph c liên hi p) x = 2+3 a=5 b=2 a/b a\b Các toán t quan h : < , , >= , == , ~= Các toán t logic : & , | (or) , ~ (not) Các h ng : pi 3.14159265 i s o j t ng t i eps sai s 52 realmin s th c nh nh t 1022 realmax s th c l n nh t 21023 inf vô l n NaN Not a number Các ma tr n: a Nh p ma tr n: Ma tr n m t m ng s li u có m hàng n c t Tr ng h p ma tr n ch có m t ph n t (ma tr n 1) ta có m t s Ma tr n ch có m t c t c g i m t vect Ta có th nh p ma tr n vào MATLAB b ng nhi u cách: nh p m t danh sách ph n t t bàn phím n p ma tr n t file s li u t o ma tr n nh hàm có s n MATLAB t o ma tr n nh hàm t t o Khi nh p ma tr n t bàn phím ta ph i tuân theo quy nh sau : ng n cách ph n t c a ma tr n b ng d u “,” hay d u tr ng dùng d u “;” k t thúc m t hàng bao ph n t c a ma tr n b ng c p d u ngo c vng [ ] Ví d : Ta nh p m t ma tr n A = [ 16 13 ; 10 11 ; 12 ; 15 14 1] Bây gi ta ánh l nh: sum(A) ans = 34 34 34 34 ngh a ã l y t ng c t MATLAB c vi t vi c v i c t Khi ta không ch bi n ch a k t qu MATLAB dùng bi n m c nh ans, vi t t t c a answer Mu n l y t ng c a hàng ta c n chuy n v ma tr n b ng cách ánh vào l nh: A’ ans = 16 10 15 11 14 13 12 ây chuy n v c a ma tr n A Ma tr n a = [] ma tr n r ng b Ch s : Ph n t hàng i c t j c a ma tr n có kí hi u A(i,j) Tuy nhiên ta c ng có th tham chi u t i ph n t c a m ng nh m t ch s , ví d A(k) Cách th ng dùng tham chi u vec t hàng hay c t Trong tr ng h p ma tr n y c xem ma tr n m t c t dài t o t c t c a ma tr n ban u Nh v y vi t A(8) có ngh a tham chi u ph n t A(4, 2) c Toán t “:” : Toán t “:” m t toán t quan tr ng c a MATLAB Nó xu t hi n nhi u d ng khác Bi u th c 1:10 m t vec t hàng ch a 10 s nguyên t n 10 ans = 10 100: 7:50 t o m t dãy s t 100 n 51, gi m m i l n ans = 100 93 86 79 72 65 58 51 0: pi/4: pi t o m t dãy s t n pi, cách u pi/4 ans = 0.7854 1.5708 2.3562 3.1416 Các bi u th c ch s tham chi u t i m t ph n c a ma tr n Vi t A(1:k,j) tham chi u n k ph n t u tiên c a c t j Ngồi tốn t “:” tham chi u t i t t c ph n t c a m t hàng hay m t c t A(:,3) ans = 11 14 A(3, :) ans = 12 Vi t B = A(:, [1 4]) ta t o c ma tr n B t ma tr n A b ng cách i th t c t t [1 4] thành [ ] B= 16 13 11 10 12 14 15 d T o ma tr n b ng hàm có s n: MATLAB cung c p m t s hàm ma tr n c b n: zeros t o ma tr n mà ph n t u zeros z = zeros(2, 4) z= 0 0 0 0 ones t o ma tr n mà ph n t x = ones(2, 3) x= 1 1 1 t o u y = 5*ones(2, 2) y= 5 5 rand t o ma tr n mà ph n t ng u nhiên phân b u d = rand(4, 4) d= 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 randn t o ma tr n mà ph n t ng u nhiên phân b tr c giao e = randn(3, 3) e= 0.4326 0.2877 1.1892 1.6656 1.1465 0.0376 0.1253 1.1909 0.3273 magic(n) t o ma tr n c p n g m s nguyên t n n2 v i t ng hàng b ng t ng c t.n ph i l n h n hay b ng pascal(n) t o ma tr n xác nh d ng mà ph n t l y t tam giác Pascal pascal(4) ans = 1 1 10 10 20 eye(n) t o ma tr n eye(3) ans = 0 0 eye(m,n) t o ma tr n eye(3,4) ans = nv n v m rông 0 0 0 0 e L nh load: L nh load dùng c m t file d li u Vì v y ta có th t o m t file ch a ma tr n n p vào Ví d có file mtran.dat ch a m t ma tr n ta n p ma tr n nh sau: load mtran.dat Khi dùng m t trình so n th o v n b n t o ma tr n c n ý : - file ch a ma tr n m t b ng hình ch nh t - m i hàng vi t m t dòng - s ph n t hàng ph i b ng - ph n t ph i cách b ng d u tr ng f M file: M file m t file text ch a mã c a MATLAB t om t ma tr n ta vi t m t m file cho MATLAB c file Ví d ta t o file ct1_1.m nh sau A=[ 3 4 ] n p vào MATLAB b ng cách ánh l nh: ct1_1 g L p ghép: Ta có th l p ghép (concatenation) ma tr n có s n thành m t ma tr n m i Ví d : a = ones(3, 3) a= 1 1 1 1 b = 5*ones(3, 3) b= 5 5 5 5 c = [a+2; b] c= 3 3 3 3 5 5 5 5 h Xoá hàng c t: Ta có th xố hàng c t t ma tr n b ng dùng d u [] Ví d : b= 5 5 5 5 xoá c t th ta vi t: b(:, 2) = [] b= 5 5 5 Vi t x(1:2:5) = [] ngh a ta xoá ph n t b t cách r i s p x p l i ma tr n ut n ph n t th Các l nh x lí ma tr n: C ng : X= A + B Tr : X= A B Nhân : X= A * B : X.*A nhân ph n t t ng ng v i Chia : X = A/B lúc ó X*B = A : X = A\B lúc ó A*X = B : X=A./B chia ph n t t ng ng v i Lu th a : X = A^2 : X = A.^2 Ngh ch o : X = inv(A) nh th c : d = det(A) §3 L P TRÌNH TRONG MATLAB Các phát bi u i u ki n if, else, elseif: Cú pháp c a if: if end N u cho k t qu úng ph n l nh thân c a if c th c hi n Các phát bi u else leseif c ng t ng t Ví d : Ta xét ch ng trình ct1_2 m ốn tu i nh sau: disp(‘Xin chao! Han hanh duoc lam quen’); x = fix(30*rand); disp(‘Tuoi toi khoang 30’); gu = input(‘Xin nhap tuoi cua ban: ‘); if gu < x disp(‘Ban tre hon toi’); elseif gu > x disp(‘Ban lon hon toi’); else disp(‘Ban bang tuoi toi’); end switch: Cú pháp c a switch nh sau : switch case n1 : case n2 : case nn : otherwise : end While: vịng l p while dùng khơng bi t tr c s l n l p Cú pháp c a nh sau : while end Ví d : Xét ch ng trình in chuoi “Xin chao” lên mà hình v i s l n nh p t bàn phím (ct1_3.m) nh sau: disp( xin chao ); gu = input( Nhap so lan in: ); i = 0; while i~=gu disp([ Xin chao i]); i = i+1 end For: vòng l p for dùng bi t tr c s l n l p Cú pháp nh sau : for = : : Ví d : Xây d ng ch ng trình ốn s (ct1_4.m) x = fix(100*rand); n = 7; t = 1; for k = 1:7 num = int2str(n); disp([ Ban co quyen du doan ,num, lan ]); disp( So can doan nam khoang 100 ); gu = input( Nhap so ma ban doan: ); if gu < x disp( Ban doan nho hon ); elseif gu>x disp( So ban doan lon hon ); else disp( Ban da doan dung.Xin chuc mung ); t = 0; break; end n = n 1; end if t > disp( Ban khong doan roi ); numx = int2str(x); disp([ Do la so: ,numx]); end Break: phát bi u break k t thúc vịng l p for hay while mà khơng quan tâm n i u ki n k t thúc vòng l p ã tho mãn hay ch a §4 CÁC FILE VÀ HÀM Script file: K ch b n M file n gi n nh t, khơng có i s Nó r t có ích thi hành m t lo t l nh MATLAB theo m t trình t nh t nh Ta xét ví d hàm fibno t o s Fibonnaci f = [1 1]; i = 1; while(f(i)+f(i+1)) tam giác sang ph i h p ng giác Ki u ánh d u i m ch th p hình vng i m tam giác h ng xu ng tam giác sang trái l c giác 15 Ví d (l u ct1_9.m): x = pi : pi/10 : pi; y = tan(sin(x)) sin(tan(x)); plot(x,y, rs’, LineWidth ,2, MarkerEdgeColor , k , MarkerFaceColor , g , MarkerSize ,10) s v ng cong y = f(x) có c t sau : ng v ng t nét( ) kh i ánh d u hình vng (s), ng v màu (r) ng v r ng point c nh c a kh i ánh màu en kh i ánh d u màu green kích th c kh i ánh d u 10 point Thêm ng v vào th ã có: làm i u ta dùng l nh hold Khi ta ánh l nh hold on MATLAB khơng xố th ang có Nó thêm s li u vào th m i N u ph m vi giá tr c a th m i v t giá tr c a tr c to c s nh l i t l xích Ch v i m s li u: v i m ánh d u mà không n i chúng l i v i ta dùng c t nói r ng khơng có ng n i gi a i m ta g i hàm plot ch v i c t màu i m ánh d u Ví d : x = pi : pi/10 : pi; y = tan(sin(x)) sin(tan(x)); plot(x,y, s , MarkerEdgeColor , k ) (l u ct1_10.m) V i m ng: v c i m ánh d u ng n i gi a c n mô t ki u ng ki u i m Ví d (l u ct1_11.m): x = 0:pi/15:4*pi; y = exp(2*sin(x)); plot(x,y, r ,x,y, ok ) v ng cong y = f(x) ng n i li n, màu i m ánh d u ch o có màu en V v i hai tr c y: L nh plotyy cho phép t o m t th có hai tr c y Ta c ng 16 có th dùng plotyy cho giá tr hai tr c y có ki u khác nh m ti n so sánh Ví d : t = 0:900; A = 1000; b = 0.005; a = 0.005; z2 = sin(b*t); z1 = A*exp( a*t); [haxes, hline1, hline2] = plotyy(t,z1,t,z2, semilogy , plot ); (l u ct1_12.m) V ng cong v i s li u D: N u x,y,z vec t có s v ng cong 3D Ví d : t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t) axis square; grid on (l u ct1_13.m) dài plot3 10 t thông s cho tr c: Khi ta t o m t hình v , MATLAB t ng ch n gi i h n tr c to kho ng cách ánh d u d a s li u dùng v Tuy nhiên ta có th mơ t l i ph m vi giá tr tr c kho ng cách ánh d u theo ý riêng Ta có th dùng l nh sau: axis t l i giá tr tr c to axes t o m t tr c to m i v i c tính c mô t get set cho phép xác nh t thu c tính c a tr c to ang có gca tr v tr c to c a Gi i h n c a tr c chia v ch tr c: MATLAB ch n gi i h n tr c to kho ng cách ánh d u d a s li u dùng v Dùng l nh axis có th t l i gi i h n Cú pháp c a l nh: axis[ xmin , xmax , ymin , ymax] Ví d : x = 0:0.025:pi/2; plot(x,tan(x), ro ) 17 axis([0 pi/2 5]) (l u ct1_14.m) MATLAB chia v ch tr c d a ph m vi d li u chia u Ta có th mô t cách chia nh thông s xtick ytick b ng m t vec t t ng d n Ví d : x = pi:.1:pi; y = sin(x); plot(x,y) set(gca, xtick , pi:pi/2:p); set(gca, xticklabel ,{ pi , pi/2 , , pi/2 , pi }) (l u ct1_15.m) Ghi nhãn lên tr c to : MATLAB cung c p l nh ghi nhãn lên ho g m : title thêm nhãn vào ho xlabel thêm nhãn vào tr c x ylabel thêm nhãn vào tr c y zlabel thêm nhãn vào tr c z legend thêm gi i vào th text hi n th chu i v n b n v trí nh t nh gtext t v n b n lên ho nh chu t \bf bold font \it italics font \sl oblique font (ch nghiêng) \rm normal font Các kí t c bi t xem String properties Ta dùng l nh xlabel , ylabel , zlabel thêm nhãn vào tr c to Ví d : x = pi:.1:pi; y = sin(x); plot(x,y) xlabel( t = to 2\pi , Fontsize ,16) ylabel( sin(t) , Fontsize ,16) title( \it{Gia tri cua sin tu zero n pi} , Fontsize ,16) (l u ct1_16.m) Thêm v n b n vào ho : Ta có th thêm v n b n vào b t kì ch 18 hình v nh hàm text Ví d : text(3*pi/4,sin(3*pi/4), \leftarrowsin(t)=0.707 , FontSize ,12) 10 nh v v n b n hình v : Ta có th s d ng i t ng v n b n ghi tr c v trí b t kì MATLAB nh v v n b n theo n v d li u tr c Ví d v hàm y = Ae t v i A = 0.25 , t = n 900 = 0.005 ta vi t : Ví d (l u ct1_17.m) : t = 0:900; plot(t,0.25*exp( 0.005*t)) thêm ghi t i i m t = 300 ta vi t : text(300,.25*exp( 005*300), ’\bullet\leftarrow\fontname{times}0.25{\ite}^( 0.005{\itt}} at, {\itt}=300’, FontSize’,14) Tham s HorizontalAlignment VerticalAlignment nh v v n b n so v i to x, y, z ã cho ho c bi t: a Kh i vùng: ho kh i vùng bi u di n s li u vec t tr n MATLAB cung c p hàm ho kh i vùng : bar hi n th c t c a ma tr n m*n nh m nhóm, m có n bar barh hi n th c t c a ma tr n m*n nh m nhóm, m có n bar n m ngang bar3 hi n th c t c a ma tr n m*n nh m nhóm, m có n bar d ng 3D bar3h hi n th c t c a ma tr n m*n nh m nhóm, m có n bar d ng 3D n m ngang M c nh, m i ph n t c a ma tr n c bi u di n b ng m t bar Ví d : y = [5 5 5 8]; bar(y) (l u ct_18.m) Sau ó nh p l nh bar3(y) ta có th 3D 11 hay ma i nhóm i nhóm i nhóm i nhóm 19 b Mơ t d li u tr c: Ta dùng hàm xlabel ylabel mô t d li u tr c Ví d : nhdo = [29 23 27 25 20 23 23 27]; = 0:5:35; bar(ngay,nhdo) xlabel( ) ylabel( Nhiet (^{o}C) ) (l u ct1_19.m) M c nh,ph m vi giá tr c a tr c y t n 30 xem nhi t kho ng t 15 n 30 ta thay i ph m vi giá tr c a tr c y set(gca, YLim ,[15 30], Layer , top ) th , ph m vi giá tr c a tr c y ã thay i c X p ch ng th : Ta có th x p ch ng s li u th b ng cách t o m t tr c khác m t v trí nh v y ta có m t tr c y c l p v i b s li u khác Ví d : Kh o sát nh p sinh h c liên quan n m t trichloetylene(TCE) cho s li u: TCE = [515 420 370 250 135 120 60 20]; nhdo = [29 23 27 25 20 23 23 27]; = 0:5:35; bar(ngay,nhdo) xlabel( Ngay ) ylabel( Nhiet (^{o}C) ) x p ch ng m t s li u lên m t th trên, có tr c th v trí nh tr c th nh t ta vi t : h1 = gca; t o tr c th v trí tr c th nh t tr c nh t v b s li u th h2 = axes( Position ,get(h1, Position )); plot(days,TCE, LineWidth ,3) tr c th không gây tr ng i cho tr c th nh t ta vi t : set(h2, YAxisLocation , right , Color , none , XTickLabel ,[]) set(h2, XLim ,get(h1, XLim ), Layer , top ) ghi lên th ta vi t: text(11,380, Mat , Rotation , 55, FontSize ,16) ylabel( TCE Mat (PPM) ) title( Xep chong thi , FontSize ,16) 20 (l u ct1_20.m) d ho vùng: Hàm area hi n th ng cong t o t m t vec t hay t m t c t c a ma tr n Nó v giá tr c a m t c t c a ma tr n thành m t ng cong riêng tô y vùng không gian gi a ng cong tr c x Ví d (l u ct1_21.m): Y = [5 837 968 555 3]; area(Y) hi n th th có vùng, m i vùng m t c t cao c a m i th vùng t ng ph n t m t hàng M i ng cong sau s d ng ng cong tr c làm c s hi n th ng chia l i ta dùng l nh: set(gca, Layer , top ) set(gca, XTick ,1:5) grid on f th pie : th pie hi n th theo t l ph n tr m c a m t ph n t c a m t vec t hay m t ma tr n so v i t ng ph n t pie pie3 t o th 2D 3D Ví d (l u ct1_22.m): X = [19.3 22.1 51.6; 34.2 70.3 82.4; 61.4 82.9 90.8; 50.5 54.9 59.1; 29.4 36.3 47.0]; x = sum(X); explode = zeros(size(x)); [c,offset] = max(x); explode(offset) = 1; h = pie(x,explode) Khi t ng ph n t i s th nh t b ng hay l n h n 1, pie pie3 chu n hoá giá tr Nh v y cho vec t x, m i ph n có di n tích xi / sum( xi ) v i xi m t ph n t c a x Giá tr c chu n hố mơ t ph n ngun c a m i vùng Khi t ng ph n t i s th nh t nh h n 1, pie pie3 khơng chu n hố ph n t c a vec t x Chúng v m t ph n pie Ví d : 21 x = [.19 22 41]; pie(x) g Làm hình chuy n ng: Ta có th t o hình chuy n ng b ng cách t o l u nhi u hình khác l n l t hi n th chúng v xoá liên t c m t i t ng hình,m i l n v l i có s thay i V i cách th nh t ta th c hi n hình chuy n ng qua b c: dùng hàm moviein dành b nh cho m t ma tr n l n nh m l u khung hình dùng hàm getframes t o khung hình dùng hàm movie hi n th khung hình Sau ây ví d s d ng movie quan sát hàm fft(eye(n)).Ta t o hàm ct1_23.m nh sau : axis equal M = moviein(16,gcf); set(gca, NextPlot , replacechildren ) h = uicontrol( style , slider , position ,[100 10 500 20], Min ,1, Max ,16) for j = 1:16 plot(fft(eye(j + 16))) set(h, Value ,j) M(:,j) = getframe(gcf); end clf; axes( Position ,[0 1]); movie(M,30) B c u tiên t o hình nh chuy n ng kh i gán ma tr n Tuy nhiên tr c g i hàm moviein, ta c n t o tr c to có kích th c v i kích th c mà ta mu n hi n th hình Do ví d ta hi n th s li u cách u vòng tròn n v nên ta dùng l nh axis equal xác nh t l tr c Hàm moviein t o ma tr n l n ch a 16 khung hình Phát bi u : set(gca, NextPlot , replacechildren ) ng n hàm plot a t l tr c v axis normal m i c g i Hàm getframe không i s tr l i i m nh c a tr c hi n hành hình hi n có M i khung hình g m s li u m t vec t c t Hàm getframe(gcf) ch p toàn b ph n c a m t c a s hi n hành Sau t o hình nh ta có th ch y chúng m t s l n nh t nh ví d 30 l n nh hàm movie(M,30) 22 M t ph ng pháp n a t o hình chuy n ng v xố, ngh a v m t i t ng ho r i thay i v trí c a b ng cách thay i to x,y z m t l ng nh nh m t vòng l p Ta có th t o hi u ng khác nh cách xố hình khác Chúng g m: none MATLAB khơng xố i t ng di chuy n background MATLAB xoá i t ng b ng cách v có màu n n xor MATLAB ch xố i t ng Ví d : Ta t o M file có tên ct1_24.m nh sau : A = [ 8/3 0; 10 10; 28 ]; y = [35 10 7] ; h = 0.01; p = plot3(y(1),y(2),y(3), , EraseMode , none , MarkerSize ,5); % dat EraseMode ve none axis([0 50 25 25 25 25]) hold on for i = 1:4000 A(1,3) = y(2); A(3,1) = y(2); ydot = A*y; y = y + h*ydot; set(p, XData ,y(1), YData ,y(2), ZData ,y(3)) % thay doi toa drawnow i = i + 1; end ho 3D: a.Các l nh c b n: L nh mesh surf t o m t 3D t ma tr n s li u G i ma tr n s li u z mà m i ph n t c a z(i,j) xác nh tung c a m t mesh(z) t o m t l i có màu th hi n m t z surf(z) t o m t m t có màu z b th hàm hai bi n: B c th nh t th hi n hàm bi n z=f(x,y) t o ma tr n x y ch a to mi n xác nh c a hàm Hàm meshgrid s bi n i vùng xác nh b i vec t x y thành ma tr n x y Sau ó ta dùng ma tr n ánh giá hàm Ví d : Ta kh o sát hàm sin(r)/r tính hàm kho ng theo x y ta ch c n chuy n m t vec t i s cho meshgrid : 12 23 [x,y] = meshgrid( 8:.5:8); r = sqrt(x.^2 + y.^2) + 0.005; ma tr n r ch a kho ng cách t tâm c a ma tr n Ti p theo ta dùng hàm mesh v hàm z = sin(r)./r; mesh(z) (l u ct1_25.m) c th ng ng m c: Các hàm contour t o, hi n th ghi ng ng m c c a m t hay nhi u ma tr n Chúng g m: clabel t o nhãn s d ng ma tr n contour hi n th nhãn contour hi n th ng ng m c t o b i m t giá tr cho tr c c a ma tr n Z contour3 hi n th m t ng m c t o b i m t giá tr cho tr c c a ma tr n Z contourf hi n th th contour 2D tô màu vùng gi a ng contourc hàm c p th p tính ma tr n contour Hàm meshc hi n th contour l i surfc hi n th m t contour Ví d : [X,Y,Z] = peaks; contour(X,Y,Z,20) M i contour có m t giá tr g n v i Hàm clabel dùng giá tr hi n th nhãn ng ng m c 2D Ma tr n contour ch a giá tr clabel dùng cho ng contour 2D Ma tr n c xác nh b i contour,contour3 contourf Ví d : hi n th 10 ng ng m c c a hàm peak ta vi t : Z = peaks; [C,h] = contour(Z,10); clabel(C,h) title({ Cac contour co nhan , clabel(C,h) }) (l u ct1_26.m) Hàm contourf hi n th th ng ng m c m t m t ph ng tơ màu vùng cịn l i gi a ng ng m c ki m sốt màu tơ ta dùng hàm caxis Ví d (l u ct1_27.m): Z = peaks; [C,h] = contourf(Z,10); caxis([ 20 20]) title({ Contour co to mau , contourf(Z,10) }) 24 Các hàm contour(z,n) contour(z,v) cho phép ta ch rõ s l ng m c contour hay m t m c contour c n v ó v i z ma tr n s li u, n s ng contour v vec t m c contour MATLAB không phân bi t gi a i l ng vec t m t ph n t hay i l ng vô h ng Nh v y n u v vec t m t ph n t mô t m t contour n m t m c hàm contour s coi s l ng ng contour ch khơng ph i m c contour Nh v y,contour(z,v) c ng nh contour(z,n) hi n th m t ng ng m c ta c n cho v m t vec t có ph n t v i c hai ph n t b ng m c mong mu n.V í d t o m t ng ng m c 3D c a hàm peaks Ví d (l u ct1_28.m): xrange = 3:.125:3; yrange = xrange; [X,Y] = meshgrid(xrange,yrange); Z = peaks(X,Y); contour3(X,Y,Z) hi n th m t m c Z = 1, ta cho v [1 1] v = [1 1] contour3(X,Y,Z,v) Hàm ginput cho phép ta dùng chu t hay phím m i tên ch n i m v Nó tr v to c a v trí tr Ví d sau s minh ho dùng hàm ginput hàm spline t o ng cong n i suy hai bi n Ví d : Ta t o m t M file có tên ct1_29.m nh sau : disp( Chuot phai tro cac diem tren duong ve ) disp( Chuot trai tro diem cuoi cua duong ve ) axis([0 10 10]) hold on x = []; y =[]; n = 0; but = 1; while but = =1 [xi,yi,but] = ginput(1); plot(xi,yi, go ) n = n +1; x(n,1) = xi; y(n,1) = yi; end 25 t = 1:n; ts = 1:0.1:n; xs = spline(t,x,ts); ys = spline(t,y,ts); plot(xs,ys, c ); hold off 13 V vect : Có nhi u hàm MATLAB dùng hi n th vec t có h ng vec t v n t c Ta nh ngh a m t vec t bàng cách dùng m t hay i s Các i s mô t thành ph n x thành ph n y c a vec t N u ta dùng i s i s th nh t s mô t thành ph n x i s th mô t thành ph n y N u ta ch dùng m t i s MATLAB x lí nh m t s ph c, ph n th c thành ph n x ph n o thành ph n y Các hàm v vec t g m: compass v véc t b t u t g c to c a h to c c feather v vec t b t u t m t ng th ng quiver v vec t 2D có thành ph n (u, v) quiver3 v vec t 3D có thành ph n (u, v, w) a Hàm compass: Ta xét ví d v h ng t c gió Các vec t xác nh h ng (góc tính b ng ) t c gió (km/h) là: hg = [45 90 90 45 360 335 360 270 335 270 335 335]; td = [6 9 10 14 12]; Ta bi n i h ng gió thành radian tr c bi n i thành to vng góc hg1 = hg * pi/180; [x,y] = pol2cart(hg1,td); compass(x,y) t o ghi th : gc = { Huong gio suc gio tai san bay Da Nang ) text(–28,15,gc) (l u ct1_30.m) b Hàm feather: Hàm feather hi n th vec t b t u t m t ng 0 th ng song song v i tr c x Ví d t o vec t có góc t 90 n0 dài ta có: theta = 90:–10:0; r = ones(size(theta)); 26 tr c v , chuy n s li u sang to vng góc t ng l n thành r d nhìn(l u c1_31.m): [u,v] = pol2cart(theta*pi/180,r*10); feather(u,v) axis equal N u i s s ph c z feather coi ph n th c x ph n o y (l u ct1_32.m): t = 0:0.3:10; s = 0.05 + i; Z = exp(–s*t); feather(Z) c Hàm quiver: Hàm quiver hi n th vec t i m ã cho m t ph ng Các vec t c xác nh b ng thành ph n x y Ví d t o 10 contour c a hàm peaks ta vi t(l u ct1_33.m): n = –2.0:.2:2.0; [X,Y,Z] = peaks(n); contour(X,Y,Z,10) Bây gi dùng hàm gradient t o thành ph n c a vec t dùng làm i s cho quiver: [U,V] = gradient(Z,.2); t hold on thêm ng contour: hold on quiver(X,Y,U,V) hold off d Hàm quiver3: Hàm quiver3 hi n th vec t có thành ph n (u,v,w) t i i m (x, y, z) Ví d ta bi u di n qu oc am tv t c ném i theo t Ph ng trình c a chuy n ng là: at z( t) v t Tr c h t ta gán v n t c ban u gia t c a: v0 = 10; % Van toc ban dau a = –32; % gia toc Ti p theo tính z t i th i i m: t = 0:.1:1; z = vz*t + 1/2*a*t.^2; Tính v trí theo h ng x y: vx = 2; 27 x = vx*t; vy = 3; y = vy*t; Tính thành ph n c a vec t v n t c hi n th b ng dùng quiver3: u = gradient(x); v = gradient(y); w = gradient(z); scale = 0; quiver3(x,y,z,u,v,w,scale) axis square (l u ct1_34.m) 28 ... +1; x(n,1) = xi; y(n,1) = yi; end 25 t = 1:n; ts = 1:0 .1:n; xs = spline(t,x,ts); ys = spline(t,y,ts); plot(xs,ys, c ); hold off 13 V vect : Có nhi u hàm MATLAB dùng hi n th vec t có h ng vec t... Thân hàm ch a mã MATLAB Các l i gi i thích dùng cho ch ng trình sáng rõ Nó c t sau d u % C n ý tên hàm ph i b t u b ng kí t tên v i file ch a hàm T c a s MATLAB ta ánh l nh: z = 1:9 9; tb(z) Ghi... o hi u ng khác nh cách xố hình khác Chúng g m: none MATLAB khơng xố i t ng di chuy n background MATLAB xoá i t ng b ng cách v có màu n n xor MATLAB ch xố i t ng Ví d : Ta t o M file có tên ct1_24.m