MATLAB is a
numerical computingNumerical analysis is the study of algorithms that use numerical approximation for the problems of mathematical analysis ....
environment and
fourth-generation programming languageA fourth-generation programming language is a programming language or programming environment designed with a specific purpose in mind, such as the development of commercial business software. In the history of computer science, the 4GL followed the 3GL in an upward trend toward higher...
. Developed by MathWorks, MATLAB allows
matrixIn mathematics, a matrix is a rectangular array of numbers, symbols, or expressions. The individual items in a matrix are called its elements or entries. An example of a matrix with six elements isMatrices of the same size can be added or subtracted element by element...
manipulations, plotting of
functionsIn mathematics, a function associates one quantity, the argument of the function, also known as the input, with another quantity, the value of the function, also known as the output. A function assigns exactly one output to each input. The argument and the value may be real numbers, but they can...
and data, implementation of
algorithmIn mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...
s, creation of
user interfaceThe user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...
s, and interfacing with programs written in other languages, including
CC is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
,
C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
,
JavaJava is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, and
FortranFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
.
Although MATLAB is intended primarily for numerical computing, an optional toolbox uses the
MuPADMuPAD is a computer algebra system . Originally developed by the MuPAD research group at the University of Paderborn, Germany, development was taken over by the company SciFace Software GmbH & Co...
symbolic engineA computer algebra system is a software program that facilitates symbolic mathematics. The core functionality of a CAS is manipulation of mathematical expressions in symbolic form.-Symbolic manipulations:...
, allowing access to symbolic computing capabilities. An additional package,
SimulinkSimulink, developed by MathWorks, is a commercial tool for modeling, simulating and analyzing multidomain dynamic systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers tight integration with the rest of the MATLAB environment and...
, adds graphical multi-domain simulation and
Model-Based DesignModel-Based Design is a mathematical and visual method of addressing problems associated with designing complex control, signal processing and communication systems. It is used in many motion control, industrial equipment, aerospace, and automotive applications...
for
dynamicA dynamical system is a concept in mathematics where a fixed rule describes the time dependence of a point in a geometrical space. Examples include the mathematical models that describe the swinging of a clock pendulum, the flow of water in a pipe, and the number of fish each springtime in a...
and embedded systems.
In 2004, MATLAB had around one million users across industry and academia. MATLAB users come from various backgrounds of
engineeringEngineering is the discipline, art, skill and profession of acquiring and applying scientific, mathematical, economic, social, and practical knowledge, in order to design and build structures, machines, devices, systems, materials and processes that safely realize improvements to the lives of...
,
scienceScience is a systematic enterprise that builds and organizes knowledge in the form of testable explanations and predictions about the universe...
, and
economicsEconomics is the social science that analyzes the production, distribution, and consumption of goods and services. The term economics comes from the Ancient Greek from + , hence "rules of the house"...
. MATLAB is widely used in academic and research institutions as well as industrial enterprises.
History
Cleve MolerCleve Barry Moler is a mathematician and computer programmer specializing in numerical analysis. In the mid to late 1970s, he was one of the authors of LINPACK and EISPACK, Fortran libraries for numerical computing. He invented MATLAB, a numerical computing package, to give his students at the...
, the chairman of the
computer-scienceComputer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
department at the
University of New MexicoThe University of New Mexico at Albuquerque is a public research university located in Albuquerque, New Mexico, in the United States. It is the state's flagship research institution...
, started developing MATLAB in the late 1970s. He designed it to give his students access to
LINPACKLINPACK is a software library for performing numerical linear algebra on digital computers. It was written in Fortran by Jack Dongarra, Jim Bunch, Cleve Moler, and Gilbert Stewart, and was intended for use on supercomputers in the 1970s and early 1980s...
and
EISPACKEISPACK is a software library for numerical computation of eigenvalues and eigenvectors of matrices, written in FORTRAN. It contains subroutines for calculating the eigenvalues of nine classes of matrices: complex general, complex Hermitian, real general, real symmetric, real symmetric banded,...
without them having to learn
FortranFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
. It soon spread to other universities and found a strong audience within the
applied mathematicsApplied mathematics is a branch of mathematics that concerns itself with mathematical methods that are typically used in science, engineering, business, and industry. Thus, "applied mathematics" is a mathematical science with specialized knowledge...
community.
Jack LittleJohn N. Little is the president and co-founder of MathWorks and a co-author of early versions of the company's MATLAB product.He is a Fellow of the IEEE and a Trustee of the Massachusetts Technology Leadership Council...
, an engineer, was exposed to it during a visit Moler made to
Stanford UniversityThe Leland Stanford Junior University, commonly referred to as Stanford University or Stanford, is a private research university on an campus located near Palo Alto, California. It is situated in the northwestern Santa Clara Valley on the San Francisco Peninsula, approximately northwest of San...
in 1983. Recognizing its commercial potential, he joined with Moler and Steve Bangert. They rewrote MATLAB in
CC is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
and founded MathWorks in 1984 to continue its development. These rewritten libraries were known as JACKPAC. In 2000, MATLAB was rewritten to use a newer set of libraries for matrix manipulation,
LAPACK-External links:* : a modern replacement for PLAPACK and ScaLAPACK* on Netlib.org* * * : a modern replacement for LAPACK that is MultiGPU ready* on Sourceforge.net* * optimized LAPACK for Solaris OS on SPARC/x86/x64 and Linux* * *...
.
MATLAB was first adopted by researchers and practitioners in
control engineeringControl engineering or Control systems engineering is the engineering discipline that applies control theory to design systems with predictable behaviors...
, Little's specialty, but quickly spread to many other domains. It is now also used in education, in particular the teaching of
linear algebraLinear algebra is a branch of mathematics that studies vector spaces, also called linear spaces, along with linear functions that input one vector and output another. Such functions are called linear maps and can be represented by matrices if a basis is given. Thus matrix theory is often...
and
numerical analysisNumerical analysis is the study of algorithms that use numerical approximation for the problems of mathematical analysis ....
, and is popular amongst scientists involved in
image processingIn electrical engineering and computer science, image processing is any form of signal processing for which the input is an image, such as a photograph or video frame; the output of image processing may be either an image or, a set of characteristics or parameters related to the image...
.
Syntax
The MATLAB application is built around the MATLAB language. The simplest way to execute MATLAB code is to type it in the Command Window, which is one of the elements of the MATLAB Desktop. When code is entered in the Command Window, MATLAB can be used as an interactive mathematical
shellA shell is a piece of software that provides an interface for users of an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web...
. Sequences of commands can be saved in a text file, typically using the MATLAB Editor, as a
scriptA shell script is a script written for the shell, or command line interpreter, of an operating system. It is often considered a simple domain-specific programming language...
or encapsulated into a
functionIn computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state...
, extending the commands available.
Variables
Variables are defined as the assignment operator,
=. MATLAB is a weakly dynamically typed programming language. It is a weakly typed language because types are implicitly converted. It is a dynamically typed language because variables can be assigned without declaring their type, except if they are to be treated as symbolic objects, and that their type can change. Values can come from constants, from computation involving values of other variables, or from the output of a function. For example:
>> x = 17
x =
17
>> x = 'hat'
x =
hat
>> y = x + 0
y =
104 97 116
>> x = [3*4, pi/2]
x =
12.0000 1.5708
>> y = 3*sin(x)
y =
-1.6097 3.0000
Vectors/matrices
As suggested by its name (a contraction of "Matrix Laboratory"), MATLAB can create and manipulate arrays of 1 (vectors), 2 (matrices), or more dimensions. In the MATLAB vernacular, a
vector refers to a one dimensional (1×
N or
N×1) matrix, commonly referred to as an array in other programming languages. A
matrix generally refers to a 2-dimensional array, i.e. an
m×
n array where
m and
n are greater than 1. Arrays with more than two dimensions are referred to as multidimensional arrays. Arrays are a fundamental type and many standard functions natively support array operations allowing work on arrays without explicit loops. Therefore the MATLAB language is also an example of
array programmingIn computer science, array programming languages generalize operations on scalars to apply transparently to vectors, matrices, and higher dimensional arrays....
language.
A simple array is defined using the syntax:
init:increment:terminator. For instance:
>> array = 1:2:9
array =
1 3 5 7 9
defines a variable named
array (or assigns a new value to an existing variable with the name
array) which is an array consisting of the values 1, 3, 5, 7, and 9. That is, the array starts at 1 (the
init value), increments with each step from the previous value by 2 (the
increment value), and stops once it reaches (or to avoid exceeding) 9 (the
terminator value).
>> array = 1:3:9
array =
1 4 7
the
increment value can actually be left out of this syntax (along with one of the colons), to use a default value of 1.
>> ari = 1:5
ari =
1 2 3 4 5
assigns to the variable named
ari an array with the values 1, 2, 3, 4, and 5, since the default value of 1 is used as the incrementer.
Indexing is one-based, which is the usual convention for
matricesIn mathematics, a matrix is a rectangular array of numbers, symbols, or expressions. The individual items in a matrix are called its elements or entries. An example of a matrix with six elements isMatrices of the same size can be added or subtracted element by element...
in mathematics, although not for some programming languages.
Matrices can be defined by separating the elements of a row with blank space or comma and using a semicolon to terminate each row. The list of elements should be surrounded by square brackets: []. Parentheses: are used to access elements and subarrays (they are also used to denote a function argument list).
>> 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
Sets of indices can be specified by expressions such as "2:4", which evaluates to [2, 3, 4]. For example, a submatrix taken from rows 2 through 4 and columns 3 through 4 can be written as:
>> A(2:4,3:4)
ans =
11 8
7 12
14 1
A square
identity matrixIn linear algebra, the identity matrix or unit matrix of size n is the n×n square matrix with ones on the main diagonal and zeros elsewhere. It is denoted by In, or simply by I if the size is immaterial or can be trivially determined by the context...
of size
n can be generated using the function
eye, and matrices of any size with zeros or ones can be generated with the functions
zeros and
ones, respectively.
>> 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
Most MATLAB functions can accept matrices and will apply themselves to each element. For example,
mod(2*J,n) will multiply every element in "J" by 2, and then reduce each element modulo "n". MATLAB does include standard "for" and "while" loops, but (as in other similar applications such as
RR is a programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians for developing statistical software, and R is widely used for statistical software development and data analysis....
), using the vectorized notation often produces code that is faster to execute. This code, excerpted from the function
magic.m, creates a
magic squareIn recreational mathematics, a magic square of order n is an arrangement of n2 numbers, usually distinct integers, in a square, such that the n numbers in all rows, all columns, and both diagonals sum to the same constant. A normal magic square contains the integers from 1 to n2...
M for odd values of
n (MATLAB function
meshgrid is used here to
generate square matrices I and J containing 1:n).
[J,I] = meshgrid(1:n);
A = mod(I+J-(n+3)/2,n);
B = mod(I+2*J-2,n);
M = n*A + B + 1;
Semicolons
Unlike many other languages, where the semicolon is used to terminate commands, in MATLAB the semicolon serves to suppress the output of the line that it concludes (it serves a similar purpose in
MathematicaMathematica is a computational software program used in scientific, engineering, and mathematical fields and other areas of technical computing...
).
Graphics
Function
plot can be used to produce a graph from two vectors
x and
y. The code:
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
produces the following figure of the
sine functionThe sine wave or sinusoid is a mathematical function that describes a smooth repetitive oscillation. It occurs often in pure mathematics, as well as physics, signal processing, electrical engineering and many other fields...
:
Three-dimensional graphics can be produced using the functions
surf,
plot3 or
mesh.
[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})')
|
This code produces a wireframeA wire frame model is a visual presentation of a three dimensional or physical object used in 3D computer graphics. It is created by specifying each edge of the physical object where two mathematically continuous smooth surfaces meet, or by connecting an object's constituent vertices using straight... 3D plot of the two-dimensional unnormalized sinc function: |
|
This code produces a surface 3D plot of the two-dimensional unnormalized sinc function: |
 |
