NEMNUMERIKUS TÍPUSOK, MÁTRIXOK

Hasonló dokumentumok
NEMNUMERIKUS TÍPUSOK, MÁTRIXOK

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.

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.

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

Matlab alapok. Vektorok. Baran Ágnes

Matlab alapok. Baran Ágnes

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

Táblázatkezelés 2. előadás. Alapok (folyt.)

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

EGYSZERŰ SZÁMÍTÁSOK TÁBLÁZATKEZELÉS ELINDULÁS SZE INFORMATIKAI KÉPZÉS 1

Műveletek mátrixokkal. Kalkulus. 2018/2019 ő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

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

Mátrixok, mátrixműveletek

Feladat Legyen A = [1 2 3; 4 5 6]. Adjuk meg a B csupa egyes mátrixot (a ones függvénnyel) úgy, hogy A + B' elvégezhető legyen!

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

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

az Excel for Windows programban

MATLAB alapismeretek I.

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

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

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

Lineáris algebra (10A103)

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

1. Alapok. #!/bin/bash

SZÁMÍTÓGÉPES ADATFELDOLGOZÁS

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r

I. VEKTOROK, MÁTRIXOK

Microsoft Excel 2010

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Matlab 1. előadás. Ismerkedés, környezet, adattípusok. Dr. Szörényi Miklós, Dr. Kallós Gábor

HTML ÉS PHP ŐSZI FÉLÉV

Felvételi tematika INFORMATIKA

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

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

Aritmetikai kifejezések lengyelformára hozása

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

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Adattípusok. Numerikus adatok. A numerikus adatok különböző típusú számértékek. Logikai érték

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

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

Valasek Gábor

Mátrixok 2017 Mátrixok

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

A MATLAB PROGRAMOZÁSA

Gauss elimináció, LU felbontás

Bevezetés a programozásba I.

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

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

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

Raszteres elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

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

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

A feladat megoldása során a Microsoft Office Excel használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni:

Excel Hivatkozások, függvények használata

Bevezetés a programozásba

Készítette: Nagy Tibor István

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Excel Hivatkozások, függvények használata

3. ZH-ban a minimum pontszám 15

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

Bázistranszformáció és alkalmazásai 2.

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

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

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

Baran Ágnes. Gyakorlat Vektorok, mátrixok, lineáris egyenletrendszerek. Baran Ágnes Matematika Mérnököknek

Vektorok, mátrixok, lineáris egyenletrendszerek

Matematika. 1. évfolyam. I. félév

KOVÁCS BÉLA, MATEMATIKA I.

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

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

Matematikai programok

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

3. el adás: Determinánsok

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

