CHNG1:MATLABCBN
§1.KHIĐNGMATLAB
1.KhiđngMATLAB:MATLAB(Matrixlaboratory)làphnmmdùngđ
giimtlotcácbàitoánkĩ thut,đcbitlàcácbàitoánliênquanđnma
trn. MATLAB cung cp các toolboxes,
tc các hàm m rng môi trng
MATLABđgiiquytcácvnđđcbitnhxlítínhius,hthngđiu
khin,mngneuron,fuzzylogic,môphngv.v.
ĐkhiđngMATLABta
nhnđúpvàoiconcanótrênmànhình.
2.Đánhlnhtrongcaslnh:Khitađánhlnhvàocaslnh,nósđc
thihànhngayvàktquhinlênmànhình.Nu
takhôngmunchoktqu
hinlênmànhìnhthìsaulnhtađtthêmdu“;”.Nulnhquádài,không
vamtdòngdòngcóthđánhlnhtrênnhiudòngvàcuimi
dòngđt
thêmdu...rixungdòng.Khisontholnhtacóthdùngcácphímtt:
↑CtrlPgililnhtrcđó
↓CtrlN gilnhsau
←CtrlB
lùilimtkít
→CtrlFtinlênmtkít
Ctrl→ CtrlR sangphimtt
Ctrl← CrtlLsangphimtt
home CtrlA vđudòng
end CtrlEvcuidòng
escCtrlU xoádòng
delCtrlD xoákíttichconnháyđng
backspace CtrlH xoákíttrcchconnháyđng
3.Setpath:KhichycácchngtrìnhMATLABcácthmckhácthmc
hin
hinhànhtaphiđithmcbnglnhFile|SetPath...
4. Help và Demo: Phn nay giúp chúng ta hiu bit các hàm, các lnh ca
MATLABvàchythcácchngtrìnhdemo
§2.CÁCMATRN
1.Cáctoán t: MATLAB khôngđòi hi phi khai báo bin trc khi dùng.
MATLABphânbitchhoavàchthng.
1
Cácphéptoán:
+,,*,/,\(chiatrái),^(mũ),‘(chuynvhaysphcliênhip).
x=2+3
a=5
b=2
a/b
a\b
Cáctoántquanh:
<
,<=,>,>=,==,~=
Cáctoántlogic:
&,|(or),~(not)
Cáchng:
pi3.14159265
iso
jtngti
eps sais2
52
realmin sthcnhnht2
1022
realmax sthclnnht2
1023
infvôcùngln
NaN Notanumber
2.Cácmatrn:
a.Nhpmatrn:Ma trnlàmtmngcácsliucómhàngvànct.
Trnghpmatrnch
cómtphnt(matrn11)tacómts.Matrnch
cómtctđcgilàmtvect.TacóthnhpmatrnvàoMATLABbng
nhiucách:
•nhpmtdanhsáchcácphnttbànphím
•npmatrntfilesliu
•tomatrnnhcáchàmcósntrongMATLAB
•tomatrnnhhàmtto
Khinhpmatrntbànphímtaphituântheocácquyđnhsau:
•ngăncáchcácphntcamatrnbngdu“,”haydutrng
•dùngdu“;”đktthúcmthàng
•baocácphntcamatrnbngcpdungocvuông[]
Víd:Tanhpmtmatrn
A=[163213;510118;96712;
415141]
Bâygitađánhlnh:
2
sum(A)
ans=
34343434
nghĩalànóđãlytngcácctvìMATLABđcvitđlàvicvicácct.Khi
takhôngchbinchaktquthìMATLABdùngbinmc
đnhlàans,vit
ttcaanswer.
Munlytngcacáchàngtacnchuynvmatrn bngcáchđánh
vàolnh:
A’
ans=
16594
310615
211714
138121
vàđâylàchuynvcamatrnA.
Matrna=[]làmatrnrng
b.Chs:Phnthàngictjcamatrn
cókíhiulàA(i,j).Tuynhiên
tacũngcóth thamchiu tiphntcamngnhmtchs,vídA(k).
Cáchnàythngdùngđthamchiuvecthànghayct.Trongtrng
hp
matrnđyđthìnóđcxemlàmatrnmtctdàitotcácctcama
trnbanđu.NhvyvitA(8)cónghĩalàthamchiuphntA(4,2).
c.Toánt“:”:Toánt“:”làmttoántquantrngcaMATLAB.Nó
xuthinnhiudngkhácnhau.Biuthc
1:10
làmtvecthàngcha10snguyênt1đn
10
ans=
12345678910
100:7:50
tomtdãyst100đn51,gim7miln
ans=
10093867972655851
0:pi/4:pi
tomt
dãyst0đnpi,cáchđunhaupi/4
ans=
00.78541.57082.35623.1416
Cácbiuthcchsthamchiutimtphncamatrn.VitA(1:k,j)là
3
thamchiuđnkphntđutiêncactj.
Ngoàiratoánt“:”thamchiutittccácphntcamthànghaymt
ct.
A(:,3)
ans=
2
11
7
14
và A(3,:)
ans=
96712
Vit B=A(:,[1324])
tatođcmatrnBtmatrnAbngcáchđithtcácctt[1234]
thành[1
324]
B=
162313
511108
97612
414151
d.Tomatrnbnghàmcósn:MATLABcungcpmtshàmđto
cácmatr
ncbn:
zeros toramatrnmàcácphntđulàzeros
z=zeros(2,4)
z=
0000
0000
ones toramatrnmàcácphntđulà1
x
=ones(2,3)
x=
111
111
y=5*ones(2,2)
y=
4
55
55
rand toramatrnmàcácphntngunhiênphânbđu
d=rand(4,4)
d=
0.95010.89130.82140.9218
0.23110.76210.44470.7382
0.60680.45650.61540.1763
0.48600.01850.79190.4057
randnto
ramatrnmàcácphntngunhiênphânbtrcgiao
e=randn(3,3)
e=
0.43260.28771.1892
1.66561.14650.0376
0.12531.19090.3273
magic(n)toramatrncpngmcácsnguyênt1đ
nn
2
vitngcác
hàngbngtngcácct.nphilnhnhaybng3.
pascal(n)toramatrnxácđnhdngmàcácphntlyttamgiác
Pascal.
pascal(4)
ans=
11
11
1234
13610
141020
eye(n)tomatrnđnv
eye(3)
ans=
100
010
001
eye(m,n)tomatrnđnvmrông
eye(3,4)
ans
=
5
1000
0100
0010
e.Lnhload:Lnhloaddùngđđcmtfiledliu.Vìvytacóthto
mtfilechamatrnvànpvào.Ví
dcófilemtran.datchamtmatrnthì
tanpmatrnnàynhsau:
loadmtran.dat
Khidùngmttrìnhsonthovănbnđtomatrncnchúý:
- filechama
trnlàmtbnghìnhchnht
- mihàngvittrênmtdòng
- sphntcáchàngphibngnhau
- cácphntphicáchnhaubngdutrng
f.Mfile:
Mfilelàmtfile text cha các mãcaMATLAB.Đtomt
ma trn ta vit mt mfile và cho MATLABđc file này. Ví d ta to file
ct1_1.mnhsau
A=[
1 23
2
34
3 45]
vànpvàoMATLABbngcáchđánhlnh:
ct1_1
g.Lpghép:Tacóthlpghép(concatenation)cácmatrncósnthành
mtmatrnmi.Víd:
a
=ones(3,3)
a=
111
111
111
b=5*ones(3,3)
b=
555
555
555
c=[a+2;b]
c=
333
333
6
333
555
555
555
h.Xoáhàngvàct:Tacóthxoáhàngvàcttmatrnbngdùngdu
[].
Víd:
b=
555
555
555
Đxoáctth2tavit:
b(:,2)=[]
b=
55
55
55
Vitx(1:2:5)=[]nghĩalàtaxoácácphntbtđutđnphn
tth5và
cách2rispxplimatrn.
3.Cáclnhxlímatrn:
Cng:X=A+B
Tr:X=AB
Nhân :X=A*B
:X.*Anhân
cácphnttngngvinhau
Chia:X=A/BlúcđóX*B=A
:X=A\BlúcđóA*X=B
:X=A./Bchiacácphnttngngvinhau
Lutha :X=A^2
:X=A.^2
Nghchđo :X=inv(A)
Đnhthc :d=det(A)
§3.LPTRÌNHTRONGMATLAB
1.Cácphátbiuđiukinif,else,elseif:
Cúphápcaif:
if<biuthcđi
ukin>
7
<phátbiu>
end
Nu<biu thcđiukin>choktquđúngthìphnlnhtrongthâncaif
đcthchin.
Cácphátbiuelsevàleseifcũngtngt.
Víd
:Taxétchngtrìnhct1_2.mđđoántuinhsau:
disp(‘Xinchao!Hanhanhduoclamquen’);
x=fix(30*rand);
disp(‘Tuoitoitrongkhoang030’);
gu=input(‘Xinnhaptuoicuaban:‘);
ifgu<x
disp(‘
Bantrehontoi’);
elseifgu>x
disp(‘Banlonhontoi’);
else
disp(‘Banbangtuoitoi’);
end
2.switch:Cúphápcaswitchnhsau:
switch<biuthc>
casen1:<lnh1>
casen2
:<lnh2>
...............
casenn:<lnhn>
otherwise:<lnhn+1>
end
3.While:vònglpwhiledùngkhikhôngbittrcslnl
p.Cúphápcanó
nhsau:
while<biuthc>
<phátbiu>
end
Víd:Xétchngtrìnhinrachuoi“Xinchao”lênmàhìnhvislnnhpt
bànphím(ct1_3.m)nhsau:
disp(xin
chao);
gu=input(Nhapsolanin:);
i=0;
8
whilei~=gu
disp([Xinchaoi]);
i=i+1
end
4.For:vònglpfordùngkhibittrcslnlp.Cúphápnhsau:
for<chs>=<giátrđu>:<mctăng>:<giá
trcui>
Víd:Xâydngchngtrìnhđoáns(ct1_4.m)
x=fix(100*rand);
n=7;
t=1;
fork=1:7
num=int2str(n);
disp([Bancoquyendudoan,num,lan]);
disp(Socandoannamtrongkhoang0
100);
gu=input(Nhapsomabandoan:);
ifgu<x
disp(Bandoannhohon);
elseifgu>x
disp(Sobandoanlonhon);
else
disp(Bandadoandung.Xinchucmung);
t=0;
break;
end
n
=n1;
end
ift>0
disp(Bankhongdoanraroi);
numx=int2str(x);
disp([Dolaso:,numx]);
end
5.Break:phátbiubreakđktthúcvònglpforhaywhilemàkhôngquan
tâmđnđiukin
ktthúcvònglpđãthomãnhaycha.
9
§4.CÁCFILEVÀHÀM
1.Scriptfile:KchbnlàMfileđnginnht,khôngcóđis.Nórtcóích
khithihànhmtlotlnhMATLABtheomttrìnhtnhtđnh.Taxét
víd
hàmfibnođtoracácsFibonnaci.
f=[11];
i=1;
while(f(i)+f(i+1))<1000
f(i+2)=f(i)+f(i+1);
i=i+1;
end
plot(f)
Taluđonmãlnhnàyvàomtfiletênlà
ct1_5.m.Đâychínhlàmt
scriptfile.Đthchincácmãchatrongfilect1_5.mtcaslnhtanhp
ct1_5vànhnenter.
2.Filehàm:HàmlàMfilecóchacácđis.Tacó
mtvídvhàm:
functiony=tb(x)
%Tinhtritrungbinhcuacacphantu
[m,n]=size(x);
ifm==1
m=n;
end
y=sum(x)/m;
TvídtrêntathymthàmM
filegmcácphncbnsau:
• Mt dòngđnh nghĩa hàm gm: function y = tb(x) gm t khoá
function,đistrvy,tênhàmtbvàđisvàox.
•Mtdòngh1làdòngtrgiúpđutiên.Vìđâylàdòngvănbnnênnó
phiđtsau%.Nóxuthintanhplnhlookfor<tênhàm>
•Phnvănbntrgiúpđgiúpngidùnghiutácdngcahàm.
•ThânhàmchamãMATLAB
•Cácligiithíchdùngđchochngtrìnhsángrõ.Nóđcđtsau
du%.
Cnchúýlàtênhàmphibtđubngkítvàcùngtênvifilechahàm.
TcasMATLAB
tađánhlnh:
z=1:99;
tb(z)
Ghichú:tênhàmlàtbthìtênfilecũnglàtb.m
10
CácbinkhaibáotrongmthàmcaMATLABlàbinđaphng.Các
hàm khác không nhìn thy và s dngđc bin này. Mun các hàm khác
dùngđcbinnàođócahàmtacnkhai
báonólàglobal.Vídtacngii
hphngtrình:
2122
2111
yyyy
yyyy
β+−=
α−=
&
&
TatoraMfiletênlàct1_6.m
functionyp=lotka(t,y)
globalalphabeta
yp=[y(1)alpha*y(1)*y(2);y(2)+beta*y(1)*y(2)];
vàsauđótdònglnhtanhpcáclnhsau:
globalalphabeta
alpha=0.01;
beta=0.02;
[t,y]=ode23(
‘ct1_6’,[010],[11]);
plot(t,y)
ĐtindngtacóthluđonlnhtrênvàoMfilect1_7.m.
Mtbincóthđnhnghĩalàpersistentđgiátrcanókhôngthayđi
tlnginàysanglngikhác.Cácbinpersistentchcóthkhaibáotrong
hàm.Chúngtntitrongbnhchođnkhihàmbxoáhaythayđi.
3.Điukhinvàovàra:Cáclnhsaudùngđsliuđavàovàra
disp(a) hinthnidungcamngahayvănbn
a=[123];
disp(a)
t=Xinchao;
disp(t)
format điukhinkhuôndngs
Lnh Ktqu Víd
format Default.Sameasshort.
formatshort 5digitscaledfixedpoint 3.1416
formatlong 15digitscaledfixedpoint 3.14159265358979
formatshorte 5digitfloatingpoint 3.1416e+00
formatlonge 15digitfloatingpoint 3.141592653589793e+00
formatshortg Bestof5digitfixedorfloating 3.1416
11