Professional Documents
Culture Documents
Matlab Intro
Matlab Intro
Gii thiu
MATLAB l mt b chng trnh phn mm ln dnh cho tnh tan k thut. ta c th dng
MATLAB :
Tnh tan.
Pht trin thut tan.
Thu thp d liu.
M hnh v m phng.
Phn tch d liu.
V th.
Giao din ha.
MATLAB l tn vit tt t MATrix LABoratory. Nh tn ca phn mm cho thy, phn ct li
ca phn mm l d liu c lu di dng array (ma trn) v cc php tnh tan ma trn, gip
vic tnh tan trong MATLAB nhanh v thun tin hn so vi lp trnh trong C hay FORTRAN.
c bit, kh nng tnh tan ca MATLAB c th d dng c m rng thng qua cc b toolbox.
Toolbox l tp hp cc hm MATLAB (M-file) gip gii quyt mt bi tan c th.
MATLAB gm 5 phn chnh:
Development Environment: l mt b cc cng c gip ta s dng cc hm v tp tin ca
MATLAB. N bao gm: MATLAB desktop, Command Window, a command history, an
editor, debugger, browsers for viewing help, the workspace, files, the search path.
MATLAB Mathematical Function Library: tp hp cc hm tan hc nh sum, sine, s hc,
v.v.
MATLAB Language (scritp): ngn ng lp trnh bc cao.
Graphics: cc cng c gip hin th d liu di dng th. Ngai ra n cn cho php xy
dng giao din ha.
MATLAB Application Program Interface (API): b th vin cho php ta s dng cc hc
nng tnh tan ca MATLAB trong chng trnh C hay FORTRAN.
Giao din
Command Window: y l ca s lm vic chnh ca MATLAB. Ti y ta thc hin tan b vic
nhp d liu v xut kt qu tnh tan. Du nhy >> bo hiu chng trnh sn sng cho vic nhp
d liu. Ta kt thc vic nhp d liu bng cch nhn phm Enter. MATLAB s thc thi dng lnh
m ta nhp vo Command Window v tr kt qu trong Command Window.
Command History: Lu li tt c cc lnh m ta nhp vo trong Command Window. Ta c th
xem li tt c cc lnh bng cch dng scroll bar, hay thc hin li lnh bng cch nhp kp ln
dng lnh. Ngai ra ta cn c th cut, paste, delete cc lnh.
Workspace browser: trong MATLAB cc d liu c lu trong bin. Workspace browser lit k
tt c cc bin m ta ang s dng trong MATLAB. N cung cp thng tin v kch thc, loi d
liu. Ta c th truy cp trc tip vo d liu bng cch nhn kp vo bin hin th Array editor.
Launch pad: cho php ngi dng truy cp nhanh vo cc b Toolbox, phn Help.
Editor: dng san tho v debug cc M-file ca MATLAB.
Matlab introduction
1/21
2/21
Matlab introduction
3/21
Matlab introduction
4/21
5/21
6/21
7/21
456
7 8 9];
>> a(:,2)=[]
a=
1 3
4 6
7 9
>>>>a=[ 1 2 3
456
7 8 9];
>> a(1:2,:)=[]
a=
7 8 9
Cc tan t cho ma trn
Structure
thun tin cho vic qun l v s dng, ta c th tp hp nhiu bin li trong mt structure. Mt
structure c tao nh sau:
struct(name_1, value_1,name_2, value_2,)
trong name_* l tn ca field l thnh phn ca mt structure v value_* l gi tr m ta cn gn
cho field.
>> myst=struct(data, [1 2 3], name,John Down)
myst =
data: [1 2 3]
name: 'John Down'
truy cp d liu trong structure ta dng du .
>>myst.data(1)+1
ans =
2
Optimization toolbox
B cng c ti u ha cho php:
Ti thiu phi tuyn khng rng buc (Unconstrained nonlinear minimization)
Ti thiu phi tuyn c rng buc (Constrained nonlinear minimization)
Quy hach tuyn tnh v tan phng (Quadratic and linear programming)
Matlab introduction
8/21
f Tx
st
A x b
Aeq x beq
V d:
min -9x1 -5x2 -6x3 -4x4
st
6x1+3x2+5x3+3x2 9
x3+ x4 1
-x1
+x3
0
-x2
+x4 0
x1,x2,x3,x4 l nh phn
>> f=[-9 ; -5 ; -6 ; -4] ;
>>A=[6 3 5 2 ; 0 0 1 1 ; -1 0 1 0 ; 0 -1 0 1] ;
>>b=[9 ; 1 ;0 ; 0] ;
>>x=bintprog(f,A,b)
x=
1
1
0
0
Hm linprog(f,A,b,Aeq,beq,lb,ub)
Dng gii bi tan quy hach tuyn tnh
min
f Tx
st
A x b
Aeq x beq
lb x ub
V d:
min -5x1 -4x2 -6x3
st
x1 x2 + x3 20
3x1 + 2x2 + 4x3 42
3x1 + 2x2
30
0 x1, 0 x2, 0 x3
>>f=[-5 ; -4 ; -6]
>>A=[1 -1 1 ; 3 2 4 ; 3 2 0] ;
>>b=[20 ; 42 ; 30] ;
>>lb=zeros(3,1) ;
>>x=linprog(f,A,b,[],[],lb)
x=
0.0
15.0
Matlab introduction
9/21
3.0
Hm x = fminbnd(fun,x1,x2)
Tm cc tiu ca hm fun(x) vi x1 x x2
V d:
Tm cc tiu hm 0.5x3-x2-x+exp(0.1x)
>> f1=inline('0.5*x^3-x^2-x+exp(0.1*x)','x')
f1 =
Inline function:
f1(x) = 0.5*x^3-x^2-x+exp(0.1*x)
>> [x,fval]=fminbnd(f1,0, 3)
x=
1.6827
fval =
-0.9487
Hm fiminunc(fun,x0)
Tm cc tiu ca hm a bin fun (x l vector)
V d:
>>f2=inline('2*x(1)^4+x(2)^4-2*x(1)^2-2*x(2)^2+4*sin(x(1)*x(2))','x')
f2 =
Inline function:
f2(x) = 2*x(1)^4+x(2)^4-2*x(1)^2-2*x(2)^2+4*sin(x(1)*x(2))
>> [x,fval]=fminunc(f2,[1 -1])
x=
0.9039 -1.1732
fval =
-4.6476
Hm fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
min hm phi tuyn
fun(x)
st
A x b
Aeq x beq
lb x ub
V d:
min f(x)= -x1*x2*x3
-x1-2*x2-2*x3 0
x1+2*x2+2*x3 72
>> f3=inline('-x(1)*x(2)*x(3)','x')
f3 =
Inline function:
f3(x) = -x(1)*x(2)*x(3)
>> A=[-1 -2 -2; 1 2 2];
>> b=[0; 72];
>> [x,fval]=fimcon(f3,[10;10;10],A,b)
Matlab introduction
10/21
x=
24.0000
12.0000
12.0000
fval =
-3.4560e+003
Statistics toolbox
B cng c vi hn 200 hm h tr tnh tan trong:
Probability Distributions: h tr 20 phn b xc sut khc nhau, cung cp cc hm phn b,
mt , tch ly, nghch o, b to s ngu nhin. Ngai ra n cn cho php xc nh phn
b cho d liu.
Descriptive Statistics: cung cp cc hm cho thng k m t.
Linear Models: h tr one-way, two-way, and n-way analysis of variance (ANOVA),
analysis of covariance (ANOCOVA), hi quy (regression).
Hypothesis Tests: hm cho cc kim nh.
Statistical Plots: h tr v cc th thng k.
Design of Experiments (DOE): h tr vic thit k thc nghim.
Probability Distributions
normpdf(X,MU,SIGMA) tnh gi tr ca hm mt ti X cho phn b Normal c tham s
MU v SIGMA.
R = normrnd(MU,SIGMA,m,n) to mt ma trn R(m,n) cha cc gi tr ngu nhin c phn
b Normal vi tham s MU v SIGMA.
norminv(P,MU,SIGMA) tnh gi tr nghch o ca xc sut p ca hm phn b Normal tch
ly vi tham s MU v SIGMA.
[muhat,sigmahat,muci,sigmaci] = normfit(DATA, alpha) c lng tham MU v SIGMA
vi tin cy100(1 - alpha) % cho d liu DATA theo phn b Normal.
V d:
X l bin ngu nhin nh thc vi n=50, p=0,3. Tm P(X<=17)
>> p=binocdf(17,50,0.3)
p=
0.7822
V d:
Tm tham s =1/ cho d liu c phn b hm s m vi tin cy l 99%
>>data = exprnd(3, 100, 1);
>>[parmhat, parmci] = expfit(data, 0.01)
parmhat =
2.7292
parmci =
2.1384
3.5854
Descriptive Statistics
mean(x) tnh trung bnh cho mi ct d liu trong X.
var(X) tnh phng sai cho mi ct d liu trong X.
prctile(X,p) tnh s phn v p% ca d liu X. p trong khang [0 100]
Matlab introduction
11/21
V d:
>> x=[2 3 4 5];
>> var(x)
ans =
1.6667
Statistical plotting
boxplot(X) to th box- whisker cho mi ct d liu trong X.
normplot(X) v th phn b Normal cho mi ct d liu trong X.
hist(X) v th histogram cho d liu X.
pareto(X) v th Pareto cho d liu X
V d:
>> boxplot(x)
Hnh 4. boxplot
Linear model
p = anova1(X) tnh bng one-way ANOVA so snh trung bnh ca 2 hay nhiu ct d liu
trong ma trn mxn X, trong cc ct cha mu c m quan sat c lp. Hm tr li gi tr p
gi thuyt H0.
p = anova2(X,reps) tnh two-way ANOVA so snh trung bnh ca 2 hay nhiu ct v 2
hay nhiu hng cc quan st trong ma trn X. D liu trong cc ct tng ng vi cc thay
i trong yu t A, d liu trong hng tng ng vi thay i trong yu t B. Nu c hn
mt quan st trong mt t hp ta dng reps.
V d:
>>X = meshgrid(1:5);
>>X = X + normrnd(0,1,5,5)
>>X =
-0.0741 2.7782 2.2129
1.2018 1.9937 3.7520
1.7629 2.5245 2.8331
-0.2882 3.3643 2.1838
Matlab introduction
4.0802 5.7902
3.0627 5.1053
4.6357 4.8414
5.6820 5.8709
12/21
0.0470 2.4820
>>p = anova1(X)
p=
4.0889e-007
5.0941
4.5936
4.8052
V d:
C 2 yu t A v B. A c 3 cp v B c 2 cp. D liu A c xp theo ct v B theo hng.
>>pop =[ 5.5000 4.5000 3.5000
5.5000 4.5000 4.0000
6.0000 4.0000 3.0000
6.5000 5.0000 4.0000
7.0000 5.5000 5.0000
7.0000 5.0000 4.5000];
>> p = anova2(pop,3)
p=
0.0000 0.0001 0.7462
Php so snh
a = =b (eq(a,b))- so snh bng: so snh cc phn t ca ma trn a v b. Php so snh n tr
v mt ma trn c gi tr 1 nu a(i,j)=b(i,j).
a~ =b (ne(a,b))- khc
a<b (lt(a,b))- nh hn
a<=b (le(a,b) nh hn hoc bng
a>b (gt(a,b) ln hn
a>=b (ge(a,b))- ln hn hoc bng.
Php tnh logic
~a (not(a)) cho mt ma trn vi phn t l 1 nu phn t tng ng ca a l 0 v 0 nu phn
t tng ng ca khc 0.
a&b (and(a,b)) cho mt ma trn c phn t l 1 nu phn t tng ng ca a v b khc 0 v
bng 0 nu mt trong 2 phn t tng ng ca a,b bng 0.
a|b (or(a,b) cho mt ma trn c phn t l 1 nu mt trong 2 phn t tng ng ca a v b
khc 0 v bng 0 nu c 2 phn t tng ng ca a,b bng 0.
xor(a,b) cho mt ma trn c phn t l 1 nu ch mt trong 2 phn t tng ng ca a v b
khc 0 v bng 0 nu c 2 phn t tng ng ca a,b bng 0 hay khc khng.
Script
Lnh if
C php:
if expression
statements
end
ngha: MATLAB nh gi expression, nu expression cho gi tr true hay khc khng, MATLAB
s thc hin statement
C php:
Matlab introduction
13/21
if expression1
statements1
elseif expression2
statements2
else
statements3
end
ngha: MATLAB nh gi expression1, nu expression1 cho gi tr true hay khc khng,
MATLAB s thc hin statement1. Nu expression1 cho gi tr false v expression2 cho gi tr true
s thc hin statement2.
Lnh switch
C php:
switch switch_expr
case case_expr
statement,...,statement
case {case_expr1,case_expr2,case_expr3,...}
statement,...,statement
...
otherwise
statement
end
Loop for
C php:
for varname=x:y:z
statement
statement
end
for varname=[a b c ...]
statement
statement
end
trong varname phi l tn bin. x, y, z c th l s thc hay biu thc
Loop while
C php
while expression
statements
end
Matlab introduction
14/21
15/21
sin(a*x)
>> diff(f)
ans =
cos(a*x)*a
xc nh c bao nhiu bin symbolic trong mt biu thc ta dng lnh findsym
V d:
>> findsym(f)
ans =
a, x
thay th gi tr vo mt mt bin symbolic ta dng lnh subs
V d:
>> subs(f,a,2)
ans =
sin(2*x)
>> subs(f,{x,a},{2,5})
ans =
-0.5440
Calculus
Cc hm cho gii tch
diff: o hm.
int: tch phn.
jacobian: ma trn Jacobian
limit: gii hn
symsum: tng ca mt chui.
taylor: khai trin chui Taylor.
V d:
>> int(f)
ans =
-1/a*cos(a*x)
>> taylor(f)
ans =
a*x-1/6*a^3*x^3+1/120*a^5*x^5
Rt gn biu thc:
collect(f,v): gom a thc theo bin v.
expand: khai trin a thc.
factor: phn tch a thc thnh cc nhn t.
horner: phn tch a thc thnh mt biu thc dn Horner.
numden: phn tch biu thc thnh dng hu t.
simple: n gin ti a biu thc.
simplify: rt gn biu thc.
V d:
>> t=(x-2)^2+(x-2)^3+2
t=
Matlab introduction
16/21
(x-2)^2+(x-2)^3+2
>> collect(t,x)
ans =
-2+x^3-5*x^2+8*x
>> expand(t)
ans =
-2+x^3-5*x^2+8*x
>> t=x^2 +2*a*x +a^2 ;
>> factor(t)
ans =
(a+x)^2
th
th 2D
plot(X,Y) v cc im trong vector Y theo vector X
V d:
>>x=[1:0.2:20];
>> y=sin(x);
>> plot(x,y)
Hnh. th to ra bi plot(x,y)
Trong MATLAB th c to trong mt window gi l figure. Khi ta dng mt lnh v th,
nu trong MATLAB khng c sn mt figure, mt figure mi s c to ra. Nu c mt hay
nhiu figure, th th mi s thay th th c trong figure hin hu. trnh iu ny ta c th
to nn mt figure (empty) bng lnh figure
V d:
>> figure
Matlab introduction
17/21
Matlab introduction
18/21
Hnh. Subplot
bar(x,y) v th ct vi d liu trong y theo x. Nu y l ma trn mxn th bar s v m nhm. Mi
nhm c n ct. v ct nm ngang ta dng barh. v ct trong 3D dng bar3 hay bar3h.
V d:
>> x=[1 3 6];
>> y=[5 12; 8 10 ; 12 5];
>> bar(x,y)
Hnh. th bar
hist(y,m) dng v th histogram vi d liu trong y v m l s khang chia.
errorbar(x,y,e) v th x,y vi dung sai [-e,+e].
V d:
>> x=[1:0.1:2];
>> y=x.^3-2*x.^2;
>> e=rand(1,length(x));
>> error(x,y,e)
Matlab introduction
19/21
Hnh. errorbar
pie(x) dng v th hnh bnh
v d:
>> x=[10 25 45];
>> pie(x)
Hnh. th pie
ezplot(f,[a,b]) v biu thc f trong khang [a,b]
V d:
>> ezplot('sin(x)/x',[-5,5])
Ty bin th
MATLAB cho php ta thay i nh dng ca th nh: font ch, kch thc ch, kch thc
ng, mu sc, trc th v.v. thay i nh dng th ta c th:
Dng menu File/Edit, chn Figure properties thay i nh dng cho figure window,
Axis properties thay i nh dng cho trc, Current Object properties thay i
nh dng cho i tng hin hnh.
Chn i tng m ta mun thay nh dng v nhn chut phi hin ln menu la
chn.
Matlab introduction
20/21
thm cc i tng nh nhn, vn bn, ghi ch, tiu v.v. ta c th dng menu Insert.
xut th ra cc dng hnh nh nh jpg, gif, ta dng menu File/Export As
th 3D
Ta c v th 3 chiu dng cc lnh sau:
plot3: tng t nh plot nh c thm trc z.
mesh: to th 3D di dng li (mesh).
surf: to b mt 3D.
Matlab introduction
21/21