|
 |
Structures
MATLAB supports structure data types. Since all variables in MATLAB are arrays, a more adequate name is "structure array", where each element of the array has the same field names. In addition, MATLAB supports dynamic field names (field look-ups by name, field manipulations etc). Unfortunately, MATLAB JIT does not support MATLAB structures, therefore just a simple bundling of various variables into a structure will come at a cost.
Function handles
MATLAB supports elements of lambda-calculus by introducing function handles, or function references, which are implemented either in .m files or anonymous/nested functions.
Secondary programming
MATLAB also carries secondary programming which incorporates the MATLAB standard code into a more user friendly way to represent a function or system.
Classes
Although MATLAB supports classes, the syntax and calling conventions are significantly different from other languages.
MATLAB supports value classes and reference classes, depending if the class has
handle as super-class (for reference classes) or not (for value classes).
Depending if a class is declared as value or reference, method call behavior is different. For example, a call to a method
object.method;
can alter any member of
object only if
object is an instance of a reference class.
Object-oriented programming
MATLAB's support for
object-oriented programmingObject-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
includes classes, inheritance, virtual dispatch, packages, pass-by-value semantics, and pass-by-reference semantics.
classdef hello
methods
function doit(this)
disp('Hello!')
end
end
end
When put into a file named
hello.m, this can be executed with the following commands:
>> x = hello;
>> x.doit;
Hello!
Interfacing with other languages
MATLAB can call functions and subroutines written in the
C programming languageC is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
or
FortranFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
. A wrapper function is created allowing MATLAB data types to be passed and returned. The dynamically loadable object files created by compiling such functions are termed "
MEX-fileMEX stands for MATLAB Executable. A MEX file provides an interfacebetween MATLAB and subroutines written in C, C++ or Fortran.When compiled, MEX files are dynamically loaded and allow non-MATLAB code to be invoked from within...
s" (for MATLAB executable).
Libraries written in
JavaJava is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
,
ActiveXActiveX is a framework for defining reusable software components in a programming language-independent way. Software applications can then be composed from one or more of these components in order to provide their functionality....
or
.NETThe .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
can be directly called from MATLAB and many MATLAB libraries (for example
XMLExtensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
or
SQLSQL is a programming language designed for managing data in relational database management systems ....
support) are implemented as wrappers around Java or ActiveX libraries. Calling MATLAB from Java is more complicated, but can be done with MATLAB extension, which is sold separately by MathWorks, or using an undocumented mechanism called JMI (Java-to-Matlab Interface), which should not be confused with the unrelated
Java Metadata InterfaceGiven that metadata is a set of descriptive, structural and administrative data about a group of computer data , Java Metadata Interface is a platform-neutral specification that defines the creation, storage, access, lookup and exchange of metadata in the Java programming language.- History :The...
that is also called JMI.
As alternatives to the
MuPADMuPAD is a computer algebra system . Originally developed by the MuPAD research group at the University of Paderborn, Germany, development was taken over by the company SciFace Software GmbH & Co...
based Symbolic Math Toolbox available from MathWorks, MATLAB can be connected to
MapleMaple is a general-purpose commercial computer algebra system. It was first developed in 1980 by the Symbolic Computation Group at the University of Waterloo in Waterloo, Ontario, Canada....
or
MathematicaMathematica is a computational software program used in scientific, engineering, and mathematical fields and other areas of technical computing...
.
Libraries also exist to import and export
MathMLMathematical Markup Language is an application of XML for describing mathematical notations and capturing both its structure and content. It aims at integrating mathematical formulae into World Wide Web pages and other documents...
.
License
MATLAB is a
proprietaryProprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...
product of MathWorks, so users are subject to
vendor lock-inIn economics, vendor lock-in, also known as proprietary lock-in or customer lock-in, makes a customer dependent on a vendor for products and services, unable to use another vendor without substantial switching costs...
. Although MATLAB Builder can deploy MATLAB functions as library files which can be used with
.NETThe .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
or Java application building environment, future development will still be tied to the MATLAB language.
Each toolbox is purchased separately. If an evaluation licence is requested, the MathWorks sales department requires detailed information about the project for which MATLAB is to be evaluated. Overall the process of acquiring a licence is expensive in terms of money and time. If at all granted (which happens often), the evaluation licence is valid for two weeks. Student version of MATLAB are sold at bookstores and what the professors encourages them to buy, though standard version is what the universities and colleges installed in labs.
Alternatives
MATLAB has a number of competitors. Commercial competitors include
MathematicaMathematica is a computational software program used in scientific, engineering, and mathematical fields and other areas of technical computing...
, Maple,
IDL by
ITT Visual Information SolutionsExelis Visual Information Solutions , a wholly owned subsidiary of Exelis, Inc., provides software for the analysis and visualization of scientific data and imagery...
and Metlynx.
There are also free
open sourceThe term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
alternatives to MATLAB, in particular
GNU OctaveGNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command-line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB...
,
FreeMatFreeMat is a free open source numerical computing environment and programming language, similar to MATLAB and GNU Octave. In addition to supporting many MATLAB functions and some IDL functionality, it features a codeless interface to external C, C++, and Fortran code, further parallel distributed...
, and
ScilabScilab is an open source, cross-platform numerical computational package and a high-level, numerically oriented programming language. Itcan be used for signal processing, statistical analysis, image enhancement, fluid dynamics simulations, numerical optimization, and modeling and simulation of...
which are intended to be mostly compatible with the MATLAB language (but not the MATLAB desktop environment).
Among other languages that treat arrays as basic entities (array programming languages) are APL and
JThe J programming language, developed in the early 1990s by Kenneth E. Iverson and Roger Hui, is a synthesis of APL and the FP and FL function-level languages created by John Backus....
,
FortranFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
95 and 2003, as well as the statistical language S (the main implementations of S are
S-PLUSS-PLUS is a commercial implementation of the S programming language sold by TIBCO Software Inc..It features object-oriented programming capabilities and advanced analytical algorithms.-Historical timeline:...
and the popular open source language
RR is a programming language and software environment for statistical computing and graphics. The R language is widely used among statisticians for developing statistical software, and R is widely used for statistical software development and data analysis....
).
There are also several libraries to add similar functionality to existing languages, such as Itpp for
C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
,
Perl Data LanguagePDL is a set of array programming extensions to the Perl programming language.PDL is an extension to Perl v5, intended for scientific and other data intensive programming tasks...
for
PerlPerl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
,
ScalaLab for Scala and
SciPySciPy is an open source library of algorithms and mathematical tools for the Python programming language.SciPy contains modules for optimization, linear algebra, integration, interpolation, special functions, FFT, signal and image processing, ODE solvers and other tasks common in science and...
together with NumPy and
Matplotlibmatplotlib is a plotting library for the Python programming language and its NumPy numerical mathematics extension. It provides an object-oriented API which allows plots to be embedded into applications using generic GUI toolkits, like wxPython, Qt, or GTK...
for
PythonPython is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
.
Release history
| Version | Release name | Year | Release Date | Notes |
| MATLAB 1.0 |
|
1984 |
|
| MATLAB 2 |
|
1986 |
|
| MATLAB 3 |
|
1987 |
|
| MATLAB 3.5 |
|
1990 |
|
Ran on MS-DOS but required at least a 386 processor. Version 3.5m required math coprocessor |
| MATLAB 4 |
|
1992 |
|
| MATLAB 4.2c |
R7 |
1994 |
|
Ran on Windows 3.1. Required a math coprocessor |
| MATLAB 5.0 |
R8 |
1996 |
December, 1996 |
| MATLAB 5.1 |
R9 |
1997 |
May, 1997 |
| MATLAB 5.1.1 |
R9.1 |
|
| MATLAB 5.2 |
R10 |
1998 |
March, 1998 |
| MATLAB 5.2.1 |
R10.1 |
|
| MATLAB 5.3 |
R11 |
1999 |
January, 1999 |
| MATLAB 5.3.1 |
R11.1 |
November, 1999 |
| MATLAB 6.0 |
R12 |
2000 |
November, 2000 |
| MATLAB 6.1 |
R12.1 |
2001 |
June, 2001 |
| MATLAB 6.5 |
R13 |
2002 |
July, 2002 |
| MATLAB 6.5.1 |
R13SP1 |
2003 |
|
| MATLAB 6.5.2 |
R13SP2 |
|
| MATLAB 7 |
R14 |
2004 |
June, 2004 |
| MATLAB 7.0.1 |
R14SP1 |
October, 2004 |
| MATLAB 7.0.4 |
R14SP2 |
2005 |
March 7, 2005 |
| MATLAB 7.1 |
R14SP3 |
September 1, 2005 |
| MATLAB 7.2 |
R2006a |
2006 |
March 1, 2006 |
| MATLAB 7.3 |
R2006b |
September 1, 2006 |
HDF5-based MAT-file support |
| MATLAB 7.4 |
R2007a |
2007 |
March 1, 2007 |
| MATLAB 7.5 |
R2007b |
September 1, 2007 |
Last release for Windows 2000 and PowerPC Mac. License Server support for Windows Vista |
| MATLAB 7.6 |
R2008a |
2008 |
March 1, 2008 |
| MATLAB 7.7 |
R2008b |
October 9, 2008 |
| MATLAB 7.8 |
R2009a |
2009 |
March 6, 2009 |
First release for 32-bit & 64-bit Windows 7. |
| MATLAB 7.9 |
R2009b |
September 4, 2009 |
First release for Intel 64-bit Mac, and last for Solaris SPARC. |
| MATLAB 7.9.1 |
R2009bSP1 |
2010 |
April 1, 2010 |
|
| MATLAB 7.10 |
R2010a |
March 5, 2010 |
Last release for Intel 32-bit Mac. |
| MATLAB 7.11 |
R2010b |
September 3, 2010 |
| MATLAB 7.11.1 |
R2010bSP1 |
2011 |
March 17, 2011 |
| MATLAB 7.12 |
R2011a |
April 8, 2011 |
|
| MATLAB 7.13 |
R2011b |
September 1, 2011 |
Native
.fig: MATLAB Figure
.m : MATLAB function, script, or class
.mat : MATLAB binary file for storing variables
.mex... : MATLAB executable (platform specific, e.g. ".mexmac" for the
MacThe Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...
, ".mexglx" for
LinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, etc.)
.p : MATLAB content-obscured .m file (result of pcode )
Third-party
.jkt : GPU Cache file generated by Jacket for MATLAB (AccelerEyes)
.mum : MATLAB CAPE-OPEN Unit Operation Model File (AmsterCHEM)
Easter Eggs
Several
easter eggImage:Carl Oswald Rostosky - Zwei Kaninchen und ein Igel 1861.jpg|250px|thumb|right|Example of Easter egg hidden within imagerect 467 383 539 434 desc none...
s exist in the software. These include hidden pictures, and random in-jokes.
See also
- List of numerical analysis software
- Comparison of numerical analysis software
The following tables provide a comparison of numerical analysis software.- General :- Operating system support :The operating systems the software can run on natively .- Language features :Colors indicate features available as...
- List of numerical libraries
- GNU Octave
GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command-line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB...
- free software
- Scilab
Scilab is an open source, cross-platform numerical computational package and a high-level, numerically oriented programming language. Itcan be used for signal processing, statistical analysis, image enhancement, fluid dynamics simulations, numerical optimization, and modeling and simulation of...
- free software
- Sage - free software
- FreeMat
FreeMat is a free open source numerical computing environment and programming language, similar to MATLAB and GNU Octave. In addition to supporting many MATLAB functions and some IDL functionality, it features a codeless interface to external C, C++, and Fortran code, further parallel distributed...
- free software
External links
- MATLAB overview, at the MathWorks website
- System Requirements - Platform Roadmap, at the MathWorks website.
- MATLAB Central File Exchange - library of over 12,000 MATLAB files and toolboxes, mostly distributed under BSD License.
- [news://comp.soft-sys.matlab comp.soft-sys.matlab]
- LiteratePrograms (MATLAB)
- Official blogs
- Examples to remote control R&S instruments from MATLAB
- Comparison of mathematical programs for data analysis ScientificWeb
- Physical Modeling in MATLAB by Allen B. Downey, Green Tea Press, PDF, ISBN 978-0-615-18550-7. An introduction to MATLAB.
- Writing Fast MATLAB Code by P. Getreuer
- Calling Matlab from Java: MatlabControl JMI Wrapper, The MatlabJava Server, MatlabControl
- Calling Matlab from Java: using Java RMI server - JAMAL
- Free Alternatives to Matlab, tu-berlin