MATLAB. Sergyán Szabolcs Óbudai Egyetem, Neumann János Informatikai Kar Alkalmazott Informatikai Intézet

Hasonló dokumentumok
Algoritmusok Tervezése. 1. Előadás MATLAB 1. Dr. Bécsi Tamás

MATLAB OKTATÁS 1. ELŐADÁS ALAPOK. Dr. Bécsi Tamás Hegedüs Ferenc

MATLAB alapismeretek I.

A számok kiíratásának formátuma

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Matlab alapok. Baran Ágnes

Feladat Nézzük meg a súgóban (help és doc) a sin parancs használatáról olvasható információt! Próbáljuk ki a kirajzoltató utasítást.

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei

Készítette: Nagy Tibor István

Java II. I A Java programozási nyelv alapelemei

Matlab alapok. Vektorok. Baran Ágnes

C# gyorstalpaló. Készítette: Major Péter

Feladat Nézzük meg a súgóban (help és doc) a sin parancs használatáról olvasható információt! Próbáljuk ki a kirajzoltató utasítást.

LEGO robotok. XII. rész

6. előadás. Matlab 1. (Ismerkedés, környezet, adattípusok) Dr. Szörényi Miklós, Dr. Kallós Gábor. Széchenyi István Egyetem

Mérnöki programozás 8. Szerkesztette: dr. Vass Péter Tamás

Ismerkedés a Matlabbal

Baran Ágnes. Gyakorlat Függvények, Matlab alapok

Mátrixok, mátrixműveletek

BASH script programozás II. Vezérlési szerkezetek

Atomerőművek üzemtanának fizikai alapjai. MATLAB használata

Programozás alapjai. 5. előadás

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

2. előadás. Lineáris algebra numerikus módszerei. Mátrixok Mátrixműveletek Speciális mátrixok, vektorok Norma

Java II. I A Java programozási nyelv alapelemei

Bevezetés a MATLAB használatába

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

I. VEKTOROK, MÁTRIXOK

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

NEMNUMERIKUS TÍPUSOK, MÁTRIXOK

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

MATLAB alapismeretek II.

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Lineáris algebra (10A103)

A C programozási nyelv III. Pointerek és tömbök.

MATLAB alapismeretek III.

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

A C programozási nyelv III. Pointerek és tömbök.

Matematikai programok

Occam 1. Készítette: Szabó Éva

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

AWK programozás, minták, vezérlési szerkezetek

Szkriptnyelvek. 1. UNIX shell

8. gyakorlat Pointerek, dinamikus memóriakezelés

MATLAB. 3. gyakorlat. Mátrixműveletek, címzések

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

AWK programozás Bevezetés

KOVÁCS BÉLA, MATEMATIKA I.

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Vektorok, mátrixok, lineáris egyenletrendszerek

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

az Excel for Windows programban

Egyszerű programozási tételek

Baran Ágnes. Gyakorlat Halmazok, függvények, Matlab alapok. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 34

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Matematikai programok

NEMNUMERIKUS TÍPUSOK, MÁTRIXOK

Valasek Gábor

Mátrixok 2017 Mátrixok

1. Egyszerű (primitív) típusok. 2. Referencia típusok

3 A C programozási nyelv szintaktikai egységei

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Memento kurzus: Matlab bevezető

SZÁMÍTÁSOK A TÁBLÁZATBAN

A C programozási nyelv I. Bevezetés

FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET

Bevezetés a MATLAB használatába

BASH SCRIPT SHELL JEGYZETEK

9.fejezet: Függvények és külső eljárások

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Egyváltozós függvények 1.

MATLAB. 9. gyakorlat. Cellatömbök, struktúrák, fájlműveletek

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

1. Feladatlap. Függvények. Mőveletek Matlab nyelvben. Példa inverz osztásra >>d=2\1 d= Információkérési lehetıségek help utasítás

1. Alapok. #!/bin/bash

Informatika terméktervezőknek

1. Jelölje meg az összes igaz állítást a következők közül!

A C# PROGRAMOZÁSI NYELV

A C programozási nyelv I. Bevezetés

Aritmetikai kifejezések lengyelformára hozása

M-Fájlok létrehozása MATLAB-ban

Osztályok. 4. gyakorlat

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

Pontműveletek. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar február 20.

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

1. Mátrixösszeadás és skalárral szorzás

MÁTRIXFÜGGVÉNYEK, SAJÁT FÜGGVÉNYEK, GRAFIKA

AWK programozás, minták, vezérlési szerkezetek

A PiFast program használata. Nagy Lajos

2012. október 9 és 11. Dr. Vincze Szilvia

Komputeralgebra rendszerek

Átírás:

MATLAB Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem, Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2016. november 13. Sergyán (OE NIK AII) MATLAB 2016. november 13. 1 / 118

Bevezetés a MATLAB-ba I. Bevezetés a MATLAB-ba Sergyán (OE NIK AII) MATLAB 2016. november 13. 2 / 118

Bevezetés a MATLAB-ba Belépés a MATLAB-ba I. Bevezetés a MATLAB-ba 1 Belépés a MATLAB-ba 2 A fejlesztői környezet 3 Változók és értékadás Típusok 4 Numerikus kifejezések Megjelenés formátuma Operátorok Beépített függvények Konstansok Véletlen számok Összehasonĺıtó operátorok Sergyán (OE NIK AII) MATLAB 2016. november 13. 3 / 118

Bevezetés a MATLAB-ba Belépés a MATLAB-ba Mi is a MATLAB? Matematikai és grafikai szoftvercsomag Számítási, grafikai és programozási képességekkel rendelkezik Eredeti neve: Matrix Laboratory Mára általános mérnöki rendszerré nőtte ki magát Számos ún. toolbox-szal rendelkezik (pl. jelfeldoldozás, gépi látás, fuzzy rendszerek, neurális hálózatok, stb.) Félévente jelennek meg új verziók Jelenlegi legfrissebb: R2016b Fejlesztők honlapja: http://www.mathworks.com Sergyán (OE NIK AII) MATLAB 2016. november 13. 4 / 118

Bevezetés a MATLAB-ba A fejlesztői környezet I. Bevezetés a MATLAB-ba 1 Belépés a MATLAB-ba 2 A fejlesztői környezet 3 Változók és értékadás Típusok 4 Numerikus kifejezések Megjelenés formátuma Operátorok Beépített függvények Konstansok Véletlen számok Összehasonĺıtó operátorok Sergyán (OE NIK AII) MATLAB 2016. november 13. 5 / 118

Bevezetés a MATLAB-ba A fejlesztői környezet A fejlesztői környezet Sergyán (OE NIK AII) MATLAB 2016. november 13. 6 / 118

Bevezetés a MATLAB-ba A fejlesztői környezet Parancsnok kiadása Kódok futtatási módjai Command Window-ba írt parancsokkal Programok futtatásával Script-ek Function-ök Hasznos parancsok demo MATLAB-os példákat hív elő help megmagyarázza az egyes függvényeket lookfor a help szövegekben egy konkrét kifejezést keres doc egy függvény dokumentációját jeleníti meg quit vagy exit kilépés a rendszerből Sergyán (OE NIK AII) MATLAB 2016. november 13. 7 / 118

Bevezetés a MATLAB-ba A fejlesztői környezet Fejlesztői környezet A fejlesztői környezet elemei Command Window ide írhatók a parancsok, innen hívhatók a szkriptek és a függvények Current Folder az aktuális könyvtár tartalmát mutatja Az aktuális könyvtár függvényei és szkriptjei hívhatók meg Workspace az ún. workspace-ben lévő változókat mutatja Command History az előzőleg kiadott parancsok listája Sergyán (OE NIK AII) MATLAB 2016. november 13. 8 / 118

Bevezetés a MATLAB-ba Változók és értékadás I. Bevezetés a MATLAB-ba 1 Belépés a MATLAB-ba 2 A fejlesztői környezet 3 Változók és értékadás Típusok 4 Numerikus kifejezések Megjelenés formátuma Operátorok Beépített függvények Konstansok Véletlen számok Összehasonĺıtó operátorok Sergyán (OE NIK AII) MATLAB 2016. november 13. 9 / 118

Bevezetés a MATLAB-ba Változók és értékadás Értékadás Értékadás szintaktikája variablename = expression Értékadó egyenlőség: = Értékadás példa >> mynum = 6 mynum = 6 >> Sergyán (OE NIK AII) MATLAB 2016. november 13. 10 / 118

Bevezetés a MATLAB-ba Változók és értékadás Értékadás eredményének elrejtése ; használata Ha az értékadás végére ;-t teszünk, akkor az eredmény nem látszik a parancsablakban Példa >> r e s = 9 2 ; >> Sergyán (OE NIK AII) MATLAB 2016. november 13. 11 / 118

Bevezetés a MATLAB-ba Változók és értékadás Az utolsó művelet eredménye Az ans változó Ha egy műveletet úgy végzünk el, hogy az eredményét nem tároljuk el egy változóban, akkor az automatikusan az ans változóba kerül. Ugyanez érvényes olyan függvények hívása esetén is, melyeknek a visszatérési értékét nem adjuk át egy változónak. Ha egy művelet eredményét értékül adjuk egy változónak, akkor az ans értéke nem változik meg. Példa >> 6 + 3 9 >> Sergyán (OE NIK AII) MATLAB 2016. november 13. 12 / 118

