A MATLAB numerikus számítások elvégzésére alkalmas speciális programrendszer és egyben programozási nyelv amelyet A MathWorks fejleszt. A programrendszer képes mátrix számítások elvégzésére, függvények és adatok ábrázolására, algoritmusok implementációjára és felhasználói interfészek kialakítására. Habár a szoftver kizárólag numerikus, a MuPAD csomag hozzáadásával képes matematikai kifejezéseket grafikusan is megjeleníteni.
2004-ben, hivatalos információk alapján, a MATLAB több mint 1 millió felhasználóval rendelkezett.Richard Goering, "Matlab edges closer to electronic design automation world ," EE Times, 10/04/2004
Történelem A MATLAB-ot (a név az angol „MATrix LABoratory” szavakból összeollózott kifejezés, ami a mátrix-számításokat hangsúlyozza) az 1970-es évek elején Cleve Moler kezdte el fejleszteni, az akkori Új-Mexikói Egyetem Számítástudományi Intézetének elnöke. Kezdetben csak a diákjai munkáját tervezte megkönnyíteni, hogy ezen keresztül el tudják érni a LINPACK és EISPACK csomagokat Fortran tudás nélkül. Hamarosan elterjedt más egyetemek hallgatói és munkatársai között is és így erős érdeklődésre tett szert az alkalmazott matematikával foglalkozók körében. Jack Little, egy mérnök, Molernél tett látogatása során felismerte a MATLAB-ban lévő lehetőségeket 1983-ban. Utána nem sokkal csatlakozott Molerhez és Steve Bangert-hez, majd újraírták a MATLAB-ot C nyelven és megalapították a The MathWorks-öt 1984-ben. Ezek az újraírt könyvtárak JACKPAC néven váltak ismertté. 2000-ben a MATLAB-ot ismét újraírták, hogy alkalmas legyen az akkoriban született LAPACK programkönyvtár használatára.Megjegyzés Cleve Molertől a Matlab készítőjétől
A MATLAB-ot először az irányítástechnikában alkalmazták, ami Little szakterülete is volt, de gyorsan elterjedt más területeken is. Manapság szintén használatos még az oktatásban, különösen a lineáris algebra és numerikus analízis szemléltetésében és népszerű még a képfeldolgozással foglalkozó kutatók között is.
A MATLAB nyelv Az egész MATLAB programrendszer a MATLAB nyelv köré épül, amit néha M-code-nak vagy egyszerűen M-nek hívnak. A legegyszerűbb módja az M-code fordításának az, hogy a fordítandó programot begépeljük a >> prompt után a Command Windowban, ami a MATLAB felület része. Ebben az esetben a MATLAB egy interaktív környezetként fog működni. Ha az M-code több sorból áll, érdemes a MATLAB Editort használni, amivel akár saját függvényt is készíthetünk.
Változók Változókat az értékadó operátorral lehet deklarálni, ami az =. A MATLAB egy dinamikusan típusos nyelv, ami azt jelenti, hogy a változókat típusdeklaráció nélkül is lehet használni, kivéve, ha szimbolikus objektumnak szánjuk őket.A szimbolikus változókról Dokumentáció a MATLAB Symbolic Toolbox-hoz A változók az értékeiket kaphatják konstansokból, számításokból, vagy egy függvény visszatérési értékéből is. Például: >> x = 17 x = 17 >> x = 'hat' x = hat >> x = [3*4, pi/2] x = 12.0000 1.5708 >> y = 3*sin(x) y = -1.6097 3.0000
Mátrixok, vektorok A MATLAB egy „Mátrix Laboratórium”, így többféle kényelmes megadási módját kínálja a vektoroknak, mátrixoknak és többdimenziós tömböknek.
A tömböket ciklus használata nélkül is fel lehet tölteni az alábbi szintaxissal: mettől:mennyivel:meddig. Például: >> array = 1:2:9 array = 1 3 5 7 9 A fenti példa egy array nevű egydimenziós tömb változót deklarál, amely az 1, 3, 5, 7 és 9 értékeket tartalmazza. Ezzel a megadással a tömb elemei gyakorlatilag egy számtani sorozatot fognak képezni, amelynek első eleme a szintaxis első részében megadott mettől lesz, az utolsó eleme a szintaxis utolsó részében megadott meddig és a differencia pedig a középen álló mennyivel. Ha a meddig nem tagja a sorozatnak, akkor a legnagyobb tag a nála kisebb számok közül az a szám lesz, amelyben mennyivel a legtöbbször megvan. Például: >> array = 1:3:9 array = 1 4 7 A mennyivel értékét nem kötelező megadni, ha ezt elhagyjuk, akkor az értéke alapértelmezetten 1 lesz. Például: >> array = 1:5 array = 1 2 3 4 5 Így az array nevű egydimenziós tömb értékei rendre az 1, 2, 3, 4 és 5 lesz.
A MATLAB nyelvben, ahogy a matematikában is, a tömbök és mátrixok indexelése 1-től kezdődik.A tömbök indexeléséről A legtöbb programozási nyelvben ez leggyakrabban 0-tól történik. A mátrixokat az elemek felsorolásával is meg lehet adni, szóközzel vagy vesszővel elválasztva úgy, hogy a listát szögletes zárójelek ([]) között helyezzük el. A pontosvessző azt jelenti a felsorolásban, hogy az utána álló elemek a következő sorba kerüljenek.MATLAB dokumentáció a mátrixokról A kerek zárójelek használatával al-mátrixok is megjeleníthetőek. Például: >> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
>> A(2,3) ans = 11
>> A(2:4,3:4) ans = 11 8 7 12 14 1
Négyzetes (-es) egységmátrix az eyeAz eye függvény MATLAB referenciája függvény használatával generálható. A zerosA zeros függvény MATLAB referenciája és onesA ones függvény MATLAB referenciája függvények pedig -es mátrixokat töltenek fel 0-kkal és 1-esekkel. >> eye(3) ans = 1 0 0 0 1 0 0 0 1 >> zeros(2,3) ans = 0 0 0 0 0 0 >> ones(2,3) ans = 1 1 1 1 1 1
Pontosvessző Más programozási nyelvekkel ellentétben, ahol a pontosvessző (;) választja el egymástól a parancsokat, a Matlabban, a parancsok kiírása függ tőle. Ha egy parancs végén pontosvessző szerepel, akkor nem kerül kiíratásra. Ellenkező esetben kiíródik. Ha egy parancs vagy függvény nem rendelkezik visszatérési értékkel, akkor ugyanaz történik a pontosvessző megléte vagy hiánya esetén is.
Grafika A plotA plot függvény MATLAB dokumentációja függvény segítségével 2 dimenzióban ábrázolhatunk függvényeket, ahol az x tömb tartalmazza a megjelenítendő tartományt, az y tömb pedig a függvényt. Például: x = 0:pi/100:2*pi; y = sin(x); plot(x,y) Ez a kód az alábbi szinuszfüggvényt generálja:
200px
3 dimenziós függvényeket a surf,A surf függvény MATLAB dokumentációja plot3A plot3 függvény MATLAB dokumentációja és meshA mesh függvény MATLAB dokumentációja függvényekkel lehet megjeleníteni: [X,Y] = meshgrid(-10:0.25:10,-10:0.25:10); f = sinc(sqrt((X/pi).^2+(Y/pi).^2)); mesh(X,Y,f); axis([-10 10 -10 10 -0.3 1]) xlabel('{\bfx}') ylabel('{\bfy}') zlabel('{\bfsinc} ({\bfR})') hidden off [X,Y] = meshgrid(-10:0.25:10,-10:0.25:10); f = sinc(sqrt((X/pi).^2+(Y/pi).^2)); surf(X,Y,f); axis([-10 10 -10 10 -0.3 1]) xlabel('{\bfx}') ylabel('{\bfy}') zlabel('{\bfsinc} ({\bfR})') Ez a kód egy normalizálatlan szinusz kardinálisz függvényt ábrázol hálós formában: Ez a kód egy normalizálatlan szinusz kardinálisz függvényt ábrázol összefüggő felülettel:Fájl:MATLAB mesh sinc3D.svg Fájl:MATLAB surf sinc3D.svg
Verziók
Verzió Kódnév Megjelenés ideje MATLAB 1.0 1984 MATLAB 2 1986 MATLAB 3 1987 MATLAB 3.5 1990 MATLAB 4 1992 MATLAB 4.2c R7 1994 MATLAB 5.0 R8 1996 MATLAB 5.1 R9 1997 MATLAB 5.1.1 R9.1 MATLAB 5.2 R10 1998 MATLAB 5.2.1 R10.1 MATLAB 5.3 R11 1999 MATLAB 5.3.1 R11.1 MATLAB 6.0 R12 2000 MATLAB 6.1 R12.1 2001 MATLAB 6.5 R13 2002 MATLAB 6.5.1 R13SP1 2003 MATLAB 6.5.2 R13SP2 MATLAB 7 R14 2004 MATLAB 7.0.1 R14SP1 MATLAB 7.0.4 R14SP2 2005 MATLAB 7.1 R14SP3 MATLAB 7.2 R2006a 2006 MATLAB 7.3 R2006b MATLAB 7.4 R2007a 2007 MATLAB 7.5 R2007b MATLAB 7.6 R2008a 2008 MATLAB 7.7 R2008b MATLAB 7.8 R2009a 2009 MATLAB 7.9 R2009b MATLAB 7.9.1 R2009bSP1 2010 MATLAB 7.10 R2010a MATLAB 7.11 R2010b MATLAB 7.11.1 R2010bSP1 2011 MATLAB 7.12 R2011a MATLAB 7.13 R2011b MATLAB 7.14 R2012a 2012 MATLAB 7.14 R2012bMATLAB 9.12.0R2022a2012. március 9.MATLAB 9.13R2022b2022. szeptember 15.
Fordítás
Jegyzetek
Külső hivatkozások Hivatalos blog MATLAB áttekintés , a The MathWorks oldaláról
Kategória:Matematikai szoftverek Kategória:Imperatív programozási nyelvek Kategória:Magas szintű programozási nyelvek