Matlab ist eine kommerzielle mathematische Software der Firma Mathworks zur Lösung diverser mathematischer Probleme und zur grafischen Darstellung der Ergebnisse.
Matlab rechnet hauptsächlich mit Matrizen, daher auch der Name Matlab (Matrices Laboratory).
Programmiert wird MatLab in einer proprietären, plattformunabhängigen Programmiersprache, die auf der jeweiligen Maschine (Computer) interpretiert wird. Entwickelt wurde sie von Cleve Moler. Kleinere Programme können als so genannte Scripts oder Funktionen zu atomaren Einheiten verpackt werden, was das Erstellen von anwendungsorientierten Werkzeugkisten (Toolboxes) erlaubt. Viele solcher Pakete sind auch kommerziell erhältlich. Durch die vereinfachte, mathematisch orientierte Syntax der Matlab-Skriptsprache und die umfangreichen Funktionsbibliotheken für Statistik, Signalverarbeitung, Bildverarbeitung u.v.m. ist die Erstellung entsprechender Programme wesentlich einfacher möglich als z.B. unter C. Ferner gibt es Schnittstellen, um C-Code einzubinden, sowie einen Übersetzer, mit dem aus einem Script unabhängig von Matlab lauffähiger C-Code erstellt werden kann. Damit können mathematisch aufwendige Module für C-Projekte in der Matlab-Umgebung entwickelt und getestet werden.
Matlab dient im Gegensatz zu Computeralgebrasystemen nicht der symbolischen, sondern primär der zahlenmäßigen Lösung von Problemen. Die Software wird in Industrie und an Hochschulen vor allem für numerische Simulation eingesetzt.
Weitere mathematische Software
Es gibt ein paar Programme, die der MatLab-Skriptsprache nachempfundene Sprachen verwenden:
- GNU Octave
- Rlab
- Scilab
- Euler
Darüberhinaus sind auch in Computeralgebrasystemen numerische Algorithmen zu finden:
Da Matlab die Arbeit mit vielen Komponenten kaum unterstützt (z.B. durch statische Typen und definierte Schnittstellen für einzelne Module), sollte man für mittlere und große Projekte ernsthaft überlegen, ob man nicht besser auf eine Allzwecksprache und entsprechende Bibliotheken zurückgreift, zum Beispiel:
- GNU Scientific Library (GSL)
- LAPACK
- FFTW
- PLPlot