Bevezetés a MATLAB-ba Változók és értékadás Változó nevek Megkötések A változónévnek az abc betűjével kell kezdődnie. (Ékezetes betűk nem megengedettek.) A változónévben egyébként betűk, számok és az aláhúzás karakter szerepelhetnek. A namelengthmax beépített függvény megadja a maximális változónév-hosszt. A MATLAB betűméret érzékeny. A foglalt szavak (keywords) nem szerepelhetnek változó névként. A beépített függvények nevei lehetnek változónevek is, de ez nem ajánlott. Sergyán (OE NIK AII) MATLAB 2016. november 13. 13 / 118

Bevezetés a MATLAB-ba Változók és értékadás Változókkal kapcsolatos parancsok Parancsok listája who A parancsablakban definiált változók listáját adja meg. whos A parancsablakban definiált változók listáját adja meg néhány tulajdonságukkal együtt. clear Kitörli a változókat a workspace-ből clear variablename Kitörli a megnevezett változót a workspace-ből. clear variablename1 variablename2... Kitörli a felsorolt változókat a workspace-ből. Sergyán (OE NIK AII) MATLAB 2016. november 13. 14 / 118

Bevezetés a MATLAB-ba Változók és értékadás Változókkal kapcsolatos parancsok Példa >> c l e a r >> who >> mynum = 3 ; >> mynum + 5 ; >> who Your v a r i a b l e s a r e : ans mynum >> c l e a r mynum >> who Your v a r i a b l e s a r e : ans Sergyán (OE NIK AII) MATLAB 2016. november 13. 15 / 118

Bevezetés a MATLAB-ba Változók és értékadás Típusok Változók típusai Osztályok MATLAB-ban a változó típusokat osztályoknak (class) hívjuk. A beépített osztályok a következők: Lebegő pontos számok single, double Előjeles egészek int8, int16, int32, int64 Előjel nélküli egészek uint8, uint16, uint32, uint64 Karakterek char Logikai logical Egészek esetén az ábrázolási tartomány széleit a intmin, illetve intmax függvények adják vissza. Egész osztályok határainak meghatározása >> i n t m i n ( i n t 8 ) 128 >> intmax ( i n t 8 ) 127 Sergyán (OE NIK AII) MATLAB 2016. november 13. 16 / 118

Bevezetés a MATLAB-ba Változók és értékadás Típusok Változók típusai Honnan tudjuk egy adott változó típusát? Az alapértelmezett változó típus a double. A Workspace window-ban a változó neve mellett látható a típusa is. A class függvény visszaadja egy változó típusát. Példa >> v a l = 6 + 3 ; >> c l a s s ( v a l ) double A példában a double kulcsszó balra illesztetten jelenik meg. Ez arra utal, hogy ez egy string. Sergyán (OE NIK AII) MATLAB 2016. november 13. 17 / 118

Bevezetés a MATLAB-ba Változók és értékadás Típusok Típus konverziók Konvertálás más osztályba Példa A konvertálás az osztálynév függvényszerű alkalmazásával történhet (pl. int32(val)) Ha a konvertálandó érték kívül esik az új osztály ábrázolási tartományán, akkor a legközelebbi lehetséges értékre alakít át. >> num = 6 + 3 ; >> numi = i n t 3 2 (num ) ; >> whos Name S i z e Bytes C l a s s A t t r i b u t e s num 1 x1 8 d o u b l e numi 1 x1 4 i n t 3 2 >> i n t 8 ( 2 0 0 ) 127 >> i n t 8 ( 130) 128 Sergyán (OE NIK AII) MATLAB 2016. november 13. 18 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések I. Bevezetés a MATLAB-ba 1 Belépés a MATLAB-ba 2 A fejlesztői környezet 3 Változók és értékadás Típusok 4 Numerikus kifejezések Megjelenés formátuma Operátorok Beépített függvények Konstansok Véletlen számok Összehasonĺıtó operátorok Sergyán (OE NIK AII) MATLAB 2016. november 13. 19 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Kifejezések Mi is az a kifejezés? A kifejezések az alábbi elemekből épülhetnek fel: Példa értékek változók (amik már korábban inicializálva, értelmezve lettek) operátorok beépített függvények saját függvények zárójelek >> 2 s i n ( 1. 4 ) 1.9709 Sergyán (OE NIK AII) MATLAB 2016. november 13. 20 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Megjelenés formátuma Számok megjelenési formátuma A format függvény Lehetőségek: short 4 tizedesjegyen jelenít meg (ez az alapértelmezett) long 15 tizedesjegyen jelenít meg double esetén, 7 tizedesjegyen single esetén shorte, longe Lebegőpontos formátumok shortg, longg A fentiek közül a jobbikat veszi shorteng, longeng Mérnöki formátum (3 jegyen van a hatványkitevő ábrázolva) hex Hexadecimális formátum + Csak az előjelet jeleníti meg bank 2 tizedesjegyen jelenít meg rat Törtformátum A térköz is beálĺıtható loose Az eredmény előtt és után egy-egy sor kimarad (ez az alapértelmezett) compact Tömör megjelenítés Sergyán (OE NIK AII) MATLAB 2016. november 13. 21 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Megjelenés formátuma Számok megjelenési formátuma Példák >> format short, 7/3 2. 3333 >> format compact >> format long, 7/3 2.333333333333333 >> format shorte, 7/3 2. 3333 e+00 >> format shorteng, 7/3 2. 3333 e+000 >> format bank, 7/3 2. 3 3 >> format +, 7/3 + >> format rat, 7/3 7/3 Sergyán (OE NIK AII) MATLAB 2016. november 13. 22 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Megjelenés formátuma Két megjegyzés Megjegyzések Egy sorba akár több utasítás is írható, egymástól vesszővel elválasztva Túl hosszú utasítások több sorba is törhetők a... operátor használatával Példa >> 3 + 55 62 + 4 5... + 22 1 16 Sergyán (OE NIK AII) MATLAB 2016. november 13. 23 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Operátorok Operátorok leggyakrabban használt matematikai műveletek + Összeadás - Ellentett képzés, kivonás * Szorzás / Osztás (10/5 egyenlő 2) \ Balról osztás (5\10 egyenlő 2) Az okát majd később értjük meg! ^ Hatványozás (5^2 egyenlő 25) Sergyán (OE NIK AII) MATLAB 2016. november 13. 24 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Operátorok Normál alak megadás Az e operátor Az e segítségével normál alakot gyorsabban tudunk képezni Példa >> 2 10ˆ4 20000 >> 2 e4 20000 Sergyán (OE NIK AII) MATLAB 2016. november 13. 25 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Operátorok Operátorok precedenciája Precedencia lista 1. szint ( ) 2. szint ^ 3. szint - (ellentett képzés) 4. szint *, /, \ 5. szint +, - Sergyán (OE NIK AII) MATLAB 2016. november 13. 26 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Beépített függvények Beépített függvények Függvények hívása A függvények hívása a szokásos módon történik. A függvény neve után zárójelek között írjuk a paramétereket. Ha olyan függvényt hívunk, amelynek nincs paramétere (bemenete), akkor elhagyhatók a zárójelek. Lehet ilyet csinálni? >> s i n ( 3. 1 ) 141/ 3391 >> s i n = 45 Sergyán (OE NIK AII) MATLAB 2016. november 13. 27 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Beépített függvények Válasz a kérdésre Azért vigyázzunk ezzel! >> s i n ( 3. 1 ) 141/3391 >> s i n = 45 s i n = 45 >> s i n ( 3. 1 ) S u b s c r i p t i n d i c e s must e i t h e r be r e a l p o s i t i v e i n t e g e r s o r l o g i c a l s. >> who Your v a r i a b l e s a r e : ans s i n >> c l e a r s i n >> who Your v a r i a b l e s a r e : ans >> s i n ( 3. 1 ) 141/3391 Sergyán (OE NIK AII) MATLAB 2016. november 13. 28 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Beépített függvények Matematikai függvények Gyakran használt függvények abs fix floor ceil round mod rem sign sqrt nthroot log log2 log10 exp Abszolút érték Egészre kerekítés a 0 felé Egészre kerekítés lefelé Egészre kerekítés felfelé Egészre kerekítés a legközelebbi egész felé Maradékos osztás Ez is maradékos osztás Előjel függvény Négyzetgyök n-edik gyök természetes logaritmus 2-es alapú logaritmus 10-es alapú logaritmus exponenciális függvény Sergyán (OE NIK AII) MATLAB 2016. november 13. 29 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Beépített függvények Matematikai függvények Trigonometrikus és hiperbolikus függvények sin asin sinh asinh sind asind cos, acos, cosh, acosh, cosd, acosd tan, atan, tanh, atanh, tand, atand cot, acot, coth, acoth, cotd, acotd szinusz arkusz-szinusz szinusz-hiperbolikusz area-szinusz-hiperbolikusz szinusz (de nem radiánban) arkusz-szinusz (de nem radiánban) koszinusz függvények tangens függvények kotangens függvények További alapvető matematikai függvények help elfun kilistázza a további függvényeket Sergyán (OE NIK AII) MATLAB 2016. november 13. 30 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Konstansok Konstansok Előre definiált konstansok pi π értéke i vagy j komplex egységgyök, azaz 1 inf NaN nem szám (pl. 0 ) 0 eps az 1-nél nagyobb legkisebb ábrázolható lebegőpontos szám 1-től vett eltérése realmin a 0-hoz legközelebbi pozitív lebegőpontos szám értéke realmax a legnagyobb ábrázolható lebegőpontos szám értéke Vigyázat! Ezek is felüĺırhatók! Persze ez nem mindig baj: az i-t használhatjuk ciklusváltozóként. Sergyán (OE NIK AII) MATLAB 2016. november 13. 31 / 118

