M-Fájlok létrehozása MATLAB-ban 1 Mi az M-fájl Annak ellenére, hogy a MATLAB rendkívül kifinomult és fejlett számológépként használható, igazi nagysága mégis abban rejlik, hogy be tud olvasni és végrehajtani a felhasználó által írt fájlokat. Ezeket nevezzük M- Fájloknak, mivel kiterjesztésük.m. Nagyon hasznos a parancsokat egyenesen egy M-Fájlba írni és azt illetve azokat egy könyvtárba menteni. Sokkal egyszerűbb egy esetleges hibát kikeresni egy M-Fájlból, mint keresgélni különféle parancsok között, továbbá azért is hasznos egy M-Fájl használata, mert így a munkánk el van mentve és az a későbbiekben bármikor egyszerűen lefuttatható. Két lényeges fajtáját különböztetjük meg az M-Fájloknak, ezek az egyszerű script fájlok és a függvény fájlok. A parancs fájlok parancsokat tartalmaznak egymás után, egy munkamenet lefolyása szerint, meghívásuk egyszerűen a file nevére való hivatkozás a MATLAB parancssorban. A függvény fájlok ezzel szemben paraméterrel hívhatóak meg és visszatérési értékkel, eredménnyel szolgálnak. A MATLAB-ba számos beépített függvény fájl található. Ezek az elemi (például szinusz - sin, exponenciális - exp, stb.) függvényektől kezdve egészen számos speciális függvényig, nagy számú függvényt foglalnak magukba. Mindegyik függvény fájl jellemzője, hogy egy bemeneti paramétert megadva a parancssorból egy eredménnyel tér vissza a parancs ablakban, anélkül, hogy a függvény fájl tartalmához hozzá nyúlnánk. Egy egyszerű példa függvény fájlra az exponenciális függvény használata. Mint például az y=exp(1), exp( x ) = e erre az eredményünk y=2.7183 x. Beírjuk, hogy
lesz. Ha azt írjuk be, hogy y=exp(0), akkor eredményünk y=1. 2 Hogyan hozzunk létre és használjunk egy M-Fájlt? 2.1 Saját mappa létrehozása Mindenek előtt szükségünk lesz egy saját, személyi könyvtár létrehozására. Ezt a Current Directory gombbal, mely a MATLAB ablak tetején található, végezzük. A Current directory ablakban (bal oldal felső része), nyomjuk le a New Folder, azaz új mappa létrehozása gombot, aztán adjuk meg a mappa nevét, ami esetünkben MyWork lesz. 2.2 M-Fájl létrehozása A leggyorsabb módja M-Fájl létrehozásának a MATLAB ablak File feliratú gombja alatt található gyors menügomb, melynek felirata New M-File. Ugyanarra az eredményre jutunk a File -> New M-File menüből történő parancs kiválasztásával is. Ennek hatására egy az alábbi ábrán látható ablak fog megjelenni.
Egyszerű példaként lássuk, hogyan nyitunk meg egy M-Fájlt MATLAB-ban, majd mentsük azt egy általunk választott nevű fájlra, a már kiválasztott mappába, mondjuk legyen ez a név a MAT1.m. Javasolt meggyőződni arról, hogy hasonló nevű fájlunk nincs abban a könyvtárban, hogy ne rontsunk el egy már meglévő munkát. Ezt egyszerűen le lehet ellenőrizni a következőképpen. Írjuk be a parancssorba help MAT1 Ennek eredményeképp a következő üzenetet olvasva MAT1.m not found. már biztosak lehetünk abban, hogy ilyen nevű fájl még nincsen. Vessük ezt össze azzal, ha a következő parancsot adnánk ki help sin Erre a program azt fogja válaszolni, hogy
SIN Sine. SIN(X) is the sine of the elements of X. Overloaded methods help sym/sin.m ami pontosan azt jelenti, hogy sin.m nevű fájl már van. 2.3 Script fájlok létrehozása Egy nagyon egyszerű script fájlt fogunk készíteni, melyben összeadunk két számot. A script fájlunk legelső sorába gépeljük be a következőt y=3+2 (vegyük észre, hogy nincs beszúrva pontvessző - ";", különben nem jeleníthetnénk meg az eredményt), majd mentsük a fájlunkat ("File - Save As") MAT1 néven könyvtárunkba. Válasszuk ki a "Debug - Run" parancsot. A következő kell megjelenjen:
Az "OK" gombot lenyomva a MATLAB azonosítja a könyvtárunkat. Ha most beírjuk azt, hogy MAT1 A parancs ablakba, akkor meg fog jelenni az y=5 amit eredményként vártunk. Ha ennek helyébe az??? Undefined function or variable 'MAT1'. üzenet jelenik meg, az azt jelenti, hogy elmulasztottuk az "OK" gomb lenyomását a MATLAB szerkesztő ablak megjelenésekor. Ha bármit változtatni szeretnénk, akkor M-Fájlunkat meg kell nyitni és szerkeszteni. Ha például azt szeretnénk, hogy a 3+3 összeadást hajtsa végre, akkor fájlunk tartalmát át kell írnunk a következőre y=3+3 majd mentenünk kell a fájlt. Ha most a parancssorba ismét beírjuk a MAT1- et, akkor a megjelenő eredmény y=6 lesz. Nagyon hasznos néhány kommentár, azaz megjegyzés beszúrása M- Fájlunkba, hogy tudjuk, mit számol. Ezeket általában a fájl tetejére szokás írni. Nagyon egyszerűen szerkeszthető a fájlunk, ha ráállunk a bal felső sarokra a kurzorral, azaz a file elejére és megnyomjuk a [ gombot, akkor az egész sor lejjebb jön eggyel. Minden megjegyzésnek "%" jellel kell kezdődnie. Ez megmondja a MATLAB-nak, hogy az a sor nem végrehajtandó parancs, ugorja át. M-Fájlunk első sorába írjuk be a következőt: %MAT1 - Calculates the sum of two numbers
Jól látható, hogy a MATLAB azonnal zöld színűre változtatja az írást, így könnyen átfutható a munkánk, hiszen könnyen megkülönböztethető a megjegyzés a fájl többi tartalmától. Ha futtatjuk a fájlt, ugyanazt az eredményt kapjuk, mint az előzőekben. Ha valamilyen okból elfelejtettük százalékjellel kezdeni a megjegyzésünket, akkor a MATLAB egy a következőhöz hasonló hibaüzenetet ad futtatáskor:??? Error: File: add.m Line: 2 Column: 18 Unexpected MATLAB expression. Ennek eredményeként a számolás nem lesz végrehajtva. 2.4 Függvény fájl létrehozása Összehasonlításként hozzunk létre egy olyan függvény fájlt, mely két számot ad össze. Nyissunk egy új M-Fájlt, majd mentsük add néven (add nevű beépített függvény, így add.m fájl, nincs MATLAB-ban). Gépeljük be a fájlba a következő sorokat: function [out] = add(x,y) %ADD - Calculates the sum of two numbers out=x+y; aztán mentsük a fájlt. Figyeljük meg a legelső parancsot, "function [out] = add(x,y)", ami egy standard forma a függvény fájl kijelölését jelenti és hogy csak azt követi a megjegyzés. Most írjuk be a parancssorba: add(2,3) Ennek eredménye ans=5 lesz.
A választ egy változó nevébe is el lehet menteni, például y=add(2,3) formában, melynek eredményeként a program a választ y=5 alakban fogja megadni.