MATLAB alapismeretek I. - uni-miskolc.hu

19
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

Transcript of MATLAB alapismeretek I. - uni-miskolc.hu

Page 1: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 2: MATLAB alapismeretek I. - uni-miskolc.hu

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?

Page 3: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 4: MATLAB alapismeretek I. - uni-miskolc.hu

MATLAB modulok

Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 3.

Az alap MATLAB

A modulok

Page 5: MATLAB alapismeretek I. - uni-miskolc.hu

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/

Page 6: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 7: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 8: MATLAB alapismeretek I. - uni-miskolc.hu

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;

Page 9: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 10: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 11: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 12: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 13: MATLAB alapismeretek I. - uni-miskolc.hu

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]

Page 14: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 15: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 16: MATLAB alapismeretek I. - uni-miskolc.hu

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.

Page 17: MATLAB alapismeretek I. - uni-miskolc.hu

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

Page 18: MATLAB alapismeretek I. - uni-miskolc.hu

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.

Page 19: MATLAB alapismeretek I. - uni-miskolc.hu

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.