A % jel Sergyán utáni (OE rész NIKkommentként AII) kezelt, azaz nem MATLAB foglalkozik vele az interpreter. 2016. november 13. 32 / 118 Bevezetés a MATLAB-ba Numerikus kifejezések Véletlen számok Véletlenszám generálás rand függvény Példa A rand függvény egy 0 és 1 közötti pszeudovéletlen számot generál (nyílt intervallumon) A véletlen generálás seed értéke mindig ugyanaz a MATLAB indulásakor Az rng függvénnyel lehet a seed értéket módosítani rng( shuffle ): Az aktuális órajelből generál új értéket rng(intseed): Egy konkrét egész számot megadhatunk, mint új seed érték rng( default ): Az eredeti értéket álĺıtja vissza >> s t a t e r n g = rng ; % g e t s s t a t e >> randone = rand randone = 0. 9058 >> rng ( s t a t e r n g ) ; % r e s t o r e s t h e s t a t e >> randtwo = rand % same as randone randtwo = 0. 9058

Bevezetés a MATLAB-ba Numerikus kifejezések Véletlen számok További véletlen generátorok A randn függvény Standard normális eloszlású véletlen számot generál A randi függvény A randi véletlen egész számot generál. randi(imax): 1 és imax közötti egészt álĺıt elő, beleértbe a határokat is randi([imin, imax]): imin és imax közötti véletlen egészt álĺıt elő, a határokat is beleértve a tartományba Sergyán (OE NIK AII) MATLAB 2016. november 13. 33 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Összehasonĺıtó operátorok Összehasonĺıtó operátorok Összefoglaló táblázat > nagyobb mint < kisebb mint >= nagyobb vagy egyenlő <= kisebb vagy egyenlő == egyenlő ~= nem egyenlő Sergyán (OE NIK AII) MATLAB 2016. november 13. 34 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Összehasonĺıtó operátorok Összehasonĺıtás eredménye Összehasonĺıtó operátorok eredményei Példa Az eredmény logikai típusú érték lesz 1 jelenti az igazat 0 pedig a hamisat >> 3 < 5 1 >> 2 > 9 0 >> c l a s s ( ans ) l o g i c a l Sergyán (OE NIK AII) MATLAB 2016. november 13. 35 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Összehasonĺıtó operátorok Logikai műveletek Operátorok vagy && és ~ negálás xor függvény Függvényként implementálva létezik a kizáró vagy is Példák >> 2 < 4 a == c 1 >> xor (3 < 5, a < c ) 0 Sergyán (OE NIK AII) MATLAB 2016. november 13. 36 / 118

Bevezetés a MATLAB-ba Numerikus kifejezések Összehasonĺıtó operátorok Operátorok precedenciája Precedencia szabályok Operátorok Zárójelek: ( ) Hatványozás: ^ Ellentett képzés: -, tagadás: ~ Szorzás, osztások: *, /, \ Összeadás, kivonás: +, - Összehasonĺıtások: <, <=, >, >=, ==, ~= És: && Vagy: Értékadás: = Precedencia legmagasabb legalacsonyabb Sergyán (OE NIK AII) MATLAB 2016. november 13. 37 / 118

II. Vektorok és mátrixok Sergyán (OE NIK AII) MATLAB 2016. november 13. 38 / 118

Vektorok és mátrixok II. Vektorok és mátrixok 5 Vektorok és mátrixok Sorvektorok Oszlopvektorok Mátrixok Dimenziók Üres mátrixok 6 Vektorok és mátrixok mint függvény argumentumok 7 Skalár- és elemenként műveletek 8 Mátrix szorzás Mátrix szorzás vektorok esetén 9 Logikai vektorok és mátrixok Mátrixok közötti relációk Beépített logikai függvények 10 Alkalmazásokhoz hasznos függvények Sergyán (OE NIK AII) MATLAB 2016. november 13. 39 / 118

Vektorok és mátrixok Az alapvető építőkő a mátrix A MATLAB-ban minden mátrix A számok 1 1-es mátrixok A sorvektorok 1 N-es mátrixok A karaktertömbök sorvektorokként vannak ábrázolva Az oszlopvektorok M 1-es mátrixok Léteznek többdimenziós mátrixok is, ezeket hívjuk itt tömböknek. A dimenziók száma nem limitált. Sergyán (OE NIK AII) MATLAB 2016. november 13. 40 / 118

Vektorok és mátrixok Sorvektorok Sorvektorok létrehozása Szintaktika Sorvektorokat úgy hozhatunk létre, hogy szögletes zárójelek között (ez a mátrixképző operátor) felsoroljuk a vektor elemeit Az elemeket szóköz vagy vessző választja el egymástól Példa >> v = [ 1 2 3 4 ] v = 1 2 3 4 >> v = [ 1, 2, 3, 4 ] v = 1 2 3 4 Sergyán (OE NIK AII) MATLAB 2016. november 13. 41 / 118

Vektorok és mátrixok Sorvektorok A : operátor Szintaktika A kettőspont operátor alkalmas egyesével növekvő elemű sorvektor létrehozására. Szintaktikája: startvalue : endvalue. Létrejön egy sorvektor, melynek első eleme megegyezik a startvalue-val, azt követő elemei egyesével növekednek, utolsó eleme pedig nem nagyobb az endvalue-nál. Ha nem egyesével növekvő elemeket akarunk előálĺıtani, akkor használjuk a startvalue : increment : endvalue formát. Ilyenkor az elemek az increment értékkel fogják egymást követni. Példák >> vec = 1 : 5 vec = 1 2 3 4 5 >> nv = 1 : 2 : 9 nv = 1 3 5 7 9 >> nv2 = 9 : 2 : 0 nv2 = 9 7 5 3 1 Sergyán (OE NIK AII) MATLAB 2016. november 13. 42 / 118

Vektorok és mátrixok Sorvektorok Egyenletesen elosztott elemeket tartalmazó vektor linspace függvény Szintaktika: linspace(x,y,n) Létrehoz egy n + 1 elemű sorvektort, melynek első eleme x, utolsó eleme y, a többi elem pedig lineáris van elosztva a két végérték között. Úgy is fogalmazhatunk, hogy az x és y végpontokból álló intervallumot felosztjuk n darab egyenlő hosszúságú részre. Példa >> l s = l i n s p a c e ( 3, 1 5, 5 ) l s = 3 6 9 12 15 Sergyán (OE NIK AII) MATLAB 2016. november 13. 43 / 118

Vektorok és mátrixok Sorvektorok Logaritmikus felosztás A logspace függvény Szintaktika: logspace(x,y,n) Létrehoz egy sorvektort, melynek első eleme a 10 x, utolsó eleme pedig a 10 y. A többi elem egy logaritmikus intervallum felosztáshoz szükséges n 1 darab osztópont lesz. Példa logspace ( 1, 5, 5 ) 10 100 1000 10000 100000 Sergyán (OE NIK AII) MATLAB 2016. november 13. 44 / 118

Vektorok és mátrixok Sorvektorok Sorvektorok konkatenációja Két vagy több sorvektorból egy sorvektor képzése A mátrix képző operátor két (vagy több) sorvektorból is egy sorvektort képez Ha a szögletes zárójelek közé írunk két sorvektort, ezekből lesz egy új Példa >> newvec = [ nv l s ] newvec = 1 3 5 7 9 3 6 9 12 15 Sergyán (OE NIK AII) MATLAB 2016. november 13. 45 / 118

Vektorok és mátrixok Sorvektorok Elemekre hivatkozás és elemek módosítása Indexelés A vektor indexét a vektor neve mögé írt zárójelek közé írjuk Az indexelés mindig 1-től indul és az indexek 1-esével növekednek Indexként használhatunk egyetlen számot, ilyenkor egy konkrét elemre hivatkozunk Indexként használhatjuk a : operátorral összekapcsolt számokat is. Ilyenkor a vektor összes olyan elemére hivatkozunk, amiket a : operátor előálĺıt indexként. Indexként használhatunk sorvektort is. Ilyenkor a sorvektor elemei által indexelt összes elemre hivatkozunk. Indexelésnél használhatjuk az end kulcsszót, ami a vektor utolsó elemének indexét adja meg. Értékadás esetén indexként használhatunk a vektor hosszánál nagyobb értéket is, ilyenkor a vektor mérete automatikusan megnövekszik. A hivatkozott új elem megkapja az átadott értéket, a többi új elem pedig automatikusan 0 értéket vesz fel. Sergyán (OE NIK AII) MATLAB 2016. november 13. 46 / 118

Vektorok és mátrixok Sorvektorok Elemekre hivatkozás és elemek módosítása Példák indexelésre elem hivatkozás esetén >> newvec ( 5 ) 9 >> b = newvec ( 4 : 6 ) b = 7 9 3 >> newvec ( [ 1 10 5 ] ) 1 15 9 >> newvec ( end ) 15 Sergyán (OE NIK AII) MATLAB 2016. november 13. 47 / 118

Vektorok és mátrixok Sorvektorok Elemekre hivatkozás és elemek módosítása Példák indexelésre elem módosítás esetén >> b ( 2 ) = 11 b = 7 11 3 >> r v = [ 3 55 1 1 ] r v = 3 55 11 >> r v ( 4 ) = 2 r v = 3 55 11 2 >> r v ( 6 ) = 13 r v = 3 55 11 2 0 13 Sergyán (OE NIK AII) MATLAB 2016. november 13. 48 / 118

