AMATLAB numerikus számítások elvégzésére alkalmas speciális programrendszer és egybenprogramozási nyelv amelyet AMathWorks fejleszt. A programrendszer képesmá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, aMuPAD 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.[2]
A MATLAB-ot (a név az angol „MATrixLABoratory” szavakból összeollózott kifejezés, ami a mátrix-számításokat hangsúlyozza[3]) az 1970-es évek elejénCleve Moler kezdte el fejleszteni, az akkoriÚj-Mexikói Egyetem Számítástudományi Intézetének elnöke.[4] Kezdetben csak a diákjai munkáját tervezte megkönnyíteni, hogy ezen keresztül el tudják érni aLINPACK ésEISPACK csomagokatFortran 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 ésSteve Bangert-hez, majd újraírták a MATLAB-ot C nyelven és megalapították aThe MathWorks-öt 1984-ben. Ezek az újraírt könyvtárakJACKPAC néven váltak ismertté. 2000-ben a MATLAB-ot ismét újraírták, hogy alkalmas legyen az akkoriban születettLAPACK programkönyvtár használatára.[5]
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 alineáris algebra ésnumerikus analízis szemléltetésében és népszerű még a képfeldolgozással foglalkozó kutatók között is.[4]
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.[6]
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.[7] 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=17x=17>>x='hat'x=hat>>x=[3*4,pi/2]x=12.00001.5708>>y=3*sin(x)y=-1.60973.0000
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:
A fenti példa egyarray 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 megadottmettől lesz, az utolsó eleme a szintaxis utolsó részében megadottmeddig és a differencia pedig a középen állómennyivel.Ha ameddig nem tagja a sorozatnak, akkor a legnagyobb tag a nála kisebb számok közül az a szám lesz, amelybenmennyivel a legtöbbször megvan. Például:
Amennyivel értékét nem kötelező megadni, ha ezt elhagyjuk, akkor az értéke alapértelmezetten 1 lesz. Például:
Így azarray 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.[8] 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.[9] A kerek zárójelek használatával al-mátrixok is megjeleníthetőek. Például:
>>A=[163213;510118;96712;415141]A=16321351011896712415141>>A(2,3)ans=11>>A(2:4,3:4)ans=118712141
Négyzetes (
-es)egységmátrix azeye[10] függvény használatával generálható. Azeros[11] ésones[12] függvények pedig
-es mátrixokat töltenek fel 0-kkal és 1-esekkel.
>>eye(3)ans=100010001>>zeros(2,3)ans=000000>>ones(2,3)ans=111111
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.
Aplot[13] függvény segítségével 2 dimenzióban ábrázolhatunk függvényeket, ahol azx tömb tartalmazza a megjelenítendő tartományt, azy 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:

3 dimenziós függvényeket asurf,[14]plot3[15] ésmesh[16] 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([-1010-1010-0.31])xlabel('{\bfx}')ylabel('{\bfy}')zlabel('{\bfsinc} ({\bfR})')hiddenoff | | [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([-1010-1010-0.31])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: |
 | |  |
| 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 | R2012b |
| MATLAB 9.12.0 | R2022a | 2012. március 9. |
| MATLAB 9.13 | R2022b | 2022. szeptember 15. |
- Ez a szócikk részben vagy egészben aMATLAB című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Főbb programozási nyelvek |
|---|
|
|