5. Gyakorlat. struct diak {

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

dr.xlsx A programról Szövegműveletekhez használható függvények

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Mátrixok február Feladat: Legyen A = ( ( B =

1. zárthelyi,

12 48 b Oldjuk meg az Egyenlet munkalapon a következő egyenletrendszert az inverz mátrixos módszer segítségével! Lépések:

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

7. Strukturált típusok

Java II. I A Java programozási nyelv alapelemei

BASH SCRIPT SHELL JEGYZETEK

Ismerkedés a Matlabbal

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

3 A C programozási nyelv szintaktikai egységei

10. gyakorlat Struktúrák, uniók, típusdefiníciók

6. BASH programozás I.

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

5. gyakorlat. Konstansok Tömbök Stringek

MATE-INFO UBB verseny, március 25. MATEMATIKA írásbeli vizsga

2005_01/1 Leírtunk egymás mellé hét racionális számot úgy, hogy a két szélső kivételével mindegyik eggyel nagyobb a két szomszédja szorzatánál.

Egész számok. pozitív egész számok: 1; 2; 3; 4;... negatív egész számok: 1; 2; 3; 4;...

AWK programozás Bevezetés

Átírás:

1 2. GYAKORLAT NEMNUMERIKUS TÍPUSOK, MÁTRIXOK KARAKTERLÁNCOK A az írásjeleket, karaktereket 2 bájton tárolható numerikus értékekkel kódolja. Ha több írásjelet fűzünk össze, akkor karakterláncról beszélünk. >> x = 'alma' >> y = x+0, whos x y, x' Egy karakterlánc valójában numerikus értékekként is kezelhető elemeket tartalmazó sorvektort jelent. Ez abból is látszik, hogy egy karakterlánccal, mint sorvektorral műveleteket is végezhetünk. Ha egy karakterkódokat tartalmazó vektorra a char függvényt alkalmazzuk, akkor karakterláncot kapunk. (Ha a char függvényt eleve karakterláncra alkalmazzuk, akkor nem történik változás.) Adjuk meg azt a karakterláncot, amelynek karaktereit a következő ASCII kódsorozat azonosítja: w = [104 101 108 108 111 32 119 111 114 108 100 33] Több karakterlánc egy sorvektorba elhelyezve, azok összeragasztását eredményezi: >> p = 'Maci'; q = 'Laci'; [p q] Az előző w sztring végéről hagyjuk el az utolsó kódot, majd a! karakterrel történő összeragasztással készítsük el újra a teljes eredeti karakterláncot. Megj.: char(w1, '!') nem ad jó megoldást, char([w1,!]) pedig szintaktikailag hibás. A char függvény paraméterében megadott skalárokkal mint számértékekkel műveletek is végezhetők. ok Állítsuk elő az int8 adattípus legnagyobb értékénél eggyel kisebb ASCII kódú karaktert! Írassunk ki különböző magyar ékezetes karaktereket ASCII kódok alapján! (Segítség: utóbbihoz érdemes egy számvektor elemeit egyszerre karakterizálni, pl. 190:230.) A karakterláncokhoz kapcsolódó további példákat és feladatokat javasolt házi feladatként megnézni (lásd: Otthoni munka)!

2 DÁTUM-IDŐ ADATOK Adjunk választ a bal esetleg a súgót is felhasználva a következő kérdésekre: Mi az 1000. január 1. dátum sorszáma a rendszerben? Hány naposak vagyunk ma? (Tipp: a now ugyanúgy működik, mint az Excelben a Most függvény. A törtrész elhagyását a floor függvénnyel tudjuk elérni.) Gyakran van szükségünk a számítások közben eltelt idő mérésére. Ehhez a fontosabb eszközök: now aktuális dátum-idő (törtrész a napon belüli idővel arányos) cputime a hasznos számításokkal eltöltött idő tic, toc a CPU órajeleinek száma. A tényleges számítási idő a cputime segítségével mérhető, a ciklusszervezési időt levonjuk! >> x0 = sqrt(2); z = 1e8; dx = 1.0000001; >> t = cputime(); for i = 1:z end, alap_ido = cputime()- t >> x = x0; t = cputime(); for i = 1:z x = x+dx; end, plus_ido = cputime()- t >> x = x0; t = cputime(); for i = 1:z x = x/dx; end, div_ido = cputime()- t >> hanyados = (div_ido alap_ido)/(plus_ido alap_ido) Mérjük le a fentieket a tic, toc páros segítségével is. A tic a CPU ütemszámát kérdezi le az indítás(telepítés) óta. Az ütemszámot egy 64 bites tárolóban szaporítja. Ezzel csak szimbolikusan lehet számolni, viszont a cputime paranccsal kapott eredmény double típusú lesz. KIFEJEZÉSEK, HASONLÍTÁSOK Próbáljunk ki egyszerű példákat a szöveges (és numerikus) adatok hasonlításáról és a velük való műveletvégzésről. Például: >> 'al' + 'ma' % összeadás karakterenként, numerikus eredmény >> 'al' < 'ma' % hasonlítás karakterenként, logikai eredmény >> 'alma' + 'fa' % az összeadás nem végezhető el (mérethiba) >> '12' + '23' % összeadás karakterenként, '1' + '2' = 'c'!!! >> char(49+50) % magyarázat '1' + '2'-höz >> '1' + '2' == '3' % nyilván hamis

3 Önállóan gyakoroljunk tovább. A tényleges kipróbálás előtt írjuk le a füzetünkbe a várható eredményt! (Mindig gondoljuk végig, hogy a hasonlítás, ill. a megfelelő művelet elvégezhető-e, és milyen típusú lesz az eredmény.) Pl. 'Kovács' < 'Kovácsné'; 'Kovács ' < 'Kovácsné'; '12' + '12'; '12' < '23'; '12' == '23'; '12' + 12; '12' + '23' == '35' Vigyázzunk arra, hogy egyes esetekben teljesen más a művelet értelmezése, mint amit esetleg a tapasztalatból várhatunk (ismert programozási környezetek)! Pl. 'al' & 'ma'! Módosítsuk a feladatot úgy, hogy bevetünk egyszerűbb függvényeket is! (Pl.: sum, max, size.) VEKTOROK, MÁTRIXOK LÉTREHOZÁSA, HIVATKOZÁSOK A az egymás mellett felsorolt adatokat sorvektornak (egysoros mátrixnak), az egymás alatt felsorolt adatokat oszlopvektornak (egyoszlopos mátrixnak) tekinti. Amikor egy vektort elemeivel megadunk, szögletes zárójelbe kell azokat foglalnunk (ez azonban időnként elhagyható, próbáljuk ki): >> w = [2 sin(pi/6) 'a'-'a'], z = [0:3]' >> s = [1:3:20], q = linspace(0,30,16) ok Állítsuk elő a kettőspont operátor felhasználásával a j = 1 4 7 10 13 16 19 sorvektort! (Ha több megoldás is létezik, akkor azt adjuk meg, amelyiknél a felső határ a legkisebb.) A : operátor felhasználásával töltsük fel a k sorvektort a kétjegyű pozitív páros számokkal! Állítsuk elő a linspace parancs felhasználásával az s = 0 30 60 90 120 150 180 210 240 270 300 sorvektort! Állítsuk elő a linspace parancs felhasználásával a kétjegyű pozitív számokat tartalmazó a sorvektort! A mátrix (téglalapba rendezett adatok) megadása szintén az elemeinek felsorolásával is történhet, a soron belüli delimiter (elválasztó) vagy a szóköz, vagy a vessző írásjel. Egy sor végét a pontosvessző jelzi (az utolsó után nincs pontosvessző!). Vigyáznunk kell arra, hogy minden sor ugyanannyi adatot tartalmazzon! (Különböző típusú adatok együtt történő alkalmazásáról lásd az Otthoni munka részt!) A vektorokat hagyományosan kisbetűvel kezdődő változóval, a mátrixot nagybetűvel kezdődő változóval azonosítjuk. (Így áttekinthetőbb írásmódhoz jutunk.) ok Egy c változóba rakjuk be az első 4 pozitív páros számot (növekvően) úgy, hogy sorvektor jöjjön létre!

4 Egy d változóba rakjuk be az első 4 pozitív páratlan számot (növekvően) úgy, hogy oszlopvektor jöjjön létre! Töltsük fel aritmetikai műveletek és függvények segítsége nélkül csupa 5 elemmel az A 3 2-es méretű mátrixot! (Felesleges zárójeleket és szimbólumokat ne használjunk a fenti feladatokban.) A 3 4 méretű X mátrixot töltsük fel soronként a fok = [0, 15, 30, 45] szögértékekkel, ezek tangenseinek és kotangenseinek értékeivel! (fok radián átváltás!) A mátrixok és vektorok létrehozásához használhatjuk a Variable Editort, ill. lehetőség van az adatok egyes külső fájlokból (pl. Excel munkafüzet) történő beimportálására is. ok A Variable Editor segítségével állítsuk elő azt a B azonosítójú 5 5-ös méretű mátrixot, amelynek jobb alsó sarkában az [1 2; 3 4] mátrix van, a többi eleme pedig 0. Hajtsuk végre ezt a feladatot a clear B parancs kiadása után értékadással is! Olvassuk be az adat.xls munkafüzet valami lapjáról az F5:H8 tartományt a C mátrixba! Az elemek felsorolásakor már létező mátrixra/vektorra, műveletekkel kiszámított értékekre is hivatkozhatunk, sőt a szögletes zárójelekkel történő megadások egymásba is ágyazhatók. >> A = [1:4; 2 4 6 8] >> x = [0:30:180]; W = [x; sin(pi*x/180); cos(pi*x/180)] % radiánba váltjuk (alternatíva: sind, cosd) >> S = [x' sin(pi*x/180)' cos(pi*x/180)'] >> T = [[x', sin(pi*x'/180)] cos(pi*x/180)'] % az almátrixoknak illeszkedniük kell Mátrixok elemeire a következő módon hivatkozhatunk: A(s_ind, o_ind) ill. A(sorszám) % a megadott pozíciójú elem, ill. oszlopfolytonosan a megadott sorszámú elem A(s_ind, :) % teljes sor A(:, o_ind) % teljes oszlop A(s_ind_1:s_ind_2, :) % néhány sor (s_ind_1 és s_ind_2 határokkal) A(s_ind_1:s_ind_2, o_ind_1:o_ind_2) % részmátrix a megfelelő határokkal ok Legyen A = [1:4; 5:8; 9:12; 13:16]. Adjuk meg a megfelelő hivatkozással a 7 elemet (pozícióval és oszlopfolytonosan is); A második sorát; A harmadik oszlopát; A első oszlopát sorvektorként; a [6 7; 10 11] részmátrixot; a [11; 15] részmátrixot.

5 A részmátrix-hivatkozások is felhasználhatók mátrixok összeillesztésére, azaz a fentiekhez hasonló típusú feladatok megoldására. ok Legyen A = [1 1; 2 2] és B = [3 3; 3 3; 3 3]. Állítsuk elő az A és a B felhasználásával a C = 1 2 1 2 3 3 3 3 3 3 mátrixot. Állítsuk elő az A és a B felhasználásával a C = 1 1 2 2 3 3 mátrixot. (Felesleges zárójeleket és szimbólumokat ne használjunk a fenti feladatokban.) Az A, B, C, D, E mátrixokról a következőket tudjuk: size(a) : [4 5] size(d) : [3 5] E = [A B; C D] és négyzetes Milyen méretűek a B és C mátrixok? Szorgalmi feladat Ellenőrizzük az A = [1:3; 2:4; 3 3 3] mátrix determinánsát az első sor szerinti kifejtési tétel alkalmazásával! Megoldás >> A = [1:3;2:4;3 3 3], deta = det(a) >> A1 = A(2:3,2:3) >> A2 = A; A2(1,:) = []; A2(:,2) = [] % A2 = A([2:3],[1,3]) módon is megadható >> A3 = A(2:3,1:2) % A1, A2, A3 első sor szerinti minormátrixok >> da = A(1,1)*det(A1)-A(1,2)*det(A2)+A(1,3)*det(A3) % kifejtési tétel

6 PONTOZOTT MŰVELETEK A az azonos méretű mátrixok(vektorok) között megengedi az elempáronkénti műveleteket. Ez hasonló az Excel blokkok(tartományok) között elempáronként elvégezhető műveletekhez. Ezek a következők: összeadás, kivonás (nem szabad. jelet a + illetve a elé írni!) szorzás, osztás, hatványozás (itt kötelező az elempáronkénti műveletek előtt a. jelet használni!) Ha az egyik operandus skalár, akkor ez valójában a másik operandusnak megfelelő méretű és csupa azonos elemből álló mátrixot jelent. A pontozott transzponálás és a sima transzponálás között csak annyi a különbség, hogy a komplex elemek konjugálása az elsőnél nem történik meg, sima transzponáláskor viszont igen. Példák, feladat a./ Legyen A = [1 2; 3 4], ekkor B = A 3 valójában az A [3 3; 3 3] műveletet jelenti. b./ B = A.^ 1 valójában az A.^[ 1 1; 1 1] műveletet jelenti, azaz az B mátrix elemei az A mátrix elemeinek reciprokjai lesznek. c./ Ha B = [3 2; 4 1], akkor C = A.*B mátrix [1*3, 2*2; 3*4, 4*1] azaz [3 4; 12 4] lesz. Kérdés: Kommutatív a pontozott szorzás? d./ A = [8 1-5; 3 13 7; 1 2 34.5] Szimmetrikus-e a B = A + A' mátrix? Mi a válaszunk akkor, ha A(1, 3) = 5 i, azaz az A mátrix a főátlón kívül tartalmaz komplex elemet? Adott a C és az A = [1 5; 2 3] mátrix. Állítsuk elő a B mátrixot, ha a./ C = [2-5; 2-6] és C = A.*B b./ C = [0.5-5; 2-1.5] és C = A./B Ellenőrizzük az eredményeket! A megoldások: (C./A) és (A./C) A pontozott műveleteket elsősorban a függvények kiszámításánál használjuk. Ilyenkor a pontnélküli kifejezés hibaüzenetet generálhat (ill. nem feltétlenül az történik, amit szeretnénk)! Legyen x = 0:pi/9:pi (sorvektor). Hajtsuk végre a ban a sin(x)/x és a sin(x)./x műveleteket és magyarázzuk meg az eredményt! (Segítség: a második eredmény nyilvánvaló, az elsőnél azt kell meggondolni, hogy x az 10 elemű sorvektor, a pinv(x) pedig 10 elemű oszlopvektor.)

7 OTTHONI MUNKA (szöveges adatok) Állítsuk elő minél több módon az 'ABC' karakterláncot! Megoldás >> 'ABC', ['A' 'B' 'C'], ['A','B','C'], char(65,66,67)', char('abc' - 32) % és így tovább Állítsuk elő a kettőspont sorozatképző operátorral (lásd még lent is) az angol ábécé nagybetűinek sorvektorát, majd a karakterláncot is. Ebből kiindulva állítsuk elő a./ a kisbetűk karakterláncát! b./ a nagybetűs karakterlánc palindromját (tükörképét)! (Tipp: itt használjuk ki, hogy az angol ábécé egy karakterének és tükörkép karakterének a kódösszege mindig ugyanaz az érték; 155.) Megoldás a./ >> U = char('a':'z'), diff = 'a' - 'A', L = char(u+diff) >> whos U L Megjegyzés: az L = char((65:90) + 32) is jó lett volna. Látható, hogy a kisbetűk kódja 32-vel nagyobb, mint a nagybetűké. (Próbáljuk ki a lower/upper parancsokat is.) b./ >> palindrom_u = char('a' + 'Z' - U) % vagy char(155 - U) (szöveges adatok) Állítsuk elő az 'ááééííóóööőőúúüüűű$ ' sztring karaktereinek az ASCII kódját! Rendezzük a karakterláncot kódok szerint növekedően! (Eml.: sort parancs.) (szöveges adatok) Állítsuk elő az a = 'boci '; b = 'tarka'; d = 'se '; e = 'füle ' karakterláncokból az ismert kétsoros versikét! Mi az első sor utolsó elemének kódja? Megoldás >> a = 'boci '; b = 'tarka'; c = b; c(1) = 'f'; >> d = 'se '; e = 'füle '; % a szavak >> vers = char([a a b], [d e d c]) % a két sor szavakból összerakva >> vers(1,length(vers))+0 % első sor utolsó jelének kódja

8 Megjegyzés: Ha a char függvényt több és vesszővel elválasztott karakterláncra alkalmazzuk, akkor sorokra tördelt egyesített karakterláncot kapunk. Itt a rövidebb sorok annyi szóközzel egészülnek ki, hogy a hosszuk egyenlő legyen a leghosszabb sor hosszával (nálunk most a 15 betűs első sor kiegészült 16 írásjelre). (adattípusok) Nézzük meg, hogy hogyan működik az isnumeric, islogical, isscalar és az isvector függvény! (Súgó.) (komplex számok) Az előadás fóliák és a súgó segítségével idézzük fel, hogy a hogyan tudja megvalósítani a komplex számokkal történő műveletvégzést. Keressünk példafeladatokat (pl. matek jegyzetek/tankönyvek, zh feladatok), és ellenőrizzük a megoldásokat! (Például: legyen z1 = 3 + 5i, z2 = 4 2i. Ellenőrizzük, hogy z1/z2 = 0,1 + 1,3i.) Nézzük meg, hogy hogyan működik az isreal függvény! (időmérés) Olvassuk el a Súgóban a Programozási alapok című részben a programok futásidejének méréséről és elemzéséről szóló részt (tic-toc vs. cputime). Írjuk le a tapasztalatokat a füzetünkbe. Próbáljuk ki időmérésre a clock és az etime parancsokat is. (mátrixépítés) A fenti A = [1 1; 2 2] és B = [3 3; 3 3; 3 3] mátrixok, ill. megfelelő darabjaik felhasználásával készítsünk további C mátrixokat! (mátrixépítés, különböző típusok!) Ha a mátrixok/vektorok megadásánál az elemek típusa különböző, akkor ez az elemek konverziójához vezet, ami túlcsordulást is eredményezhet: >> A = [eps*1e16, pi; 2, floor(now())/2014] % mind double >> B = [eps*1e16 int8(pi); 2 365.286] % mind int8, túlcsordulás >> c = [90 72 45 237 114 450/2 's'] % mind char típusú lett >> P = [tic pi; eps*1e16 i] % mind komplex uint64 lett (tic miatt) Ellenőrizzük a fenti mátrixok és vektorok típusát! Látható, hogy egy mátrix minden eleme azonos tárolási osztályba tartozik, akárhogyan is adtuk meg eredetileg! Tanulság: a mátrix elemeinek megadásakor lehetőleg ne keverjük az elemek típusát, mert úgyis konverzió következik be, és ez többnyire információvesztéssel járhat. Az A, B, C, D, E mátrixokról a következőket tudjuk: size(a) : [4 5]

9 size(d) : [3 5] E = [A B; C D] és négyzetes Milyen méretűek a B és C mátrixok? (Próbáljunk először nélkül választ adni a kérdésre.) (átméretezés) A reshape függvényt átméretezésre használhatjuk (többféle módon is). Az elemek száma nem változik, a mátrix méretei természetesen igen. 1. Legyen C = reshape(1:15, 3, 5). Adjuk meg a 13 elemet jelentő hivatkozást! (Segítség: a reshape függvény a sor/oszlop-vektort oszlopfolytonosan tördeli) 2. Töltsük fel sorfolytonosan a 0 99 számokkal a D 10 10 méretű mátrixot! (Megoldás: D = reshape(0:99,10,10)' ) (pontozott műveletek) Készítsünk kifejezéseket pontozott műveletek felhasználásával oly módon, hogy minél többféle módon bemutatjuk a következő lehetőségeket: A helyes működéshez ténylegesen szükséges a pont jel. A pont jel kirakása felesleges, de nem okoz hibát. A pont jel kirakása hibát okoz! Dr. Szörényi Miklós, dr. Kallós Gábor (Széchenyi István Egyetem), 2018. Minden jog fenntartva