Vektorok és mátrixok Oszlopvektorok Oszlopvektorok Oszlopvektorok előálĺıtása Oszlopvektorokat előálĺıthatunk a mátrixképző operátorral ([ ]), de a felsorolt elemek közé ilyenkor ;-t kell tenni. Oszlopvektor képezhető már meglévő oszlopvektorok konkatenációjaként is, hasonlóan a sorvektorok konkatenációjához, de ilyenkor is ;-t kell használni. Oszlopvektor előálĺıtható már meglévő sorvektor transzponáltjaként is. Ehhez a transzponáló operátort kell használni. (Teljesen pontosan a. operátort, mert a komplex konjugálás és transzponálás együttes operátora.) Oszlopvektorok indexelése Ugyanazok a szabályok érvényesek mint a sorvektoroknál. Sergyán (OE NIK AII) MATLAB 2016. november 13. 49 / 118

Vektorok és mátrixok Oszlopvektorok Oszlopvektorok Példák >> c = [ 1 ; 2 ; 3 ; 4 ] c = 1 2 3 4 >> r = 1 : 3 ; >> c = r c = 1 2 3 Sergyán (OE NIK AII) MATLAB 2016. november 13. 50 / 118

Vektorok és mátrixok Mátrixok Mátrixok létrehozása Szóhasználat Vektor (vector): Egydimenziós tömb, ami lehet sorvektor, vagy oszlopvektor is Mátrix (matrix): Kétdimenziós tömb Tömb (array): Többdimenziós tömb Mátrix létrehozása az elemek felsorolásával Mátrixot megadhatunk úgy, hogy a mátrixképző operátorok ([ ]) között felsoroljuk az elemeket. Az egy sorba lévőket szóközzel (vagy vesszővel) választjuk el egymástól, a sorok végére (kivéve az utolsó sort) pedig ;-t teszünk. >> mat = [ 4 3 1 ; 2 5 6 ] mat = 4 3 1 2 5 6 Az elemek felsorolásánál ügyeljünk arra, hogy minden sorban azonos számú elem legyen! >> mat = [ 3 5 7 ; 1 2 ] E r r o r u s i n g v e r t c a t Dimensions o f m a t r i c e s b e i n g c o n c a t e n a t e d a r e not c o n s i s t e n t. Sergyán (OE NIK AII) MATLAB 2016. november 13. 51 / 118

Vektorok és mátrixok Mátrixok Mátrixok létrehozása Vektorok konkatenációja Mátrixot előálĺıthatunk sorvektorok függőleges, vagy oszlopvektorok vízszintes konkatenációjaként is. Ilyen esetben is figyelni kell a méretbeli megfelelő egyezőségekre. A használt vektorok akár a : operátorral is előálĺıthatók. Példák >> mat = [ 2 : 4 ; 3 : 5 ] mat = 2 3 4 3 4 5 >> newmat = [ [ 1 2 3 ] [ 3 ; 4 ; 6 ] [ 8 : 3 : 2 ] ] newmat = 1 3 8 2 4 5 3 6 2 Sergyán (OE NIK AII) MATLAB 2016. november 13. 52 / 118

Vektorok és mátrixok Mátrixok Mátrixok létrehozása beépített függvényekkel Néhány a lehetséges függvények közül rand randn randi zeros ones Véletlen számokból álló mátrixot álĺıt elő, ahol a számok a korábban megismertek szerint generálódnak. Meghívható egy paraméterrel vagy több paraméterrel is. Első esetben egy négyzetes mátrix jön létre, második esetben pedig egy adott sor- és oszlopszámú mátrix. Hasonlóan működik mint a rand, csak más a véletlen számok eloszlása. Ez is hasonló az előzőkhöz, de itt van egy plusz paraméter (az első), mivel az egyetlen véletlen számot előálĺıtó randi-nek is volt egy paramétere. Csupa nullákból álló mátrixot hoz létre. Paraméterezése a rand-hoz hasonló. Csupa egyesekből álló mátrixot álĺıt elő, hasonló paraméterezéssel, mint az eddigiek. Sergyán (OE NIK AII) MATLAB 2016. november 13. 53 / 118

Vektorok és mátrixok Mátrixok Mátrixok létrehozása beépített függvényekkel Példák véletlen mátrixokra >> rand ( 2 ) 0. 8147 0. 1 2 70 0. 9058 0. 9 1 34 >> randn ( 1, 3 ) 0. 3188 1.3077 0.4336 >> r a n d i ( [ 5, 1 0 ], 2) 8 10 10 5 >> r a n d i ( [ 1 0, 3 0 ], 2, 3) 30 20 12 30 26 18 Példák konstans mátrixokra >> z e r o s ( 3 ) 0 0 0 0 0 0 0 0 0 >> ones ( 2, 4 ) 1 1 1 1 1 1 1 1 >> 5 ones ( 1, 4 ) 5 5 5 5 Sergyán (OE NIK AII) MATLAB 2016. november 13. 54 / 118

Vektorok és mátrixok Mátrixok Mátrix elemekre hivatkozás Indexelés Az indexelés nagyon hasonló a vektorok indexelésére Itt viszont egy sor- és egy oszlopindex is szükséges Ezeket egymást követően vesszővel elválasztva írjuk zárójelek közé Példa >> mat = [ 2 : 4 ; 3 : 5 ] mat = 2 3 4 3 4 5 >> mat ( 2, 3 ) 5 Sergyán (OE NIK AII) MATLAB 2016. november 13. 55 / 118

Vektorok és mátrixok Mátrixok A mátrix egy részmátrixára hivatkozás Indexelés vektorokkal Példák A sor- illetve oszlopindex helyére akár egy vektort is írhatunk, így a mátrix egy részmátrixára tudunk hivatkozni. Ha az összes lehetséges sorra vagy oszlopra akarunk hivatkozni, akkor a : operátort önmagában is használhatjuk indexként (a 1 : end helyett). >> mat ( 2, 3 ) 5 >> mat (1 : 2, 2 : 3) 3 4 4 5 >> mat ( 1, : ) 2 3 4 >> mat ( :, 2) 3 4 Sergyán (OE NIK AII) MATLAB 2016. november 13. 56 / 118

Vektorok és mátrixok Mátrixok Indexelés egy indexszel Mátrixok tárolása a memóriában Példa Mivel a MATLAB oszlopfolytonosan tárolja a mátrixok elemeit a memóriában, így egyetlen indexszel is hivatkozhatunk egy elemre. Ha egyetlen indexként a : operátort használjuk, akkor a mátrix összes elemét kapjuk vissza oszlopvektoros alakban. A memóriában így vannak eltárolva az elemek. >> i n t m a t = [ 1 0 0 7 7 ; 28 1 4 ] i n t m a t = 100 77 28 14 >> intmat ( 1 ) 100 >> intmat ( 2 ) 28 >> intmat ( 3 ) 77 >> intmat ( 4 ) 14 A mátrix összes eleme >> i n t m a t ( : ) 100 28 77 14 Sergyán (OE NIK AII) MATLAB 2016. november 13. 57 / 118

Vektorok és mátrixok Mátrixok Elemek módosítása, értékadás Egy elem, több elem és nemlétező elem módosítása A mátrix egy elemének értékét módosíthatjuk az elemre történő hivatkozással és értékadással. Egyszerre több elemét is módosíthatjuk a mátrixnak, ha egy részmátrixra hivatkozunk és értékül egyetlen értéket vagy egy olyan mátrixot adunk, ami a részmátrixszal egyező méretű. Ha olyan elemre hivatkozunk, amely még nem létezik, akkor a vektorokhoz hasonló történik a mátrixokkal is. Értékadás létező elem(ek)nek >> mat = [ 2 : 4 ; 3 : 5 ] mat = 2 3 4 3 4 5 >> mat ( 1, 2 ) = 11 mat = 2 11 4 3 4 5 >> mat ( 2, : ) = 5 : 7 mat = 2 11 4 5 6 7 >> mat ( :, 3 ) = 0 mat = 2 11 0 5 6 0 Értékadás (még) nemlétező elem(ek)nek >> mat ( :, 4 ) = [ 9 2 ] mat = 2 11 0 9 5 6 0 2 >> mat ( 4, : ) = 2 : 2 : 8 mat = 2 11 0 9 5 6 0 2 0 0 0 0 2 4 6 8 Sergyán (OE NIK AII) MATLAB 2016. november 13. 58 / 118

Vektorok és mátrixok Dimenziók Vektorok és mátrixok mérete Méretet visszaadó függvények Egy vektor hosszát visszakaphatjuk a length függvény használatával. A mátrix méretét pedig a size függvény adja meg. A size függvény visszatérési értéke egy sorvektor, mely az egyes dimenziók menti méretet tartalmazza. A size függvény meghívható úgy is, hogy a visszatérési értékei (sor- és oszlopszám) két külön változóba kerüljenek. A size függvény meghívható két paraméterrel is. Ilyenkor a második paraméternél megadhatjuk, hogy melyik dimenzió mentén érdekel a mátrix mérete. A visszatérési érték ebben az esetben csak egy szám lesz. A mátrix elemeinek számát a numel függvény adja meg. (Az elemszám természetesen a sorok és oszlopok számának szorzata.) Sergyán (OE NIK AII) MATLAB 2016. november 13. 59 / 118

