Matlab

from Wikipedia, the free encyclopedia
Matlab

logo
MATLAB R2015b.png
Matlab R2015b on Windows 10
Basic data

developer The MathWorks , Inc.
Publishing year 1984
Current  version R2020a
( March 18, 2020 )
operating system Linux , Unix , Windows , macOS , Solaris
programming language C , C ++ , Fortran , Java
category Mathematics , control engineering , modeling
License proprietary
German speaking No
www.mathworks.de

Matlab (spelling: MATLAB) is a commercial software from the US company MathWorks for solving mathematical problems and for graphing the results. Matlab is primarily designed for numerical calculations using matrices , from which the name is derived: MATrix LABoratory .

Emergence

Matlab was in the late 1970s by Cleve Moler at the University of New Mexico designed to give students the Fortran - libraries LINPACK and EISPACK for linear algebra from a command line without programming skills to make them accessible in Fortran. Together with Jack Little and Steve Bangert , Moler founded The MathWorks in 1984 and made Matlab a commercial product that, together with its first function collection, the Control System Toolbox , found many users, especially in control engineering. The academic bond has remained in the development and distribution of relatively inexpensive student versions to this day and may also have been the basis for the success of the software alongside other numerical platforms such as MatrixX . The LINPACK and EISPACK libraries used by Matlab were replaced in 2000 by the free libraries LAPACK and BLAS , which were also written in Fortran .

commitment

In contrast to computer algebra systems, Matlab does not serve the symbolic, but primarily the numerical (numerical) solution of problems. The software is used in industry and at universities primarily for numerical simulation as well as data acquisition , data analysis and evaluation. Another focus of application is economics, for which Mathworks provides extension packages (e.g. econometrics and financial market theory).

Matlab is also the basis for Simulink , another product from The MathWorks, which is used for time-controlled simulation, and Stateflow , which is used for event-oriented simulation, as well as for numerous application and domain-specific extensions.

Structure and toolboxes

Programming is carried out under Matlab in a proprietary programming language that is interpreted on the respective machine ( computer ). Smaller programs as so-called scripts are packed or functions to closed units, the creation of application-oriented "tool boxes" ( toolboxes allowed).

Many such packages are also commercially available. Due to the simplified, mathematically oriented syntax of the Matlab script language and the extensive function libraries for, for example, statistics , signal and image processing , the creation of corresponding programs is much easier than z. B. C . One example is the Symbolic Toolbox for using symbolic expressions as opposed to variables assigned with numbers. There are also interfaces for integrating C code, as well as a compiler that can be used to create executable C code from a script independently of Matlab. This means that mathematically complex modules for C projects can be developed and tested in the Matlab environment.

From object-oriented programming, Matlab offers the concepts of classes , inheritance , packages and call-by-value calls.

In addition to the Matlab language, Matlab consists of a graphic desktop environment in order to see different views such as variables, plots and code at a glance and to be able to manage many tasks through mouse interaction and keyboard shortcuts .

Interaction with other languages

Matlab can call functions in C or Fortran, for example . To do this, an adapter function (the so-called mexFunction ) must be included, which controls the transfer of parameters and return values .

Libraries in Java , ActiveX or .NET can be called up directly from Matlab. Many libraries in Matlab, such as those for the connection of XML or SQL , are built as adapters around Java or ActiveX. The opposite direction can also be used via the Matlab compiler and so-called builder add-ons, and functions and code can be called in Matlab from JAVA or .NET.

As an alternative to the MuPAD -based Symbolic Math Toolbox (also from MathWorks), Matlab can also be connected to Maple or Mathematica .

Alternatives

Since Matlab is based on the open source libraries LAPACK and BLAS as a language from version 6 onwards, there are now several free alternatives to Matlab with the same numerical quality. These alternatives often focus on the possibilities as a programming language. The alternative Scilab / Xcos comes from the French INRIA (Institut National de Recherche en Informatique et en Automatique) . In the area of free software there are several open source projects that simulate the functionality of Matlab and highlight individual aspects. These projects often do not seek direct compatibility ; the differences to Matlab vary. As part of the GNU project , GNU Octave was created, which is largely code-compatible with Matlab. Another is the FreeMat software package .

Matplotlib and NumPy are Python libraries that expand Python into a Matlab alternative. Numpy is also based on LAPACK and BLAS. The syntax of Python / numpy differs from Matlab, but wants to be comparatively simple.

Two other alternatives are Scala , a JVM -based programming language, and ILNumerics , which is based on .NET . A new alternative to Matlab is the Julia programming language, which is similar in syntax . The larger computer algebra systems , intended primarily for symbolic computation, also contain numeric algorithms ; Examples are Maple , Maxima and Mathematica .

literature

Web links

Individual evidence

  1. fr.mathworks.com .
  2. Matlab News & Notes - Winter 2000  ( page no longer available , search in web archivesInfo: The link was automatically marked as defective. Please check the link according to the instructions and then remove this notice. (English)@1@ 2Template: Toter Link / www.mathworks.de  
  3. ^ MATLAB Documentation. Retrieved June 23, 2017 .
  4. ^ Dan Spielman: Connecting C and Matlab . Yale University, Computer Science Department. February 10, 2004. Retrieved May 20, 2008.
  5. ^ Matlab Builder JA MathWorks
  6. Numpy for Matlab Users (English)