Is there a way to get the version of MATLAB without launching the engine? When launched (in non-GUI mode) it prints the version to stout - but I am using it remotely from Java and so that output is not available.
An additional hint; if you're looking for the version number to ensure that the installed MATLAB is no older than (some particular release number), check out the documentation for VERLESSTHAN, at It might help you solve your problem without having to parse the string yourself.
MATLAB (an abbreviation of "MATrix LABoratory"[22]) is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages.
Although MATLAB is intended primarily for numeric computing, an optional toolbox uses the MuPAD symbolic engine allowing access to symbolic computing abilities. An additional package, Simulink, adds graphical multi-domain simulation and model-based design for dynamic and embedded systems.
As of 2020[update], MATLAB has more than four million users worldwide.[23] They come from various backgrounds of engineering, science, and economics. As of 2017[update], more than 5000 global colleges and universities use MATLAB to support instruction and research.[24]
MATLAB was invented by mathematician and computer programmer Cleve Moler.[25] The idea for MATLAB was based on his 1960s PhD thesis.[25] Moler became a math professor at the University of New Mexico and started developing MATLAB for his students[25] as a hobby.[26] He developed MATLAB's initial linear algebra programming in 1967 with his one-time thesis advisor, George Forsythe.[25] This was followed by Fortran code for linear equations in 1971.[25]
In the 1980s, Cleve Moler met John N. Little. They decided to reprogram MATLAB in C and market it for the IBM desktops that were replacing mainframe computers at the time.[25] John Little and programmer Steve Bangert re-programmed MATLAB in C, created the MATLAB programming language, and developed features for toolboxes.[26]
MATLAB was first released as a commercial product in 1984 at the Automatic Control Conference in Las Vegas.[25][26] MathWorks, Inc. was founded to develop the software[30] and the MATLAB programming language was released.[28] The first MATLAB sale was the following year, when Nick Trefethen from the Massachusetts Institute of Technology bought ten copies.[26][33]
By the end of the 1980s, several hundred copies of MATLAB had been sold to universities for student use.[26] The software was popularized largely thanks to toolboxes created by experts in various fields for performing specialized mathematical tasks.[29] Many of the toolboxes were developed as a result of Stanford students that used MATLAB in academia, then brought the software with them to the private sector.[26]
Over time, MATLAB was re-written for early operating systems created by Digital Equipment Corporation, VAX, Sun Microsystems, and for Unix PCs.[26][28] Version 3 was released in 1987.[34] The first MATLAB compiler was developed by Stephen C. Johnson in the 1990s.[28]
In 2000, MathWorks added a Fortran-based library for linear algebra in MATLAB 6, replacing the software's original LINPACK and EISPACK subroutines that were in C.[28] MATLAB's Parallel Computing Toolbox was released at the 2004 Supercomputing Conference and support for graphics processing units (GPUs) was added to it in 2010.[28]
Some especially large changes to the software were made with version 8 in 2012.[35] The user interface was reworked[citation needed] and Simulink's functionality was expanded.[36] By 2016, MATLAB had introduced several technical and user interface improvements, including the MATLAB Live Editor notebook, and other features.[28]
The MATLAB application is built around the MATLAB programming language. Common usage of the MATLAB application involves using the "Command Window" as an interactive mathematical shell or executing text files containing MATLAB code.[37]
Variables are defined using the assignment operator, =. MATLAB is a weakly typed programming language because types are implicitly converted.[38] It is an inferred typed language because variables can be assigned without declaring their type, except if they are to be treated as symbolic objects,[39] 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:
Matrices can be defined by separating the elements of a row with blank space or comma and using a semicolon to separate the rows. 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).
MATLAB supports structure data types.[41] 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[42] (field look-ups by name, field manipulations, etc.).
When creating a MATLAB function, the name of the file should match the name of the first function in the file. Valid function names begin with an alphabetic character, and can contain letters, numbers, or underscores. Variables and functions are case sensitive.[43]
MATLAB supports object-oriented programming including classes, inheritance, virtual dispatch, packages, pass-by-value semantics, and pass-by-reference semantics.[47] However, the syntax and calling conventions are significantly different from other languages. MATLAB has value classes and reference classes, depending on whether the class has handle as a super-class (for reference classes) or not (for value classes).[48]
MATLAB supports developing graphical user interface (GUI) applications.[49] UIs can be generated either programmatically or using visual design environments such as GUIDE and App Designer.[50][51]
MATLAB can call functions and subroutines written in the programming languages C or Fortran.[52] A wrapper function is created allowing MATLAB data types to be passed and returned. MEX files (MATLAB executables) are the dynamically loadable object files created by compiling such functions.[53][54] Since 2014 increasing two-way interfacing with Python was being added.[55][56]
Libraries written in Perl, Java, ActiveX or .NET can be directly called from MATLAB,[57][58] and many MATLAB libraries (for example XML or SQL support) are implemented as wrappers around Java or ActiveX libraries. Calling MATLAB from Java is more complicated, but can be done with a MATLAB toolbox[59] which is sold separately by MathWorks, or using an undocumented mechanism called JMI (Java-to-MATLAB Interface),[60][61] (which should not be confused with the unrelated Java Metadata Interface that is also called JMI). Official MATLAB API for Java was added in 2016.[62]
In 2020, MATLAB withdrew services from two Chinese universities as a result of US sanctions. The universities said this will be responded to by increased use of open-source alternatives and by developing domestic alternatives.[66]
I had the same error when running executables from matlab's system() function. The executable was dependent on a different libstdc++ than matlab had available. For both matlab R2022a and R2022b on Ubuntu 22.04, I simply linked matlab's shortcut to the system's libc++ rather than the one that ships with matlab. Perhaps this is an edge case that doesn't match the OP's from years ago, but it's one I've run into with each version of matlab and had to fix multiple times, each time leading me to this Q&A.
Cleve Moler is the author of the first MATLAB, one of the founders of MathWorks, and is currently Chief Mathematician at the company. He is the author of two books about MATLAB that are available online. He writes here about MATLAB, scientific computing and interesting mathematics.
The ACM Special Interest Group on Programming Languages, SIGPLAN, expects to hold the fourth in a series of conferences on the History of Programming Languages in 2020, see HOPL-IV. The first drafts of papers are to be submitted by August, 2018. That long lead time gives me the opportunity to write a detailed history of MATLAB. I plan to write the paper in sections, which I'll post in this blog as they are available.
I spent the 1979-80 academic year at Stanford, as a Visiting Professor of Computer Science. In the fall I taught CS237a, the graduate course in Numerical Analysis. I introduced the class to the matrix calculator that I called Historic MATLAB in my previous post about MATLAB history.
There were maybe fifteen to twenty students in the class. About half of them were Math and CS students. As I remember, they were not impressed with MATLAB. It was not a particularly sophisticated programming language. It was not numerical analysis research.
But the other half of the students were from engineering at Stanford. They loved MATLAB. They were studying subjects like control theory and signal processing that, back then, I knew nothing about. Matrices were a central part of the mathematics in these subjects. The students had been doing small matrix problems by hand and larger problems by writing Fortran programs. MATLAB was immediately useful.
Jack Little studied electrical engineering at MIT in the late 1970's and then came west to Stanford for grad school. He didn't take my CS237 course, but a friend of his did. The friend showed him MATLAB and Little immediately adopted it for his own work in control systems and signal processing.
In 1983 Little suggested the creation of a commercial product based on MATLAB. I said I thought that was a good idea, but I didn't join him initially. The IBM PC had been introduced only two years earlier and was barely powerful enough to run something like MATLAB, but Little anticipated its evolution. He left his job, bought a Compaq PC clone at Sears, moved into the hills behind Stanford, and, with my encouragement, spent a year and a half creating a new and extended version of MATLAB written in C. A friend, Steve Bangert, joined the project and worked on the new MATLAB in his spare time.
795a8134c1