Vektorok és mátrixok Dimenziók Vektorok és mátrixok mérete Példa (vektor) >> vec = 2 : 1 vec = 2 1 0 1 >> l e n g t h ( vec ) 4 >> s i z e ( vec ) 1 4 >> numel ( vec ) 4 Példa (mátrix) >> mat = [ 1 : 3 ; 5 : 7 ] mat = 1 2 3 5 6 7 >> s i z e ( mat ) 2 3 >> [ r, c ] = s i z e ( mat ) r = 2 c = 3 >> l e n g t h ( mat ) 3 >> numel ( mat ) 6 Példa (size) >> s i z e ( mat, 1 ) 2 >> s i z e ( mat, 2 ) 3 Sergyán (OE NIK AII) MATLAB 2016. november 13. 60 / 118

Vektorok és mátrixok Dimenziók Helyfoglalás a memóriában Kérdés Hogyan tudunk a memóriában helyet foglalni egy adott mátrixszal (mat) azonos méretű másik mátrix számára? Válasz zeros(size(mat)) Sergyán (OE NIK AII) MATLAB 2016. november 13. 61 / 118

Vektorok és mátrixok Dimenziók Mátrix utolsó elemére hivatkozás end vagy méretet visszaadó függvények? Egy vektor (vec) utolsó elemére kétféle módon is tudunk hivatkozni vec(end) vec(length(vec)) Egy mátrix (mat) esetén is hasonló lehetőségeink vannak: Pl.: mat(:,end) vagy mat(:,size(mat,2)) Pl.: mat(end,end) vagy mat(end) vagy mat(size(mat,1),size(mat,2)) vagy mat(numel(mat)) Ezek közül mindig az end indexelő használata javasolt Sergyán (OE NIK AII) MATLAB 2016. november 13. 62 / 118

Vektorok és mátrixok Dimenziók Mátrix méretének megváltoztatása A reshape függvény Példa A reshape függvénnyel meg tudjuk változtatni a mátrix elemeinek elosztását a mátrixban. A függvény három paramétert vár A módosítandó mátrix Az új mátrix sorainak száma Az új mátrix oszlopainak száma Az eredeti mátrix elemei oszlopfolytonos bejárásnak megfelelően kerülnek az új mátrixba Az átalakítás során a mátrix elemeinek száma nem változhat >> mat = r a n d i ( 1 0 0, 3, 4) mat = 71 5 70 4 4 10 32 44 28 83 96 39 >> r eshape ( mat, 2, 6) 71 28 10 70 96 44 4 5 83 32 4 39 Sergyán (OE NIK AII) MATLAB 2016. november 13. 63 / 118

Vektorok és mátrixok Dimenziók Mátrix elemeinek többszörözése A repmat függvény Példa A repmat függvény egy mátrixot önmagával képes sorok és oszlopok mentén is konkatenálni Három paramétere van Az eredeti mátrix A sorok száma hányszorosára növekedjen Az oszlopok száma hányszorosára növekedjen >> i n t m a t = r a n d i ( 1 0 0, 2 ) i n t m a t = 77 19 80 49 >> repmat ( intmat, 3, 2) 77 19 77 19 80 49 80 49 77 19 77 19 80 49 80 49 77 19 77 19 80 49 80 49 Sergyán (OE NIK AII) MATLAB 2016. november 13. 64 / 118

Vektorok és mátrixok Dimenziók Sorok, oszlopok cseréje, a mátrix elforgatása Függvények fliplr Tükrözi a mátrixot egy függőleges tengely mentén flipud Tükrözi a mátrixot egy vízszintes tengely mentén rot90 Elforgatja a mátrixot +90 -kal Második paraméterként megadható, hogy hányszor forgasson Tükrözés >> mat mat = 71 5 70 4 4 10 32 44 28 83 96 39 >> f l i p l r ( mat ) 4 70 5 71 44 32 10 4 39 96 83 28 >> f l i p u d ( mat ) 28 83 96 39 4 10 32 44 71 5 70 4 Forgatás >> r o t 9 0 ( mat ) 4 44 39 70 32 96 5 10 83 71 4 28 >> r o t 9 0 ( mat, 2 ) 39 96 83 28 44 32 10 4 4 70 5 71 >> r o t 9 0 ( mat, 1) 28 4 71 83 10 5 96 32 70 39 44 4 Sergyán (OE NIK AII) MATLAB 2016. november 13. 65 / 118

Vektorok és mátrixok Dimenziók Tükrözés Tükrözés másként >> mat ( :, end : 1 : 1) 4 70 5 71 44 32 10 4 39 96 83 28 >> mat ( end : 1 : 1, : ) 28 83 96 39 4 10 32 44 71 5 70 4 Sergyán (OE NIK AII) MATLAB 2016. november 13. 66 / 118

Vektorok és mátrixok Üres mátrixok Üres mátrixok Üres mátrix létrehozása Példa Az üres mátrix olyan mátrix, melynek nincs eleme Létrehozni a mátrixképző operátorral lehet úgy, hogy nem írunk semmit a szögletes zárójelek közé Természetesen konkatenálni üres mátrixot is lehet >> e v e c = [ ] e v e c = [ ] >> l e n g t h ( e v e c ) 0 >> e v e c = [ e v e c 4 ] e v e c = 4 >> e v e c = [ e v e c 1 1 ] e v e c = 4 11 Sergyán (OE NIK AII) MATLAB 2016. november 13. 67 / 118

Vektorok és mátrixok Üres mátrixok Elemek törlése Törlés az üres mátrix segítségével Vektorok és mátrixok elemeit az üres mátrixszal lehet törölni Mátrixok esetén csak teljes sorok vagy oszlopok törölhetők A törlést követően a megmarad elemek indexe megváltozik Törlés vektorból >> vec = 4 : 8 vec = 4 5 6 7 8 >> vec ( 3 ) = [ ] vec = 4 5 7 8 >> vec = 3 : 10 vec = 3 4 5 6 7 8 9 10 >> vec (2 : 4) = [ ] vec = 3 7 8 9 10 Törlés mátrixból >> mat = [ 7 9 8 ; 4 6 5 ] mat = 7 9 8 4 6 5 >> mat (1,2) = [ ] S u b s c r i p t e d a s s i g n m e n t d i m e n s i o n mismatch. >> mat ( :, 2 ) = [ ] mat = 7 8 4 5 >> mat = [ 7 9 8 ; 4 6 5 ] mat = 7 9 8 4 6 5 >> mat (3) = [ ] mat = 7 4 6 8 5 Sergyán (OE NIK AII) MATLAB 2016. november 13. 68 / 118

Vektorok és mátrixok Üres mátrixok Három dimenziós tömbök Nincs újdonság Minden eddig elmondott igaz itt is, csak bejön egy újabb dimenzió, így pl. indexelni már három értékkel fogunk. A harmadik dimenziót rétegnek nevezzük. Két mátrix létrehozása >> layerone = reshape (1 : 15, 3, 5) l a y e r o n e = 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 >> l a y e r t w o = f l i p l r ( f l i p u d ( l a y e r o n e ) ) l a y e r t w o = 15 12 9 6 3 14 11 8 5 2 13 10 7 4 1 A 3-dimenziós tömb létrehozása >> mat ( :, :, 1 ) = l a y e r o n e mat = 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 >> mat ( :, :, 2 ) = l a y e r t w o mat ( :, :, 1 ) = 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 mat ( :, :, 2 ) = 15 12 9 6 3 14 11 8 5 2 13 10 7 4 1 >> s i z e ( mat ) 3 5 2 Sergyán (OE NIK AII) MATLAB 2016. november 13. 69 / 118

Vektorok és mátrixok mint függvény argumentumok II. Vektorok és mátrixok 5 Vektorok és mátrixok Sorvektorok Oszlopvektorok Mátrixok Dimenziók Üres mátrixok 6 Vektorok és mátrixok mint függvény argumentumok 7 Skalár- és elemenként műveletek 8 Mátrix szorzás Mátrix szorzás vektorok esetén 9 Logikai vektorok és mátrixok Mátrixok közötti relációk Beépített logikai függvények 10 Alkalmazásokhoz hasznos függvények Sergyán (OE NIK AII) MATLAB 2016. november 13. 70 / 118

Vektorok és mátrixok mint függvény argumentumok Függvények hatása vektorokra és mátrixokra Ciklusmentes megoldás Ha egy (matematikai) függvény argumentuma egy mátrix, akkor a függvény kimenete egy ugyanolyan méretű mátrix lesz mint az eredeti volt, az elemek pedig a megfelelő eredeti elem függvény által előálĺıtott értékei. a 11 a 12 a 1n f (a 11) f (a 12) f (a 1n) a 21 a 22 a 2n f (A) = f........ = f (a 21) f (a 22) f (a 2n)........ a m1 a m2 a mn f (a m1) f (a m2) f (a mn) Ebből következik, hogy nem kell ciklussal bejárnunk a mátrixot, ha minden értékre ugyanazzal a függvénnyel akarunk hatni. Sergyán (OE NIK AII) MATLAB 2016. november 13. 71 / 118

Vektorok és mátrixok mint függvény argumentumok Függvények hatása vektorokra és mátrixokra Vektor függvény paramétereként >> vec = 2 : 1 vec = 2 1 0 1 >> s i n v e c = s i n ( vec ) s i n v e c = 0.9093 0.8415 0 0. 8415 Mátrix függvény paramétereként >> mat = [ 0 4 3; 1 0 2 ] mat = 0 4 3 1 0 2 >> s i g n ( mat ) 0 1 1 1 0 1 Sergyán (OE NIK AII) MATLAB 2016. november 13. 72 / 118

