Professional Documents
Culture Documents
Pannon Egyetem
Automatizls Tanszk
Tartalomjegyzk
1.
2.
2.1.
2.2.
3.
3.1.
3.2.
3.3.
3.4.
4.
4.1.
4.2.
5.
5.1.
5.2.
5.3.
6.
6.1.
6.2.
6.3.
6.4.
7.
MATLAB . . . . . . . . . . . . . . . .
Alapok . . . . . . . . . . . . . . . . . .
Sg . . . . . . . . . . . . . . . . . . .
Naplzs . . . . . . . . . . . . . . . . .
Vltozk, rtkads . . . . . . . . . . .
Skalr vltozk . . . . . . . . . . . . .
Vektor vltozk . . . . . . . . . . . . .
3.2.1. Indexels . . . . . . . . . . . . .
Mtrix vltozk . . . . . . . . . . . . .
3.3.1. Specilis mtrixok . . . . . . .
3.3.2. Indexels . . . . . . . . . . . . .
Munkatrbeli vltozk . . . . . . . . .
Mveletek . . . . . . . . . . . . . . . .
Alapvet mveletek . . . . . . . . . . .
4.1.1. sszeads, kivons, szummzs
4.1.2. Szorzs, oszts, inverz . . . . .
4.1.3. Hatvnyozs . . . . . . . . . . .
4.1.4. Komplex szmok . . . . . . . .
Tovbbi mveletek . . . . . . . . . . .
4.2.1. Alapvet fggvnyek . . . . . .
4.2.2. Mtrixfggvnyek . . . . . . . .
4.2.3. Polinomok . . . . . . . . . . . .
Grafikus brzols . . . . . . . . . . .
Ktdimenzis brk . . . . . . . . . . .
Hromdimenzis brk . . . . . . . . .
Nyomtats fjlba . . . . . . . . . . . .
Programozs . . . . . . . . . . . . . . .
Szkriptek . . . . . . . . . . . . . . . .
6.1.1. Egy plda szkript . . . . . . . .
Fggvnyek . . . . . . . . . . . . . . .
6.2.1. Vltoztpusok . . . . . . . . .
6.2.2. Sg rsa . . . . . . . . . . . .
6.2.3. Hibakezels . . . . . . . . . . .
6.2.4. Egy plda fggvny . . . . . . .
Ciklusok . . . . . . . . . . . . . . . . .
Elgazsok . . . . . . . . . . . . . . . .
Simulink . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
4
4
5
6
6
7
8
9
10
10
10
11
13
14
15
15
17
19
22
22
27
27
27
28
29
31
31
31
31
31
31
31
31
1 MATLAB
1.
MATLAB
A Matlab egy sokoldal matematikai programcsomag, amely a mrnki szmtsokat egyszersti le. (A Matlab neve a MATrix s a LABoratory szavakbl ered.) A Matlab nyelve egy magas szint, BASIC-szer programozsi
nyelv, ppen ezrt knny vele dolgozni. Elssorban numerikus s mtrixalgebrai feladatokra dolgoztk ki, kiegszt csomagokkal (Toolbox-ok : egy
bizonyos feladatosztlyhoz tartoz parancsok gyjtemnye) azonban rengeteg
terleten alkalmazhat az irnytstechniktl a bioinformatikn t a jelfeldolgozsig.
2.
2.1.
Alapok
Sg
2.2.
Naplzs
3 Vltozk, rtkads
3.
Vltozk, rtkads
3.1.
Skalr vltozk
3 Vltozk, rtkads
3.2.
Vektor vltozk
illetve:
>> w=[1;2;3] oszlopvektor
w =
1
2
3
Teht sorvektorok esetn az egyes elemek kz szkz (vagy vessz) kerl,
oszlopvektor esetn pedig pontosvessz.
3 Vltozk, rtkads
Indexels
3.3.
Mtrix vltozk
3 Vltozk, rtkads
4
5
6
2
5
4
A transzponls hasonlan mkdik, mint a vektoros esetben.
3.3.1.
Specilis mtrixok
Vannak specilis mtrixok, amelyeket az egyszersg kedvrt kln utastssal lehet ltrehozni:
>> eye(4) 4 4-es egysgmtrix
ans =
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
>> rand(2,3) 2 3-as vletlen mtrix, aminek az elemei a [0 , 1] intervallumon egyenletes eloszlsak
ans =
0.9501
0.2311
0.6068
0.4860
0.8913
0.7621
3 Vltozk, rtkads
-0.0956
-0.8323
0.2944
-1.3362
Indexels
3 Vltozk, rtkads
0.7919
0.9218
0.7382
0.1763
0.4057
>> D(2:4,1:2)
0.9355
0.9169
0.4103
0.8936
0.0579
0.3529
0.8132
0.0099
0.1389
0.2028
0.1987
0.6038
0.2722
0.1988
0.0153
ans =
0.0185
0.8214
0.4447
0.9218
0.7382
0.1763
Egy mtrix (vagy vektor, vagy skalr) mretnek lekrdezse a size utasts
segtsgvel trtnik:
>> size(A)
ans =
2
3.4.
Munkatrbeli vltozk
Ha kvncsiak vagyunk az aktulisan hasznlt vltoznevekre, illetve a vltozk mretre s tpusra, akkor a legegyszerbb a Parancsablak (Command window) bal oldaln az Aktulis knyvtr (Current directory) helyett
a Munkatr (Workspace) tabot kivlasztani (2. bra). A Parancsablakban a
whos utastssal ugyanez az informci vlik elrhetv.
4 Mveletek
10
4.
Mveletek
4.1.
Alapvet mveletek
4.1.1.
Skalrokon trivilis, mtrixok s vektorok esetn vigyzni kell, hogy az operandusok mretei megegyezzenek. Vektorokon (v sorvektor, w pedig oszlopvektor):
>> v-w
??? Error using ==> Matrix dimensions must agree.
>> v-w
ans =
0
0.7000 + 4.0000i
4 Mveletek
11
Mtrixokon:
>> A=[2 2;3 3];
>> B=[1 2 4;3 4 5];
>> A+B
??? Error using ==> +
Matrix dimensions must agree.
>> B=[1 2;3 4];
>> A+B
ans =
3
6
4
7
Szummzs: egy vektor elemeit adja ssze, illetve mtrixok esetn az oszlopok elemeinek sszegeit tartalmaz sorvektor az eredmny.
>> sum(B)
ans =
4
>> sum(sum(B))
ans =
10
4.1.2.
A szorzs s az oszts skalrokra trivilis, mtrixok esetn a mreteknek stimmelnik kell. Skalrokra az inverz a reciprokkal egyezik meg, mtrixoknl van
jelentsge.
Vektorok szorzsa (v = [1, 2, 3], w = [1, 2, 2.3 + 4i]T , a = 3.45):
>> w*v
ans =
1.0000
2.0000
2.0000
4.0000
3.0000
6.0000
4 Mveletek
12
2.3000 + 4.0000i
4.6000 + 8.0000i
>> v*w
ans =
11.9000 +12.0000i
>> a*v
ans =
3.4500
6.9000
10.3500
-1.8969
-1.2047
-2.5930
>> B*A
??? Error using ==> *
Inner matrix dimensions must agree.
>> v*A
ans =
4.4324
3.8420
2.9469
2.9212
1.6077
1.4443
2.9195
1.8118
0.6991
2.3189
2.8915
0.0678
2.3504
>> a*A
ans =
2.5764
1.5356
3.2148
6.9000 +12.0000i
4 Mveletek
13
0.7095
0.4289
0.3046
0.1897
0.1934
0.6822
1.7927
-0.6878
-1.0142
-0.2351
-0.3548
1.7974
0.0000
1.0000
0
0
0
1.0000
>> inv(D)
ans =
-0.9828
1.9776
-0.1587
>> D*inv(D)
ans =
1.0000
0.0000
-0.0000
4.1.3.
Hatvnyozs
2
2
2
2
2
2
4 Mveletek
14
ans =
12
12
12
4.1.4.
12
12
12
12
12
12
Komplex szmok
4 Mveletek
15
ans =
0.9273
>> abs(z)
ans =
5
Komplex szm megadhat kzvetlenl exponencilis alakban is:
>> 3*exp(i*pi)
ans =
-3.0000 + 0.0000i
A komplex konjuglt meghatrozsra a korbban megismert opertor mellett a conj() utasts is hasznlhat:
>> conj(z)
ans =
3.0000 - 4.0000i
Az olyan mveleteknl, melyek komplex szmok esetben tbb eredmnyt
is adhatnak, (eml: egy komplex szmnak n db n-edik gyke van, vagy komplex logaritmus) Matlabban mindig csak egy eredmnyt kapunk.
4.2.
Tovbbi mveletek
4.2.1.
Alapvet fggvnyek
Az albbiakban csak felsorolsszeren, plda nlkl adjuk meg a Matlabban elrhet alapvet matematikai fggvnyeket. A help(utasitasnev)
utastssal egy rvid sgt kapunk a parancsablakba, amely rszletezi a
krdses utasts mkdst (milyen sszefggst valst meg), illetve szintaxist.
Trigonometrikus fggvnyek.
4 Mveletek
16
acos
acosh
acot
acoth
asin
asinh
atan
atanh
cos
cosh
cot
coth
sin
sinh
tan
tanh
arkusz koszinusz
arkusz koszinusz hiperbolikusz
Arkusz kotangens
Arkusz kotangens hiperbolikusz
Arkusz szinusz
Arkusz szinusz hiperbolikusz
Arkusz tangens
Arkusz tangens hiperbolikusz
Koszinusz
Koszinusz hiperbolikusz
Kotangens
Kotengens hiperbolikusz
Szinusz
Szinusz hiperbolikusz
Tangens
Tangens hiperbolikusz
Exponencilis
Termszetes alap logaritmus (ln)
Kettesalap logaritmus
Tizesalap logaritmus
Ngyzetgyk
Prmtnyezs felbonts
Faktorilis
Legnagyobb kzs oszt
Legkisebb kzs tbbszrs
sszes lehetsges kombinci sszes lehetsges permutci
n
k
4 Mveletek
4.2.2.
17
Mtrixfggvnyek
0.7050
-0.0492 + 0.3569i
-0.5466 - 0.2728i
0.7050
-0.0492 - 0.3569i
-0.5466 + 0.2728i
0
0.0658 + 0.3097i
0
0
0
0.0658 - 0.3097i
s_ertek =
1.9681
0
0
4 Mveletek
18
X
Ak
k=0
k!
sqrtm
A az a mtrix, amely kielgti az A A = A
>> sqrtm(A)
egyenletet.
Elemenknti mveletek:
Mtrixokra s vektorokra egyarnt rvnyes, hogy a mvelet opertora
el kitett pont (.) az eredeti mvelet elemenknti vltozatt hajtja vgre, pl:
>> X=2*ones(3,3)
X =
2
2
2
2
2
2
2
2
2
12
12
12
12
12
12
>> X^2
ans =
12
12
12
>> X.^2
ans =
4 Mveletek
19
4
4
4
4
4
4
4
4
4
Megjegyzs:
Ha a Matlabban egy, a matematikbl skalrvltozsnak megismert
fggvnyt (pl. sin, exp, stb.) hvunk meg mtrix, vagy vektor argumentummal, akkor az egyes elemek fggvnyrtkeit tartalmaz ugyanolyan
mret mtrixot, vagy vektort kapjuk vissza, pl:
>> Y=ones(2,3);
>> exp(Y)
ans =
2.7183
2.7183
4.2.3.
2.7183
2.7183
2.7183
2.7183
Polinomok
p =
4 Mveletek
20
1
-6
11
-6
az els helyen a fggetlen vltoz legmagasabb kitevj hatvnynak egytthatja ll, azaz
p(x) = x3 6x2 + 11x 6.
Polinom kirtkelse: polyval
>> x=4;
>> polyval(p,x)
a p polinomot szeretnnk kirtkelni x-ben.
ans =
p(4) = 6
-0.8588
-2.3070
-3.1777
-4.1228
-8
23
-28
12
4 Mveletek
21
-3
r =
0
-11
r =
28
-68
-28
63
5 Grafikus brzols
22
6.0000
5.0000
3.0000
5.
Grafikus brzols
Az adatok kirajzoltatsra szmos lehetsg van Matlabban, itt csak a legegyszerbbeket mutatjuk be.
5.1.
Ktdimenzis brk
-1.5708
1.5708
3.1416
5 Grafikus brzols
23
1.5000
2.0000
2.5000
3.0000
plot utasts:
Nagyon ltalnos parancs, sokfle opcionlis argumentummal hvhat,
itt csak a leggyakrabban hasznlt kombincikat mutatjuk be.
>> t=-pi:pi/10:pi;
Feloszts
>> plot(t,sin(t))
kirajzoltats: els argumentum a felosztst
tartalmaz vektor, msodik a fggvny rtkeit tartalmazza a felosztsi
pontokban (itt a sin utasts egy t-vel azonos mret vektorral tr
vissza, melynek elemei t komponenseinek szinuszai) Az utasts eredmnyl kapott ablak a 3. brn lthat.
5 Grafikus brzols
24
is meg kell adni a plot parancsnak, ami egy specilis sztring, aminek
az els eleme a vonalstlust hatrozza meg:
-:
-.
r
g
b
c
m
y
k
w
Vonaltpus
Folytonos vonal
Szaggatott vonal
Pontvonal
Szaggatott pontvonal
Sznek
Piros
Zld
Kk
Cin
Magenta
Srga
Fekete
Fehr
+
o
*
.
x
s
d
^
v
>
<
p
h
Szimblum
Plusz jel
Kr
Csillag
Pont
Kereszt
Ngyzet
Rombusz
Hromszg
Hromszg
Hromszg
Hromszg
tg csillag
Hatg csillag
Pldul egy vletlen szmsorozat brzolsa magenta szn pontvonallal, a pontokban hatg csillagokkal (4. bra):
>> t=linspace(1,100,30);
>> y=randn(size(t));
>> plot(t,y,:mh)
stem utasts:
Olyankor hasznljuk, ha az brn ki szeretnnk hangslyozni az adatsor diszkrt voltt (5. bra). Szintaxisa hasonl a plot utastshoz.
Pldul:
>> t=-pi:pi/10:pi;
>> stem(t,sin(t))
stairs utasts:
Nulladrend tartszervvel mintavtelezett rendszerek jeleinek brzolshoz
(6. bra). Szintaxisa hasonl a plot utastshoz.
>> t=-pi:pi/10:pi;
>> stairs(t,sin(t),r--)
Tbb bra egymson: hold
Ha kett, vagy tbb brt szeretnnk ugyanabban az ablakban brzolni, akkor a hold utastst hasznljuk:
5 Grafikus brzols
25
>> plot(...);
Els plot utasts
>> hold on
A hold funkci bekapcsolva
>> plot(...)
A tovbbi brk a korbbival egy ablakba kerlnek.
A hold funkci kikapcsolhat a hold off utastssal.
5 Grafikus brzols
26
Rcsozat: grid
Hasznlata hasonl a hold-hoz, rcsozatot jelent meg az aktulis brn.
Kpmagyarzat: legend
Ha egy ablakban brzoltunk tbb adatot, ajnlatos kitenni egy jelmagyarzatot, amely megknnyti az olvasst (7. bra). Az utasts
argumentumai a megyarzatban megjelentend sztringek, az brk
sorrendjben, pl:
t=pi/2:pi/10:4*pi;
plot(t,exp(-0.5*t).*sin(t))
hold on
grid on
plot(t,exp(-0.5*t),:r)
legend(exp*sin,exp)
Egyb brafeliratok:
Az bra cmt a
>> title(abra_cim)
utastssal adhatjuk meg, a tengelyek feliratait pedig az
>> xlabel(x_tengely_felirat)
>> ylabel(y_tengely_felirat)
>> zlabel(z_tengely_felirat)
(3D esetben z-tengely is van)
utastsokkal vltoztathatjuk meg.
6 Programozs
27
5.2.
Hromdimenzis brk
5.3.
Nyomtats fjlba
6.
Programozs
6 Programozs
28
t hvskor. Szkriptekben s fggvnyekben is megknnyti a feladat algoritmizlst a ciklusok s felttelvizsglatok hasznlata. A Matlab programnyelve hasonl a Basic-hez, elsajttsa egyszer. A megrt szkripteket s fggvnyeket egy .m kiterjeszts n. M-fjlba mentjk. j M-fjlokat a Matlab
fablak File New menpontjban hozhatunk ltre, ltezket pedig a File
Open menpontban nyithatunk meg. Az M-fjlok szerkesztse trtnhet
tetszleges szvegszerkesztvel, de a Matlab beptett Editor -ja knyelmesebb teszi a munkt (8. bra).
6.1.
Szkriptek
6 Programozs
29
Akkor hasznosak, ha rendszeresen tbb Matlab utastst akarunk egymsutn vgrehajtani. A szkript vgrehajtsa a fjl nevnek (kiterjeszts nlkl)
begpelsvel trtnik.
6.1.1.
Az albbi szkript egy 5 5-s vletlen mtrx sajtrtkeit rajzolja ki a komplex szmskon (10. bra), feliratozza az brt, vgl pedig a sajat.eps nev
eps fjlba exportlja:
% Egy vletlen matrix sajatertekeinek kirajzoltatasa
A=randn(5,5);
[u,v]=eig(A);
valosresz=real(diag(v));
kepzetesresz=imag(diag(v));
plot(valosresz,kepzetesresz,ro)
xlabel(Re)
ylabel(Im)
grid on
6 Programozs
30
title(Sajtrtkek)
print -depsc sajat
A szkript hvsa pedig a Parancsablakban az albbi mdon:
>> sajat
7 Simulink
6.2.
Fggvnyek
6.2.1.
Vltoztpusok
6.2.2.
Sg rsa
6.2.3.
Hibakezels
6.2.4.
6.3.
Ciklusok
6.4.
Elgazsok
7.
Simulink
31