Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
MATLAB alapismeretek I.
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0.
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
A MATLAB bemutatása
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 1.
• 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?
MATLAB filozófia
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 2.
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
MATLAB modulok
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 3.
Az alap MATLAB
A modulok
A MATLAB bemutatása ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 4.
• 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/
A MATLAB bemutatása ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 5.
• 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
A MATLAB felhasználói felülete
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 6.
Képforrás: http://www.mathwarehouse.com/algebra/matrix//
http://code.tutsplus.com/tutorials/understanding-affine-transformations-with-matrix-mathematics--active-10884
Parancsablak
Current Folder Könyvtárak, m-fájlok
Command History Kiadott parancsok
Workspace Változók és értékeik
MATLAB tulajdonságok
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 7.
• A típusok megadására nincs szükség
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
• 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;
Vektorok, mátrixok
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 8.
• Vektorelemek elválasztása szóközzel, vagy vesszővel
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
• Mátrix sorainak elválasztása pontosvesszővel
v = [ 9 8 4 1 ]
v =
9 8 4 1
m = [ 9 8; 4 1 ]
m =
9 8
4 1
• Transzponálás operátora az aposztróf
mt = m’ mt =
9 4
8 1
Tömbök elemeinek tömör megadása
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 9.
• Egyesével növekvő tartomány
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
• Adott lépésközzel változó tartomány
v = 1:10
v =
1 2 3 4 5 6 7 8 9 10
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
Tömbök elemeinek megadása függvénnyel
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 10.
• Tömb feltöltése nullákkal
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
• Tömb feltöltése egyesekkel
v = zeros(1, 4)
v =
0 0 0 0
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
Tömbelemek indexelése
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 11.
• Adjunk meg egy mátrixot:
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
• A kezdőindex 1, indexek megadása ( )-ek között!
v = [1 2 3; 11 12 13]
v =
1 2 3
11 12 13
>> v(2, 3)
ans =
13
• Túlindexelés ??? Index exceeds matrix dimensions. hibát ad
>> v(2, :)
ans =
11 12 13
>> v(1, 2:3)
ans =
2 3
>> v(1:2, 3)
ans =
3
13
>> v(5)
ans =
3
Tömbelemek indexelése ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 12.
• Adjunk meg egy mátrixot:
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
• Értékadás az elemeknek
v = [1 2 3; 11 12 13]
v =
1 2 3
11 12 13
>> v(2, 3)= 5
v =
1 2 3
11 12 5
>> v(2, :)= 5
v =
1 2 3
5 5 5
>> v(2, :)= [9 8 7]
v =
1 2 3
9 8 7
• Harmadik esetnél elemszámra ügyelni!
Oszlopfelülírás: >> v(:,1)= [6;6]
Tömbelemek indexelése ..
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 13.
• Adjunk meg egy mátrixot:
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
• Nem teljes, vagy nem összefüggő tartomány indexelése: a kért
indexeket adjuk meg [ ]-ek között!
v = [1 2 3; 11 12 13]
v =
1 2 3
11 12 13
>> v(:, [1, 3])
v =
1 3
11 13
>> v(:, [1, 3])= 0
v =
0 2 0
0 12 0
A [ ] az összefűzés, konkatenáció operátora
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 14.
• 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.
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
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
Aritmetikai operátorok
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 15.
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
+ Összeadás
- Kivonás
* Szorzás
/ Osztás
^ Hatványozás
‘ Transzponálás
• Az operátorok alkalmazhatók tömbökre is.
Aritmetikai operátorok alkalmazása tömbökre
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 16.
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
>> A = [ 11 12 13; 21 22 23; 31 32 33]
A=
11 12 13
21 22 23
31 32 33
• Adott az A és B mátrix
>> B = [ 3 2 1; 12 12 11; 23 22 21]
B=
3 2 1
13 12 11
23 22 21
A+B A-B A*B A’
>> C = A+B
C=
14 14 14
34 34 34
54 54 54
>> C = A-B
C=
8 10 12
8 10 12
8 10 12
>> C = A*B
C=
488 452 416
878 812 746
1268 1172 1076
>> C = A’
C=
11 21 31
12 22 32
13 23 33
Aritmetikai elemenkénti operátorok tömbökre
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 17.
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
.* Szorzás
./ Osztás
.^ Hatványozás
• Az operátorok azonos indexű elemek között végeznek műveleteket.
Aritmetikai elemenkénti operátorok alkalmazása tömbökre
Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 18.
Forrás: İ.Yücel Özbek: Introduction to Matlab; Simon O’Keefe: Introduction to MATLAB; Harvard SEAS: Introduction to MATLAB
>> x = [ 1 2 3]
x=
1 2 3
• Adott az A és B mátrix
.* ./ .^
>> 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.