Vektorok és mátrixok mint függvény argumentumok Statisztikai függvények hatása vektorokra és mátrixokra Statisztikai függvények másként viselkednek Az ún. statisztikai függvények (pl. min, max, sum, prod, cumsum, cumprod) nem az egyes elemekre hatnak, hanem elemek egy adott halmazán végeznek műveleteket. Ha vektor a függvény paramétere, akkor a függvény a vektor minden elemére hat. (Például minden eleméből választja ki a minimális értékűt, vagy mindet összegzi.) Ha mátrix a függvény paramétere, akkor az egy oszlopban lévő elemekre úgy hat mint egy oszlopvektorra, és így a függvény visszatérési értéke (általában) egy olyan sorvektor lesz, melynek oszlopszáma megegyezik a bemeneti mátrix oszlopszámával. Sergyán (OE NIK AII) MATLAB 2016. november 13. 73 / 118

Vektorok és mátrixok mint függvény argumentumok Statisztikai függvények hatása vektorokra és mátrixokra Példák vektorok esetén >> vec1 = 1 : 5 ; >> vec2 = [ 3 5 8 2 ] ; >> min ( vec1 ) 1 >> max( vec2 ) 8 >> sum( vec1 ) 15 >> prod ( vec2 ) 240 cumsum és cumprod Ezek a függvények halmozott összeget, illetve szorzatot álĺıtanak elő. >> cumsum( vec1 ) 1 3 6 10 15 >> cumsum( vec2 ) 3 8 16 18 >> cumprod ( vec1 ) 1 2 6 24 120 Sergyán (OE NIK AII) MATLAB 2016. november 13. 74 / 118

Vektorok és mátrixok mint függvény argumentumok Statisztikai függvények hatása vektorokra és mátrixokra Példa mátrixok esetére >> mat = r a n d i ( [ 1 2 0 ], 3, 5) mat = 17 19 6 20 20 19 13 11 4 10 3 2 20 20 17 >> max( mat ) 19 19 20 20 20 >> sum ( mat ) 39 34 37 44 47 Soronként is lehet dolgozni >> max( mat ) 20 19 20 >> sum ( mat ) 82 57 62 >> max( mat, [ ], 2 ) 20 19 20 >> sum ( mat, 2 ) 82 57 62 Sergyán (OE NIK AII) MATLAB 2016. november 13. 75 / 118

Vektorok és mátrixok mint függvény argumentumok Mátrix összes elemének összege Kérdés Hogyan lehet egy mátrix össze elemének összegét meghatározni? A sum(mat) biztos nem megoldás, mert az oszlopokat összegzi Válasz Összegezzük az oszlopokban lévő értékeket, majd az előálló összegeket ismét összegezzük. sum(sum( mat ) ) Vegyük a mátrix oszlopvektoros reprezentációját és összegezzük az elemeket. \sum( mat ( : ) ) Sergyán (OE NIK AII) MATLAB 2016. november 13. 76 / 118

Vektorok és mátrixok mint függvény argumentumok Halmozott összeg és szorzat mátrixok esetén Természetesen ezek is oszloponként dolgoznak >> mat mat = 3 16 1 14 8 9 20 17 16 14 19 14 19 15 4 >> cumsum( mat ) 3 16 1 14 8 12 36 18 30 22 31 50 37 45 26 Sergyán (OE NIK AII) MATLAB 2016. november 13. 77 / 118

Skalár- és elemenként műveletek II. Vektorok és mátrixok 5 Vektorok és mátrixok Sorvektorok Oszlopvektorok Mátrixok Dimenziók Üres mátrixok 6 Vektorok és mátrixok mint függvény argumentumok 7 Skalár- és elemenként műveletek 8 Mátrix szorzás Mátrix szorzás vektorok esetén 9 Logikai vektorok és mátrixok Mátrixok közötti relációk Beépített logikai függvények 10 Alkalmazásokhoz hasznos függvények Sergyán (OE NIK AII) MATLAB 2016. november 13. 78 / 118

Skalár- és elemenként műveletek Skalárral végzett műveletek Skalár műveletek Egy számot hozzáadhatunk egy vektorhoz vagy mátrixhoz. Természetesen ez kivonással is elvégezhető. Skalárral szorozhatunk vagy oszthatunk is mátrixot. Minden esetben a skalárral végzett művelet a mátrix minden egyes elemére külön-külön fog hatni. Példa vektor esetére >> v = [ 3 7 2 1 ] ; >> v = v 3 v = 9 21 6 3 >> v = [ 3 7 2 1 ] ; >> v / 2 1. 5000 3. 5000 1. 0 000 0. 5000 Példa mátrix esetére >> mat = [ 4 : 6 ; 3 : 1 : 1 ] mat = 4 5 6 3 2 1 >> mat 2 8 10 12 6 4 2 Sergyán (OE NIK AII) MATLAB 2016. november 13. 79 / 118

Skalár- és elemenként műveletek Elemenkénti műveletek Elemenkénti műveletek Elemenként műveletek csak azonos méretű mátrixok esetén értelmezhetők Az elemenkénti műveletek két mátrix ugyanolyan indexű elemeire hatnak és eredményül az eredetikkel azonos méretű mátrixot szolgáltatnak Ilyen műveletek a matematikából már ismert mátrix összeadás és kivonás Két vektor összege >> v1 = 2 : 5 v1 = 2 3 4 5 >> v2 = [ 3 3 11 5 1 ] v2 = 33 11 5 1 >> v1 + v2 35 14 9 6 Mátrixok különbsége >> mata = [ 5 : 8 ; 9 : 2 : 3 ] mata = 5 6 7 8 9 7 5 3 >> matb = reshape (1 : 8, 2, 4) matb = 1 3 5 7 2 4 6 8 >> mata matb 4 3 2 1 7 3 1 5 Sergyán (OE NIK AII) MATLAB 2016. november 13. 80 / 118

Skalár- és elemenként műveletek További elemenkénti műveletek Ilyenek matematikában nincsenek Értelmezzük az elemenként szorzást (.*), osztást (./,.\) és hatványozást (.^) is Az értelmezés ugyanaz, mint az összeadásnál és kivonásnál volt Példa vektorokkal >> v = [3 7 2 1 ] ; >> v ˆ 2 E r r o r u s i n g ˆ I n p u t s must be a s c a l a r and a square matrix. To compute elementwise POWER, use POWER (. ˆ ) instead. >> v. ˆ 2 9 49 4 1 >> v1 = 2 : 5 v1 = 2 3 4 5 >> v2 = [ 3 3 11 5 1 ] v2 = 33 11 5 1 >> v1. v2 66 33 20 5 Példa mátrixokkal >> mata = [ 5 : 8 ; 9 : 2 : 3 ] mata = 5 6 7 8 9 7 5 3 >> matb = reshape (1 : 8, 2, 4) matb = 1 3 5 7 2 4 6 8 >> mata. / matb 5.0000 2.0000 1.4000 1.1429 4.5000 1.7500 0.8333 0.3750 Sergyán (OE NIK AII) MATLAB 2016. november 13. 81 / 118

Mátrix szorzás II. Vektorok és mátrixok 5 Vektorok és mátrixok Sorvektorok Oszlopvektorok Mátrixok Dimenziók Üres mátrixok 6 Vektorok és mátrixok mint függvény argumentumok 7 Skalár- és elemenként műveletek 8 Mátrix szorzás Mátrix szorzás vektorok esetén 9 Logikai vektorok és mátrixok Mátrixok közötti relációk Beépített logikai függvények 10 Alkalmazásokhoz hasznos függvények Sergyán (OE NIK AII) MATLAB 2016. november 13. 82 / 118

Mátrix szorzás Mátrixok szorzása Matematikai háttér Az A és a B mátrixok abban az esetben szorozhatók össze, ha A oszlopszáma megegyezik B sorszámával. A C eredmény mátrixnak ugyanannyi sora lesz, mint A-nak és ugyanannyi oszlopa, mint B-nek. c ij = n a ik b kj, k=1 ahol n az A és B közös oszlop- és sorszáma. Sergyán (OE NIK AII) MATLAB 2016. november 13. 83 / 118

Mátrix szorzás Mátrix szorzás MATLAB-ban Szorzás és osztás Példa A mátrix szorzás műveletet a * operátor valósítja meg. MATLAB-ban létezik inverz művelet is, mégpedig kettő, mert a mátrixszorzás nem kommutatív: /, \ >> A = [ 3 8 0 ; 1 2 5 ] A = 3 8 0 1 2 5 >> B = [ 1 2 3 1 ; 4 5 1 2 ; 0 2 3 0 ] B = 1 2 3 1 4 5 1 2 0 2 3 0 >> C = A B C = 35 46 17 19 9 22 20 5 Sergyán (OE NIK AII) MATLAB 2016. november 13. 84 / 118

Mátrix szorzás Mátrix szorzás vektorok esetén Mátrix szorzás vektorokkal Vektorok szorzata A mátrix szorzás használható vektorokkal is, ha méretbeli megkötések teljesülnek Példa >> c = [ 5 3 7 1 ] ; >> r = [ 6 2 3 4 ] ; >> r c 61 >> c r 30 10 15 20 18 6 9 12 42 14 21 28 6 2 3 4 Sergyán (OE NIK AII) MATLAB 2016. november 13. 85 / 118

