Kasutaja:KrSims/MATLAB

Allikas: Vikipeedia
MATLAB
Paradigma Funktionaalne, imperatiivne, protseduraalne, objektorienteeritud,
Väljalaskeaeg 1984
Looja Cleve Moler
Arendaja MathWorks
Tüüpimine dünaamiline, nõrk
Mõjutatud keeltest APL, EISPACK, LINPACK, PL/0, Speakeasy
Mõjutanud keeli Julia, Octave, Scilab
OS Windows, MacOS ja Linux[1]
Litsents Varaline kommertstarkvara
Veebileht https://www.mathworks.com

MATLAB (tuleneb ingl. väljendist matrix laboratory, tõlgituna maatriksite labor) on mitmeparadigmaline numbriline andmetöötluskeskkond ja varaline kommertstarkvara, mille arendajaks on MathWorks. MATLAB võimaldab maatriksite manipuleerimist, funktsioonide ja andmete joonestamist, algoritmide rakendamist, kasutajaliideste loomist ning teistes keeltes kirjutatud programmide liidestamist.

Kuigi MATLAB on peamiselt mõeldud numbriliseks andmetöötluseks, kasutab valikuline tööriistakomplekt MuPAD arvutialgebrasüsteemi, et teha arvutialgebrat. Lisapakett, Simulink, lisab graafilise mitme domeeni vahelise simulatsiooni ja mudelipõhise disaini dünaamilisteks ja manustatud süsteemideks.

2018. aastast kasutab MATLABi 3 miljonit inimest.[2]

Ajalugu[muuda | muuda lähteteksti]

Cleve Moler, New Mexico Ülikooli informaatika osakonna esimees, alustas MATLABi arendamist 1070ndate lõpu poole.[3] Tema eesmärk oli anda oma üliõpilastele ligipääs LINPACKile ja EISPACKile ilma, et nad Fortrani õppima peaks. See levis kiiresti teistesse ülikoolidesse ja leidis suurt kasutust rakendusmatemaatikas. Insener Jack Little nägi MATLABi kui Moler külastas Stanordi ülikooli 1983. aastal. Nähes selle ärilist potentsiaali, ühines ta Moleri ja Steve Bangertiga. Nad kirjutasid MATLABi ümber C keelde ning asutasid MathWorksi 1984. aastal, et jätkata MATLABi arendamist. Neid ümber kirjutatud teeke tunti kui JACKPAC. Aastal 2000 kirjutati MATLAB ümber et kasutada uuemat teekidekogu, LAPACKi, maatriksite manipuleerimiseks.[4]

Süntaks[muuda | muuda lähteteksti]

MATLAB rakendus on ehitatud ümber MATLAB programmeerimiskeele. MATLAB rakenduse levinud kasutus hõlmab enda alla "käsuakna" kasutamist kui interaktiivse matemaatilise käsureana või MATLAB koodi sisaldavate tekstifailide käivitamist.[5]

Muutujad[muuda | muuda lähteteksti]

Muutujad defineeritakse operaatoriga =. MATLAB on nõrga tüüpimisega programmeerimiskeel, sest tüübid teisendatakse kaudselt.[6] Muutujaid saab määrata ilma selle tüübi deklareerimata, välja arvatud juhul, kui neid koheldakse kui sümboolsete objektidena ning nende tüüp võib muutuda.[7] Andmed võivad tulla konstantidest, teistest muutujatest tulenevate andmete arvutamisest või funktsiooni väljundist. Näiteks:

>> x = 17
x =
 17

>> x = 'lepp'
x =
lepp

>> x = [3*4, pi/2]
x =
   12.0000    1.5708

>> y = 3*sin(x)
y =
   -1.6097    3.0000

Vektorid ja maatriksid[muuda | muuda lähteteksti]

Lihtne massiiv defineeritakse läbi kooloni süntaksi algne väärtus:samm:lõppväärtus. Näiteks

>> massiiv = 1:2:9
massiiv =
 1 3 5 7 9

määrab muutuja nimega massiiv (või määrab uue väärtuse olemasolevale muutujale nimega massiiv) mis on massiiv, mille väärtusteks on 1, 3, 5, 7 ja 9, ehk massiiv algab numbrist 1 (mis on algne väärtus), igale järgmisele sammule liidetakse 2 ning lõppeb kui jõuab numbrini (või ületab numbrit) 11 (lõppväärtus).

>> massiiv = 1:3:9
massiiv =
 1 4 7

Struktuurid[muuda | muuda lähteteksti]

MATLAB toetab struktuuri andmetüüpe.[8] Kuna kõik muutujad MATLABis on massiivid, on parem nimi selle jaoks "struktuurimassiiv", kus iga massivis olev element omab samu väljanimesid. Lisaks toetab MATLAB dünaamilisi väljanimesid.[9]

