Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
MATLAB alapismeretek I.
A MATLAB bemutatása MATLAB filozófia MATLAB modulok A MATLAB felhasználói felülete MATLAB tulajdonságok Vektorok, mátrixok Tömbök elemeinek megadása A [ ] az összefűzés, konkatenáció operátora Aritmetikai operátorok Aritmetikai elemenkénti operátorok
Dr.Dudás László
0.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
1.
A MATLAB bemutatása • Mi a MATLAB? • Mátrix alapú matematikai modellező és vizualizáló eszköz programozási lehetőségekkel, numerikus számítások elvégzésére, dokumentálására. • Lehet e a MATLAB-nak ellenállni?
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
MATLAB filozófia Az alap MATLAB (MATrix LABoratory) csak mátrixmanipulációs eszközöket nyújt. A mai viszont már kész alkalmazási környezeteket ad pl. arcfelismerő függvényekkel, neurális hálózatokkal, szimulációs modellel, amelyben még meg lehet találni az alap MATLAB jellemzőit is – ha nagyon keressük.
LEGO modulok
LEGO Ninjago 70725 Nindroid Mech Dragon játék
2.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
MATLAB modulok
Az alap MATLAB A modulok
3.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
A MATLAB bemutatása .. • Akkor hát Mi a MATLAB? • Egyre gyarapodó képességű professzionális matematikai modellező eszköz mátrix adatszerkezet alapokon, programozási lehetőségekkel, adatmegjelenítési képességekkel, mely számtalan műszaki terület feladataira nyújt rugalmasan alkalmazható és kombinálható félkész megoldást.
Képforrás: http://girlsdopoker.com/
4.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
A MATLAB bemutatása .. • A mátrixok központban
• Majdnem minden mátrix. A skalár egy egyelemű mátrix. A mátrixműveleteket kiemelkedően gyorsan végzi.
Képforrás: http://www.mathwarehouse.com/algebra/matrix// http://code.tutsplus.com/tutorials/understanding-affine-transformations-with-matrix-mathematics--active-10884
5.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
A MATLAB felhasználói felülete
Workspace Current Folder
Változók és értékeik
Könyvtárak, m-fájlok
Parancsablak
Command History Kiadott parancsok
Képforrás: http://www.mathwarehouse.com/algebra/matrix// http://code.tutsplus.com/tutorials/understanding-affine-transformations-with-matrix-mathematics--active-10884
6.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
MATLAB tulajdonságok • A típusok megadására nincs szükség
• A változók a megjelenésükkel kerülnek deklarálásra és egyéb megadás hiányában automatikusan duplapontos valósak lesznek. Más típusú érték értékül adása rákényszeríti az érték típusát. Pontosvessző letiltja az érték kiírását.
>> a=33; >> B2=12.45; >> C= B2; Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
7.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Vektorok, mátrixok • Vektorelemek elválasztása szóközzel, vagy vesszővel v=[9841] v= 9841
• Mátrix sorainak elválasztása pontosvesszővel m = [ 9 8; 4 1 ] m= 98 41
• Transzponálás operátora az aposztróf mt = m’
mt = 94 81
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
8.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Tömbök elemeinek tömör megadása • Egyesével növekvő tartomány v = 1:10 v= 1 2 3 4 5 6 7 8 9 10
• Adott lépésközzel változó tartomány w = -1: 0.5: 1 w= -1 -0.5 0 0.5 1 • Sorok megadása tartománnyal
t = [0:3; 7:10] t= 0 1 2 3 7 8 9 10 Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
9.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Tömbök elemeinek megadása függvénnyel • Tömb feltöltése nullákkal v = zeros(1, 4) v= 0
0
0
0
• Tömb feltöltése egyesekkel w = ones(2, 3)
w= 1 1 1 1 1 1 • Feltöltés egyenletes eloszlású véletlenszámokkal a (0, 1) intervallumból
r = rand(1, 2) r= 0.1233 0.6342 Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
10.
MŰSZAKI INFORMATIKA
Alkalmazott Informatikai Intézeti Tanszék
Dr.Dudás László
11.
Tömbelemek indexelése • Adjunk meg egy mátrixot: v = [1 2 3; 11 12 13] v= 1 2 3 11 12 13 • A kezdőindex 1, indexek megadása ( )-ek között!
>> v(2, 3)
>> v(2, :)
>> v(1, 2:3)
>> v(1:2, 3)
>> v(5)
ans =
ans =
ans =
ans =
ans =
13
11 12 13
2 3
3 13
• Túlindexelés ??? Index exceeds matrix dimensions. hibát ad
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
3
MŰSZAKI INFORMATIKA
Alkalmazott Informatikai Intézeti Tanszék
Dr.Dudás László
Tömbelemek indexelése .. • Adjunk meg egy mátrixot: v = [1 2 3; 11 12 13] v= 1 2 3 11 12 13 • Értékadás az elemeknek
>> v(2, 3)= 5
>> v(2, :)= 5
>> v(2, :)= [9 8 7]
v=
v=
v=
1 2 3 11 12 5
1 5
2 5
3 5
1 9
2 8
3 7
• Harmadik esetnél elemszámra ügyelni! Oszlopfelülírás: >> v(:,1)= [6;6] Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
12.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Tömbelemek indexelése .. • Adjunk meg egy mátrixot: v = [1 2 3; 11 12 13] v= 1 2 3 11 12 13 • Nem teljes, vagy nem összefüggő tartomány indexelése: a kért indexeket adjuk meg [ ]-ek között! >> v(:, [1, 3])
>> v(:, [1, 3])= 0
v=
v= 1 3 11 13
0 2 0 0 12 0
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
13.
MŰSZAKI INFORMATIKA
Alkalmazott Informatikai Intézeti Tanszék
Dr.Dudás László
A [ ] az összefűzés, konkatenáció operátora • Eddig a [ ] zárójelpárral skalárokat fűztünk össze vektorrá. A [ ] használható méretben illeszkedő tömbök összefűzésére is. a = [1 2 ], b = [ 4 5 ], c = [66 77] AB = [ a b ] 1 2 4
5
X = [a ;b ] 1 2 3 5 Y = [a b ; c ] ??? Error using ==> vertcat CAT arguments dimensions are not consistent
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
14.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Aritmetikai operátorok + * / ^ ‘
Összeadás Kivonás Szorzás Osztás Hatványozás Transzponálás
• Az operátorok alkalmazhatók tömbökre is.
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
15.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
16.
Aritmetikai operátorok alkalmazása tömbökre • Adott az A és B mátrix >> A = [ 11 12 13; 21 22 23; 31 32 33] A= 11 12 13 21 22 23 31 32 33
A+B >> C = A+B C= 14 14 14 34 34 34 54 54 54
A-B >> C = A-B C= 8 10 12 8 10 12 8 10 12
>> B = [ 3 2 1; 12 12 11; 23 22 21] B= 3 2 1 13 12 11 23 22 21
A*B >> C = A*B C= 488 452 416 878 812 746 1268 1172 1076
A’ >> C = A’ C= 11 21 31 12 22 32 13 23 33
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Aritmetikai elemenkénti operátorok tömbökre
.* Szorzás ./ Osztás .^ Hatványozás
• Az operátorok azonos indexű elemek között végeznek műveleteket.
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
17.
Alkalmazott Informatikai Intézeti Tanszék
MŰSZAKI INFORMATIKA
Dr.Dudás László
Aritmetikai elemenkénti operátorok alkalmazása tömbökre • Adott az A és B mátrix >> x = [ 1 2 3] x= 1 2 3
.* >> b = x.*y b= 3 8 -3
>> y = [ 3 4 -1] y= 3 4 -1
./
>> b = x./y b= 0.33 0.5 -3
.^
>> b = x. ^ y b= 1 16 0.33
b= x^2 Hiba: ??? Error using ==> mpower Matrix must be square. b=x*y Hiba: ??? Error using ==> mtimes Inner matrix dimensions must agree. Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
18.