Mátrix szorzás Mátrix szorzás vektorok esetén Vektorok skaláris- és vektoriális szorzata Skaláris- és vektoriális szorzat Két azonos méretű vektornak értelmezett a skaláris szorzata, ami a megfelelő elemek szorzatainak összege. MATLAB függvény: dot Két három komponensű vektornak értelmezett a vektoriális szorzata a matematikában megismert szabályok szerint. MATLAB függvény: cross Skaláris szorzat >> vec1 = [ 4 2 5 1 ] ; >> vec2 = [ 3 6 1 2 ] ; >> vec1 vec2 31 >> dot ( vec1, vec2 ) 31 Vektoriális szorzat >> vec1 = [ 4 2 5 ] ; >> vec2 = [ 3 6 1 ] ; >> cross ( vec1, vec2 ) 28 11 18 Sergyán (OE NIK AII) MATLAB 2016. november 13. 86 / 118

Logikai vektorok és mátrixok II. Vektorok és mátrixok 5 Vektorok és mátrixok Sorvektorok Oszlopvektorok Mátrixok Dimenziók Üres mátrixok 6 Vektorok és mátrixok mint függvény argumentumok 7 Skalár- és elemenként műveletek 8 Mátrix szorzás Mátrix szorzás vektorok esetén 9 Logikai vektorok és mátrixok Mátrixok közötti relációk Beépített logikai függvények 10 Alkalmazásokhoz hasznos függvények Sergyán (OE NIK AII) MATLAB 2016. november 13. 87 / 118

Logikai vektorok és mátrixok Mátrixok közötti relációk Relációk szám és mátrix, ill. mátrix és mátrix között Relációk hatásának értelmezése Ha egy mátrixot összehasonĺıtunk egy számmal, akkor az eredmény az eredetivel azonos méretű mátrix lesz, melynek adott eleme logikai 0, ha az összehasonĺıtás az adott elemre hamis, egyébként pedig logikai 1. Két azonos méretű mátrix is összehasonĺıtható. Az eredmény az eredeti mátrixokkal azonos méretű mátrix lesz, melynek az adott eleme logikai 0, ha a megfelelő elemek közötti reláció hamis, egyébként pedig logikai 1. Példa vektorokra Példa mátrixokra >> vec = [ 5 9 3 4 6 1 1 ] ; >> vec > 5 0 1 0 0 1 1 >> i s l o g i c a l ( ans ) 1 >> mata = r a n d i ( [ 1 1 0 ], 2, 3) mata = 9 2 7 10 10 1 >> matb = r a n d i ( [ 1 1 0 ], 2, 3) matb = 3 10 2 6 10 10 >> mata == matb 0 0 0 0 1 0 Sergyán (OE NIK AII) MATLAB 2016. november 13. 88 / 118

Logikai vektorok és mátrixok Mátrixok közötti relációk Logikai vektorok további használata Logikai vektorok Logikai vektorokkal is tudunk műveleteket végezni, ilyenkor automatikusan konvertálódnak számokká az elemek Ha egy feltételnek megfelelő elemek száma érdekel, akkor az előálló logikai vektort kell csak szummázni Logikai vektorokkal indexelhetünk is Típusok >> vec = [5 9 3 4 6 1 1 ] ; >> isg = vec > 5 i s g = 0 1 0 0 1 1 >> d o u b r e s = i s g + 5 d o u b r e s = 5 6 5 5 6 6 >> whos Name S i z e Bytes C l a s s A t t r i b u t e s Elemszám, indexelés >> sum ( i s g ) 3 >> vec ( i s g ) 9 6 11 d o u b r e s 1 x6 48 d o u b l e i s g 1 x6 6 l o g i c a l vec 1 x6 48 d o u b l e Sergyán (OE NIK AII) MATLAB 2016. november 13. 89 / 118

Logikai vektorok és mátrixok Mátrixok közötti relációk Igaz és hamis mátrixok Mátrixok létrehozása Példa Ha csupa logikai 1-est tartalmazó mátrixot akarunk létrehozni, használjuk a true függvényt Logikai 0-k esetén false függvény használata szükséges >> f a l s e ( 2 ) 0 0 0 0 >> t r u e ( 1, 5 ) 1 1 1 1 1 >> c l a s s ( ans ) l o g i c a l >> ones ( 1, 5 ) 1 1 1 1 1 >> c l a s s ( ans ) d o u b l e Sergyán (OE NIK AII) MATLAB 2016. november 13. 90 / 118

Logikai vektorok és mátrixok Beépített logikai függvények Minden és létezik Az all és any függvény Az all függvény igaz értéket ad, ha egy vektor minden értéke nem-nulla. Az any függvény igaz értéket ad, ha egy vektornak van nem-nulla értéke. Mindkét függvény mátrixok esetén oszloponként kerül kiértékelésre. Példa >> vec = [ 5 9 3 4 6 1 1 ] ; >> i s g = vec > 5 ; >> any ( i s g ) 1 >> a l l ( t r u e ( 1, 3 ) ) 1 Példa >> vec2 = l o g i c a l ( [ 1 1 0 1 ] ) vec2 = 1 1 0 1 >> any ( vec2 ) 1 >> a l l ( vec2 ) 0 Sergyán (OE NIK AII) MATLAB 2016. november 13. 91 / 118

Logikai vektorok és mátrixok Beépített logikai függvények Adott tulajdonságú elemek keresése A find függvény Adott tulajdonságú elemek indexeit a find függvény adja vissza. Példák >> vec = [ 5 3 6 7 2 ] vec = 5 3 6 7 2 >> f i n d ( vec > 5) 3 4 >> mata = r a n d i ( 1 0, 2, 4) mata = 10 9 5 8 5 2 10 10 >> f i n d ( mata == 5) 2 5 >> f i n d ( mata == 11) Empty matrix : 0 by 1 Sergyán (OE NIK AII) MATLAB 2016. november 13. 92 / 118

Logikai vektorok és mátrixok Beépített logikai függvények Két mátrix egyenlőségének vizsgálata Egyenlőség vizsgálat A == nem a mátrixok egyenlőségét vizsgálja, hanem az egyes elemek egyezőségét Mátrixok egyezőségéről az isequal függvény ad információt. Példa >> vec1 = [ 1 3 4 2 9 9 ] ; >> vec2 = [ 1 3 4 2 9 9 ] ; >> vec1 == vec2 1 1 1 1 1 >> a l l ( vec1 == vec2 ) 1 >> i s e q u a l ( vec1, vec2 ) 1 Sergyán (OE NIK AII) MATLAB 2016. november 13. 93 / 118

Logikai vektorok és mátrixok Beépített logikai függvények Elemenkénti vagy és és operátor Elemenkénti logikai operátorok Példa az elemenkénti vagy operátor & az elemenkénti és operátor >> v1 = l o g i c a l ( [ 1 0 1 1 ] ) ; >> v2 = l o g i c a l ( [ 0 0 1 0 ] ) ; >> v1 & v2 0 0 1 0 >> v1 v2 1 0 1 1 >> v1 && v2 Operands to t h e and && o p e r a t o r s must be c o n v e r t i b l e to l o g i c a l s c a l a r v a l u e s. Sergyán (OE NIK AII) MATLAB 2016. november 13. 94 / 118

Alkalmazásokhoz hasznos függvények II. Vektorok és mátrixok 5 Vektorok és mátrixok Sorvektorok Oszlopvektorok Mátrixok Dimenziók Üres mátrixok 6 Vektorok és mátrixok mint függvény argumentumok 7 Skalár- és elemenként műveletek 8 Mátrix szorzás Mátrix szorzás vektorok esetén 9 Logikai vektorok és mátrixok Mátrixok közötti relációk Beépített logikai függvények 10 Alkalmazásokhoz hasznos függvények Sergyán (OE NIK AII) MATLAB 2016. november 13. 95 / 118

Alkalmazásokhoz hasznos függvények Egymást követő elemek különbsége A diff függvény A diff függvény meghatározza az egymást követő elemek különbségét. Példa >> d i f f ( [ 4 7 15 3 2 ] ) 3 8 17 >> d i f f ( [ 4 7 2 3 2 ] ) 3 5 30 >> mat = r a n d i ( 2 0, 2, 3) mat = 14 17 14 1 19 16 >> d i f f ( mat ) 13 2 2 Sergyán (OE NIK AII) MATLAB 2016. november 13. 96 / 118

Alkalmazásokhoz hasznos függvények Nullátmenetek keresése Feladat Keressük meg, hogy egy vektorban hol találhatók nullátmenetek, azaz hol váltanak előjelet az egymást követő elemek! Megoldás >> vec = [ 0. 2 0.1 0.2 0.1 0. 1 0. 3 1.2]; >> sv = sign ( vec ) sv = 1 1 1 1 1 1 1 >> dsv = d i f f ( sv ) dsv = 2 0 0 2 0 2 >> f i n d ( dsv = 0) 1 4 6 Sergyán (OE NIK AII) MATLAB 2016. november 13. 97 / 118

Alkalmazásokhoz hasznos függvények Hasznos függvény kétdimenziós problémák esetén A meshgrid függvény A meshgrid függvény 2D-s koordináta rendszer koordináta értékeinek előálĺıtása esetén lehet hasznos. Példa >> [ x, y ] = meshgrid (1 : 3, 1 : 2) x = 1 2 3 1 2 3 y = 1 1 1 2 2 2 Sergyán (OE NIK AII) MATLAB 2016. november 13. 98 / 118