Funktsioonid[muuda | muuda lähteteksti]

Matlabis funktsiooni luues peab failinimi olema sama failis oleva esimese funktsiooniga. Kehtivad funktsiooninimed algavad tähestikku kuuluva tähega ning võivad sisaldada tähti, numbreid või alakriipse. Muutujad ja funktsioonid on tõstutundlikud.[10]

Klassid ja objektorienteeritud programmeerimine[muuda | muuda lähteteksti]

MATLAB toetab objektorienteeritud programmeerimist, mis kaasab endaga klasse, pärandeid, virtuaalset lähetamist, väärtuse järgi edastamise semantikat ning viite järgi edastamise semantikat.[11] Siiski on süntaks märkimisväärselt erinev teistest keeltest. MATLABis on väärtuse klassid ja viiteklassid, olenevalt kas klassi käsitleja on super-klass (viiteklasside jaoks) või mitte (väärtuse klasside jaoks).[12]

Graafika ja graafilise kasutajaliidese programmeerimine[muuda | muuda lähteteksti]

MATLABis on tihedalt integreeritud graafi joonestamise funktsioonid. Näiteks funktsiooni plot saab kasutada, et joonestada graaf kahe vektoriga x ja y. Kood

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

loob sellise graafi siinuse funktsioonist:

Teiste programmidega liidestamine[muuda | muuda lähteteksti]

MATLAB saab jooksutada funktsioone ja alamprogramme keeltes C ja Fortran.[13] Luuakse pakkimisfunktsioon, mis laseb MATLAB andmetüüpe sooritada ja tagastada. MEX failid on dünaamiliselt laetavad failid mis on loodud kompileerides sellised funktsioone.[14][15] 2014. aastal lisati kahesuunaline liidestamine Pythoniga.[16][17]

Teeke mis kirjutatud programmeerimiskeeles Perl, Java, ActiveX või .NET saab esile kutsuda otse MATLABist[18][19] ja mitmed MATLAB teegid (näiteks XML või SQL toetus) on implementeeritud kui pakkimisfunksioonid ümber Java või ActiveX teekide.

Alternatiivid[muuda | muuda lähteteksti]

MATLABil on ka mitmeid konkurente, näiteks Mathematica, Maple ja IDL. On ka tasuta avatud lähtekoodiga alternatiive, näiteks nagu GNU Octave, Scilab, FreeMat, Julia ja SageMath, mis on mingil määral ühilduvad MATLAB keelega.

Viited[muuda | muuda lähteteksti]

  1. "System Requirements and Platform Availability". MathWorks. Vaadatud 5. detsember 2019.
  2. The MathWorks (aprill 2018). "Company Overview" (PDF).
  3. Cleve Moler (detsember 2004). "The Origins of MATLAB". Vaadatud 5. detsember 2019.
  4. Moler, Cleve (jaanuar 2000). "MATLAB Incorporates LAPACK". Cleve's Corner. MathWorks. Vaadatud 5. detsember 2019.
  5. "MATLAB Documentation". MathWorks. Vaadatud 5. detsember 2019.
  6. "Comparing MATLAB with Other OO Languages". MATLAB. MathWorks. Vaadatud 5. detsember 2019.
  7. "Create Symbolic Variables and Expressions". Symbolic Math Toolbox. MathWorks. Vaadatud 5. detsember 2019.
  8. "Structures". MathWorks. Vaadatud 5. detsember 2019.
  9. "Generate Field Names from Variables". MathWorks. Vaadatud 5. detsember 2019.
  10. "Case and Space Sensitivity". MathWorks. Vaadatud 5. detsember 2019.
  11. "Object-Oriented Programming". MathWorks. Vaadatud 5. detsember 2019.
  12. "Comparing Handle and Value Classes". MathWorks.
  13. "Application Programming Interfaces to MATLAB". MathWorks. Vaadatud 5. detsember 2019.
  14. "Create MEX-Files". MathWorks. Vaadatud 5. detsember 2019.
  15. Spielman, Dan (10. veebruar 2004). "Connecting C and Matlab". Yale University, Computer Science Department. Vaadatud 5. detsember 2019.
  16. "MATLAB Engine for Python". MathWorks. Vaadatud 5. detsember 2019.
  17. "Call Python Libraries". MathWorks. Vaadatud 5. detsember 2019.
  18. "External Programming Language Interfaces". MathWorks. Vaadatud 5. detsember 2019.
  19. "Call Perl script using appropriate operating system executable". MathWorks. Vaadatud 5. detsember 2019.