CÁC FILE VÀ HÀM1... Các bi n persistent ch có th khai báo tronghàm.. Same as short... Khi tađánh l nh hold on thì MATLAB không xoá đ th đang có... Ta có th t o ra các hi u ng khác nhau n
Trang 1CH NG 1: MATLAB C B N
§1 KH I Đ NG MATLAB
1 Kh i đ ng MATLAB: MATLAB (Matrix laboratory) là ph n m m dùng đ
gi i m t lo t các bài toán kĩ thu t, đ c bi t là các bài toán liên quan đ n ma
tr n MATLAB cung c p các toolboxes, t c các hàm m r ng môi tr ngMATLAB đ gi i quy t các v n đ đ c bi t nh x lí tín hi u s , h th ng đi ukhi n, m ng neuron, fuzzy logic, mô ph ng v.v
Đ kh i đ ng MATLAB ta nh n đúp vào icon c a nó trên màn hình
2.Đánh l nh trong c a s l nh : Khi ta đánh l nh vào c a s l nh, nó s đ c
thi hành ngay và k t qu hi n lên màn hình N u ta không mu n cho k t qu
hi n lên màn hình thì sau l nh ta đ t thêm d u “;” N u l nh quá dài, không
v a m t dòng dòng có th đánh l nh trên nhi u dòng và cu i m i dòng đ tthêm d u r i xu ng dòng Khi so n th o l nh ta có th dùng các phím t t :
del Ctrl D xoá kí t t i ch con nháy đ ng
backspace Ctrl H xoá kí t tr c ch con nháy đ ng
3 Set path: Khi ch y các ch ng trình MATLAB các 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
4 Help và Demo: Ph n nay giúp chúng ta hi u bi t các hàm, các l nh c a
MATLAB và ch y th các ch ng trình demo
§2 CÁC MA TR N
1 Các toán t : MATLAB không đòi h i ph i khai báo bi n tr c khi dùng.MATLAB phân bi t ch hoa và ch th ng
Trang 3sum(A) ans =
34 34 34 34
nghĩa là nó đã l y t ng các c t vì MATLAB đ c vi t đ là vi c v i các c t Khi
ta không ch bi n ch a k t qu thì MATLAB dùng bi n m c đ nh là ans, vi t
t t c a answer
Mu n l y t ng c a các hàng ta c n chuy n v ma tr n b ng cách đánhvào l nh:
b Ch s : Ph n t hàng i c t j c a ma tr n có kí hi u là 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 này th ng dùng đ tham chi u vec t hàng hay c t Trong tr ng h p
ma tr n đ y đ thì nó đ c xem là ma tr n m t c t dài t o t các c t c a ma
tr n ban đ u Nh v y vi t A(8) có nghĩa là tham chi u ph n t A(4, 2)
c Toán t “:” : Toán t “:” là m t toán t quan tr ng c a MATLAB Nó
Trang 4tham chi uđ n k ph n t đ u tiên c a c t j.
Ngoài ra toán t “:” tham chi u t i t t c các ph n t c a m t hàng hay m t
c t
A(:,3) ans = 2 11 7 14
Trang 5randn t o ra ma tr n mà các ph n t ng u nhiên phân b tr c giao
pascal(n) t o ra ma tr n xác đ nh d ng mà các ph n t l y t tam giácPascal
Trang 61 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 và n p vào Ví d có file mtran.dat ch a m t ma tr n thì
f M file: M file là m t file text ch a các mã c a MATLAB. Đ t o m t
ma tr n ta vi t m t m file và cho MATLAB đ c file này Ví d ta t o file
Trang 8disp(‘Tuoi toi trong khoang 0 30’);
gu = input(‘Xin nhap tuoi cua ban: ‘);
disp( xin chao );
gu = input( Nhap so lan in: );
i = 0;
Trang 9while i~=gu
disp([ Xin chao i]);
i = i+1
end
4 For: vòng l p for dùng khi bi t tr c s l n l p Cú pháp nh sau :
for <ch s > = <giá tr đ u> : <m c tăng> : <giá tr cu i>
disp([ Ban co quyen du doan ,num, lan ]);
disp( So can doan nam trong khoang 0 100 );
gu = input( Nhap so ma ban doan: );
Trang 10§4 CÁC FILE VÀ HÀM
1 Script file: K ch b n là M file đ n gi n nh t, không có đ i s Nó r t có íchkhi thi hành m t lo t l nh MATLAB theo m t trình t nh t đ nh Ta xét ví dhàm fibno đ t o ra các s Fibonnaci
Ta l u đo n mã l nh này vào m t file tên là ct1_5.m Đây chính là m t
script file Đ th c hi n các mã ch a trong file ct1_5.m t c a s l nh ta nh p
T ví d trên ta th y m t hàm M file g m các ph n c b n sau :
• M t dòng đ nh nghĩa hàm g m: function y = tb(x) g m t khoáfunction, đ i s tr v y, tên hàm tb và đ i s vào x
• M t dòng h1 là dòng tr giúpđ u tiên Vì đây là dòng văn b n nên nó
ph i đ t sau % Nó xu t hi n ta nh p l nh lookfor <tên hàm>
• Ph n văn b n tr giúp đ giúp ng i dùng hi u tác d ng c a hàm
Trang 11Các bi n khai báo trong m t hàm c a MATLAB là bi n đ a ph ng Cáchàm khác không nhìn th y và s d ng đ c bi n này Mu n các hàm khácdùng đ c bi n nào đó c a hàm ta c n khai báo nó là global Ví d ta c n gi i
h ph ng trình :
2 1 2
2
2 1 1
1
yyy
y
yyy
y
β+
global alpha beta
yp = [y(1) alpha*y(1)*y(2); y(2) + beta*y(1)*y(2)];
Đ ti n d ng ta có th l u đo n l nh trên vào M file ct1_7.m.
M t bi n có th đ nh nghĩa là persistent đ giá tr c a nó không thay đ i
t l n g i này sang l n g i khác Các bi n persistent ch có th khai báo tronghàm Chúng t n t i trong b nh chođ n khi hàm b xoá hay thay đ i
3 Đi u khi n vào và ra: Các l nh sau dùng đ s li u đ a vào và ra
disp(a) hi n th n i dung c a m ng a hay văn b n
a = [1 2 3];
disp(a)
t = Xin chao ; disp(t)
format đi u khi n khuôn d ng s
format Default Same as short
format short 5 digit scaled fixed point 3.1416
format long 15 digit scaled fixed point 3.14159265358979
format short e 5 digit floating point 3.1416e+00
format long e 15 digit floating point 3.141592653589793e+00format short g Best of 5 digit fixed or floating 3.1416
Trang 12format long g Best of 15 digit fixed or floating 3.14159265358979
format bank Fixed dollars and cents 3.14
format rat Ratio of small integers 355/113
format
compact Suppresses excess line feeds
format loose Adds line feeds
input nh p d li u
x = input( Cho tri cua bien x : )
Cho tri cua bien x :4
Trang 13acoth(x)
asinh(x)
atanh(x)
5 Các phép toán trên hàm toán h c:
a Bi u di n hàm toán h c: MATLAB bi u di n các hàm toán h c b ng
cách dùng các bi u th c đ t trong M file Ví d đ kh o sát hàm :
604.0)9.0x(
101
.0)3.0x(
1)
Trang 14d Tìm đi m zero: Hàm fzero dùng đ tìm đi m zero c a hàm m t bi n.
Ví d đ tìm giá tr không c a hàm lân c n giá tr 0.2 ta vi t :
plot đ h a 2 D v i s li u 2 tr c vô h ng và tuy n tính
plot3 đ h a 3 D v i s li u 2 tr c vô h ng và tuy n tính
loglog đ ho v i các tr c logarit
semilogx đ ho v i tr c x logarit và tr c y tuy n tính
semilogy đ ho v i tr c y logarit và tr c x tuy n tính
plotyy đ ho v i tr c y có nhãn bên trái và bên ph i
2 T o hình v : Hàm plot có các d ng khác nhau ph thu c vào các đ i s đ avào Ví d n u y là m t vec t thì plot(y) t o ra m t đ ng th ng quan h gi acác giá tr c a y và ch s c a nó N u ta có 2 vec t x và y thì plot(x,y) t o ra
Trang 15^ đi m tam giác h ng lên < tam giác sang trái
> tam giác sang ph i h l c giác
p ngũ giác
Trang 165 Thêm đ ng v vào đ th đã có: Đ làm đi u này ta dùng l nh hold Khi ta
đánh l nh hold on thì MATLAB không xoá đ th đang có Nó thêm s li u vào
đ th m i này N u ph m vi giá tr c a đ th m i v t quá các giá tr c a tr c
to đ cũ thì nó s đ nh l i t l xích
6 Ch v các đi m s li u: Đ v các đi m đánh d u mà không n i chúng l i
v i nhau ta dùng đ c t nói r ng không có các đ ng n i gi a các đi m ta g i
hàm plot ch v i đ c t màu và đi m đánh d u
Trang 17có th dùng plotyy đ cho giá tr trên hai tr c y có ki u khác nhau nh m ti n sosánh.
10 Đ t các thông s cho tr c: Khi ta t o m t hình v , MATLAB t đ ng ch n
các gi i h n trên tr c to đ và kho ng cách đánh d u d a trên s li u dùng
đ v Tuy nhiên ta có th mô t l i ph m vi giá tr trên tr c và kho ng cáchđánh d u theo ý riêng Ta có th dùng các l nh sau:
axis đ t l i các giá tr trên tr c to đ
axes t o m t tr c to đ m i v i các đ c tính đ c mô t
get và set cho phép xác đ nh và đ t các thu c tính c a tr c to đ đangcó
a Gi i h n c a tr c và chia v ch trên tr c: MATLAB ch n các gi i h n
trên tr c to đ và kho ng cách đánh d u d a trên s li u dùng đ v Dùng
Trang 18axis([0 pi/2 0 5])
(l u trong ct1_14.m)
MATLAB chia v ch trên tr c d a trên ph m vi d li u và chia đ u Ta có th
mô t cách chia nh thông s xtick và 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 , 0 , pi/2 , pi })
(l u trong ct1_15.m)
8 Ghi nhãn lên các tr c to đ : MATLAB cung c p các 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 chú 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
\it italics font
\sl oblique font (ch nghiêng)
Các kí t đ c bi t xem trong String properties.
Ta dùng các l nh xlabel , ylabel , zlabel đ thêm nhãn vào các tr c to đ
Ví d :
x = pi:.1:pi;
y = sin(x);
plot(x,y)
xlabel( t = 0 to 2\pi , Fontsize ,16)
ylabel( sin(t) , Fontsize ,16)
title( \it{Gia tri cua sin tu zero đ n 2 pi} , Fontsize ,16)
(l u trong ct1_16.m)
9 Thêm văn b n vào đ ho : Ta có th thêm văn b n vào b t kì ch nào trên
Trang 19hì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 trên hình v : Ta có th s d ng đ i t ng văn b n đ ghi
chú các tr c v trí b t kì MATLAB đ nh v văn b n theo đ n v d li u trên
Trang 20b Mô t d li u trên tr c: Ta dùng các hàm xlabel và ylabel đ mô t các
set(gca, YLim ,[15 30], Layer , top )
và trên đ 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 trên đ th thanh b ngcách t o ra m t tr c khác trên cùng m t v trí và nh v y ta có m t tr c y đ c
ylabel( Nhiet do (^{o}C) )
Đ x p ch ng m t s li u lên m t đ th thanh trên, có tr c th 2cùng v trí nh tr c th nh t ta vi t :
h1 = gca;
và t o tr c th 2 v trí tr c th nh t tr c nh t v b s li u th 2
h2 = axes( Position ,get(h1, Position ));
plot(days,TCE, LineWidth ,3)
Đ tr c th 2 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 chú lên đ th ta vi t:
text(11,380, Mat do , Rotation , 55, FontSize ,16)
ylabel( TCE Mat do (PPM) )
title( Xep chong do thi , FontSize ,16)
Trang 21f Đ 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 các ph n t pie và pie3 t o ra đ th2D và 3D
v i xi là m t ph n t c a x Giá tr đ c chu n hoá mô t ph n nguyên c a
m i vùng Khi t ng các ph n t trong đ i s th nh t nh h n 1, pie và pie3không chu n hoá các ph n t c a vec t x Chúng v m t ph n pie
Ví d :
Trang 22set(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);
tr c Hàm moviein t o ra 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 các tr c v axis normal m i khi nó đ c g i Hàm
M i khung hình g m các s li u trong m t vec t c t Hàm getframe(gcf) ch p
toàn b ph n trong c a m t c a s hi n hành Sau khi t o ra 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)
Trang 23M t ph ng pháp n a đ t o hình chuy n đ ng là v và xoá, nghĩa là v m t
đ i t ng đ ho r i thay đ i v trí c a nó b ng cách thay đ i to đ x,y và z
m t l ng nh nh m t vòng l p Ta có th t o ra các hi u ng khác nhau nhcác cách xoá hình khác nhau Chúng g m:
• background MATLAB xoá đ i t ng b ng cách v nó có màu
n n
Ví d : Ta t o ra M file có tên là ct1_24.m nh sau :
Ví d : Ta kh o sát hàm sin(r)/r Đ tính hàm trong kho ng 8 và 8 theo x và y
ta ch c n chuy n m t vec t đ i s cho meshgrid :
Trang 25Các hàm contour(z,n) và contour(z,v) cho phép ta ch rõ s l ng m ccontour hay m t m c contour c n v nào đó v i z là ma tr n s li u, n là s
đ ng contour và v là vec t các 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 là vec t
m t ph n t mô t m t contour đ n m t m c hàm contour s coi nó là s
l ng đ ng contour ch không ph i là 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 là m tvec t có 2 ph n t v i c hai ph n t b ng m c mong mu n.V í d đ t o ra
Hàm ginput cho phép ta dùng chu t hay các phím mũi tên đ ch n các đi m
v Nó tr v to đ c a v trí con tr Ví d sau s minh ho các dùng hàm
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 )
Trang 26quiver v các vec t 2D có các thành ph n (u, v)
quiver3 v các vec t 3D có các thành ph n (u, v, w)
a Hàm compass: Ta xét ví d v h ng và t c đ gió Các vec t xác
b Hàm feather: Hàm feather hi n th các vec t b t đ u t m t đ ng
th ng song song v i tr c x Ví d đ t o ra các vec t có góc t 900 đ n 00 vàcùngđ dài ta có:
theta = 90:–10:0;
r = ones(size(theta));
Trang 27tr c khi v , chuy n các s li u sang to đ vuông góc và tăng đ l n thành r
d Hàm quiver3: Hàm quiver3 hi n th các vec t có các thành ph n
(u,v,w) t i đi m (x, y, z) Ví d ta bi u di n qu đ o c a m t v t đ c ném đitheo t Ph ng trình c a chuy nđ ng là:
2
attv)