Alkalmazásokhoz hasznos függvények Konkrét kétváltozós függvény értékeinek előálĺıtása Feladat Határozzuk meg az f (x, y) = 2x + y függvény néhány értékét! Megoldás >> [ x, y ] = meshgrid (1 : 4, 1 : 3) x = 1 2 3 4 1 2 3 4 1 2 3 4 y = 1 1 1 1 2 2 2 2 3 3 3 3 >> f = 2 x + y f = 3 5 7 9 4 6 8 10 5 7 9 11 Sergyán (OE NIK AII) MATLAB 2016. november 13. 99 / 118

Bevezetés a MATLAB programozásába III. Bevezetés a MATLAB programozásába Sergyán (OE NIK AII) MATLAB 2016. november 13. 100 / 118

Bevezetés a MATLAB programozásába Szkriptek III. Bevezetés a MATLAB programozásába 11 Szkriptek Dokumentálás 12 Egyszerű grafikonok A plot függvény Egyéb megjelenítő függvények Sergyán (OE NIK AII) MATLAB 2016. november 13. 101 / 118

Bevezetés a MATLAB programozásába Szkriptek Szkriptekről általánosan Mi is az a szkript? MATLAB utasítások blokkja Nincsen bemeneti paramétere Nincs visszatérési értéke Eléri a workspace-ben tárolt változókat A benne kezelt változók is a workspace-ben tárolódnak, futás után is léteznek szkriptnev.m nevű fájlként menthető Meghívása a Command Prompt-ból vagy más szkriptből/függvényből a fájl kiterjesztés nélküli nevével történik (pl. szkriptnev) Sergyán (OE NIK AII) MATLAB 2016. november 13. 102 / 118

Bevezetés a MATLAB programozásába Szkriptek Első szkriptünk A szkript r a d i u s = 5 a r e a = p i ( r a d i u s ˆ2) script1.m Kód listázása a Command Prompt-ból >> type s c r i p t 1 r a d i u s = 5 a r e a = p i ( r a d i u s ˆ2) Futtatás a Command Prompt-ból >> s c r i p t 1 r a d i u s = 5 a r e a = 78.5398 Sergyán (OE NIK AII) MATLAB 2016. november 13. 103 / 118

Bevezetés a MATLAB programozásába Szkriptek Dokumentálás Kommentek és help % jelentése % utáni részek egy sorban kommentként vannak tekintve. A fájl első soraiban lévő %-lel kezdődő sorok az ún. help sorok. Több soros kommenteket a %{ %} jelek közé írhatunk. Továbbfejlesztett szkript circlescript.m help >> h e l p c i r c l e s c r i p t This script calculates the area of a c i r c l e % This script calculates the area of a c i r c l e %% Radius a s s i g n m e n t % First the radius i s assigned r a d i u s = 5 %% Area c a l c u l a t i o n % The are i s calculated based on the radius area = p i ( r a d i u s ˆ2) Sergyán (OE NIK AII) MATLAB 2016. november 13. 104 / 118

Bevezetés a MATLAB programozásába Szkriptek Dokumentálás Kód részekre bontása és publikálás Részekre bontás %% Új rész kezdetét jelzi. Az egyes részeknek cím is adható. Publikálás Lehetséges kimenetek: html pdf L A TEX xml Sergyán (OE NIK AII) MATLAB 2016. november 13. 105 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok III. Bevezetés a MATLAB programozásába 11 Szkriptek Dokumentálás 12 Egyszerű grafikonok A plot függvény Egyéb megjelenítő függvények Sergyán (OE NIK AII) MATLAB 2016. november 13. 106 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok Grafikai lehetőségek Összes lehetőség kilistázása A 2-dimenziós grafikai lehetőségek listáját a help graph2d paranccsal tudjuk kinyerni. 3-dimenziós esetben a help graph3d szolgáltat hasonló eredményt. Sergyán (OE NIK AII) MATLAB 2016. november 13. 107 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok A plot függvény Pontok és szakaszok plot A plot függvény a két-dimenziós koordináta-rendszerben jelenít meg egy pontot, vagy több pontot, melyeket egyenes szakaszokkal köt össze. A függvénynek számos formázási beálĺıtás is adható. Az xlabel, illetve ylabel paranccsal a koordináta-rendszer tengelyeihez rendelhetők feliratok. Az title paranccsal az előálló grafikonnak tudunk címet adni. Az axis utasítással megadhatjuk, hogy mely tartományra fókuszálunk a megjelenítésnél. Sergyán (OE NIK AII) MATLAB 2016. november 13. 108 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok A plot függvény Pontok és szakaszok Példa plotonepoint.m % This i s a r e a l l y simple plot of just one point! % C r e a t e c o o r d i n a t e v a r i a b l e s and p l o t a r e d x = 1 1 ; y = 4 8 ; p l o t ( x, y, r ) %Change t h e a x e s and l a b e l them axis ( [ x 2 x+2 y 10 y +10]) x l a b e l ( Time ) y l a b e l ( Temperature ) %Put a t i t l e on t h e p l o t t i t l e ( Time and Temp ) Sergyán (OE NIK AII) MATLAB 2016. november 13. 109 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok A plot függvény Pontok és szakaszok Példa >> x = 1 : 6 ; >> y = [ 1 5 3 9 11 8 ] ; >> p l o t ( x, y ) Sergyán (OE NIK AII) MATLAB 2016. november 13. 110 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok A plot függvény Formázási beálĺıtások Formázási opciók Színek Markerek Vonalstílusok b kék o kör -- szaggatott c cián d káró -. szaggatott-pontozott g zöld h hatszög : pontozott k fekete p ötszög - folytonos m bíborvörös + plusz r vörös. pont w fehér s négyzet y sárga * csillag alsó csúcsú háromszög < bal csúcsú háromszög > jobb csúcsú háromszög ^ felső csúcsú háromszög x x-jel Sergyán (OE NIK AII) MATLAB 2016. november 13. 111 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok Egyéb megjelenítő függvények További megjelenítő függvények Példa plot2figs.m % This c r e a t e s 2 d i f f e r e n t p l o t s, i n 2 d i f f e r e n t % F i g u r e Windows, to demonstrate some p l o t f e a t u r e s c l f x = 1 : 5 ; % Not n e c e s s a r y y1 = [2 11 6 9 3 ] ; y2 = [4 5 8 6 2 ] ; % Put a bar c h a r t i n F i g u r e 1 f i g u r e ( 1 ) bar ( x, y1 ) % Put p l o t s u s i n g d i f f e r e n t y v a l u e s on one p l o t % w i t h a l e g e n d f i g u r e ( 2 ) p l o t ( x, y1, k ) hold on p l o t ( x, y2, ko ) g r i d on l e g e n d ( y1, y2 ) Sergyán (OE NIK AII) MATLAB 2016. november 13. 112 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok Egyéb megjelenítő függvények További megjelenítő függvények Példa sinncos.m % This script plot sin ( x ) and cos ( x ) in the same Figure Window % f o r v a l u e s o f x r a n g i n g from 0 to 2 p i c l f x = 0 : 2 pi /40 : 2 pi ; y = s i n ( x ) ; p l o t ( x, y, r o ) hold on y = cos ( x ) ; p l o t ( x, y, b+ ) l e g e n d ( s i n, c os ) x l a b e l ( x ) y l a b e l ( s i n ( x ) o r c o s ( x ) ) t i t l e ( s i n and cos on one graph ) Sergyán (OE NIK AII) MATLAB 2016. november 13. 113 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok Egyéb megjelenítő függvények Háromdimenziós grafikonok t = 0 : p i / 50 : 10 p i ; plot3 ( exp ( 0.02 t ). s i n ( t ),... exp ( 0.02 t ). cos ( t ), t ) x l a b e l ( x a x i s ), y l a b e l ( y a x i s ), z l a b e l ( z a x i s ) Sergyán (OE NIK AII) MATLAB 2016. november 13. 114 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok Egyéb megjelenítő függvények Háromdimenziós grafikonok [ x, y ] = meshgrid( 3 : 0. 3 : 3 ) ; z = x. exp( x. ˆ 2 y. ˆ 2 ) ; subplot ( 2, 2, 1 ), mesh( z ) subplot ( 2, 2, 2 ), mesh( z ), view ( 37.5, 7 0 ) ; subplot ( 2, 2, 3 ), mesh( z ), view ( 3 7. 5, 10); subplot ( 2, 2, 4 ), mesh( z ), view ( 0, 0 ) ; Sergyán (OE NIK AII) MATLAB 2016. november 13. 115 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok Egyéb megjelenítő függvények Kontúrvonalak megjelenítése [ x, y ] = meshgrid ( 2.1 : 0.15 : 2. 1, 6 : 0.15 : 6 ) ; u = 80 y. ˆ 2. exp( x. ˆ 2 0.3 y. ˆ 2 ) ; subplot ( 1, 2, 1 ), contour ( u ) subplot ( 1, 2, 2 ), contour3 ( u ) Sergyán (OE NIK AII) MATLAB 2016. november 13. 116 / 118

Bevezetés a MATLAB programozásába Egyszerű grafikonok Egyéb megjelenítő függvények Vektormező megjelenítése [ x y ] = meshgrid( 2 :. 2 : 2, 2 :. 2 : 2 ) ; V = x. ˆ 2 + y ; dx = 2 x ; dy = dx ; dy ( :, : ) = 1 ; contour ( x, y, V, LineWidth, 5 ), hold on quiver ( x, y, dx, dy ), hold o f f Sergyán (OE NIK AII) MATLAB 2016. november 13. 117 / 118