Est. 1984 Beginner

MATLAB

A proprietary numerical computing environment and programming language developed by MathWorks for matrix operations, data analysis, and algorithm development.

Created by Cleve Moler

Paradigm Multi-paradigm: Procedural, Object-Oriented, Array-based
Typing Dynamic, Weak
First Appeared 1984
Latest Version MATLAB R2025b (2025)

MATLAB (MATrix LABoratory) is a proprietary numerical computing environment and programming language developed by MathWorks. Originally created as a simple matrix calculator for students, it has grown into one of the most widely used tools in engineering, science, and mathematics.

History & Origins

In the late 1970s, Cleve Moler, a mathematics professor at the University of New Mexico, wanted his students to use the powerful LINPACK and EISPACK Fortran libraries for matrix computation without having to learn Fortran. He wrote the original MATLAB in Fortran — a simple interactive program with approximately 71 built-in functions where the matrix was the only data type.

Moler distributed MATLAB freely to universities for several years. In 1983, Jack Little, an engineer who encountered MATLAB at Stanford, recognized its commercial potential. Little and Steve Bangert rewrote MATLAB in C, adding toolboxes, graphics capabilities, and extensibility. Together with Moler, they founded The MathWorks in December 1984.

The Name

MATLAB stands for MATrix LABoratory, reflecting its origins as a tool built around matrix operations. Every value in MATLAB is fundamentally a matrix (even a scalar is a 1x1 matrix), which makes linear algebra operations natural and concise.

The MATLAB Ecosystem

MATLAB’s power comes not just from the base language but from its extensive toolbox ecosystem:

  • Simulink - Graphical environment for modeling, simulating, and analyzing dynamic systems
  • Signal Processing Toolbox - Digital and analog signal processing
  • Image Processing Toolbox - Image analysis and computer vision
  • Statistics and Machine Learning Toolbox - Statistical analysis and ML algorithms
  • Deep Learning Toolbox - Neural network design and training
  • Control System Toolbox - Control system design and analysis

MathWorks offers over 100 specialized toolboxes covering domains from aerospace to bioinformatics.

Language Design

MATLAB’s syntax is designed for mathematical clarity:

  • Array-first design - Operations naturally work on entire arrays and matrices
  • 1-based indexing - Arrays start at index 1 (matching mathematical convention)
  • Dynamic typing - No type declarations needed
  • Interactive REPL - Immediate feedback through the command window
  • Built-in plotting - Visualization is a first-class feature

MATLAB vs. GNU Octave

Because MATLAB is commercial software, the open-source community created GNU Octave as a free, largely compatible alternative. Octave was conceived around 1988 and aims to run most MATLAB .m files without modification.

FeatureMATLABGNU Octave
LicenseCommercial (paid)Free (GPL)
SimulinkIncluded (with license)Not available
Toolboxes100+ officialCommunity packages
IDEMATLAB DesktopQtOctave / CLI
CompatibilityReference implementationLargely compatible

For this site’s Docker examples, we use GNU Octave to demonstrate MATLAB-compatible code without requiring a commercial license.

Modern MATLAB

MATLAB continues to evolve with twice-yearly releases (the R####a/R####b cadence began around 2006):

  • Live Editor - Interactive notebooks mixing code, output, and formatted text (similar to Jupyter)
  • App Designer - Drag-and-drop GUI builder for MATLAB applications
  • Code Generation - Generate C/C++ code from MATLAB for embedded systems
  • GPU Computing - Run MATLAB code on GPUs for parallel computation
  • Cloud Integration - MATLAB Online for browser-based access

While Python has gained significant ground in data science and machine learning, MATLAB remains deeply embedded in engineering disciplines, particularly in control systems, signal processing, and model-based design, where its Simulink toolbox has no direct open-source equivalent.

Timeline

1970
EISPACK matrix eigensystem package proposed to NSF, laying groundwork for MATLAB's numerical core
1975
LINPACK project initiated by Dongarra, Stewart, Bunch, and Moler for linear algebra computation
1979
Cleve Moler writes original MATLAB in Fortran at University of New Mexico as a teaching tool for matrix computation
1984
PC-MATLAB debuts at IEEE Conference on Decision and Control; MathWorks incorporated by Jack Little, Steve Bangert, and Cleve Moler
1992
Simulink (originally SIMULAB) released with MATLAB 4.0, adding graphical simulation and model-based design
2000
MATLAB 6 replaces LINPACK/EISPACK with LAPACK; new desktop interface introduced
2004
MATLAB 7 adds Distributed Computing Toolbox (later renamed Parallel Computing Toolbox) and integer data types
2008
Object-oriented programming system overhauled (MCOS - MATLAB Class Object System)
2016
MATLAB Live Editor introduced for interactive documents combining code, output, and formatted text
2025
MATLAB R2025a introduces AI-assisted coding features; R2025b follows as a quality-focused release

Notable Uses & Legacy

Aerospace & Defense

Used extensively by NASA, Boeing, and defense contractors for flight simulation, guidance systems, and satellite communications.

Signal Processing

Industry standard for audio, image, and radar signal processing, with dedicated toolboxes used across telecommunications and defense.

Academic Research

Standard tool in engineering and science curricula worldwide, particularly for teaching linear algebra, control systems, and numerical methods.

Automotive Engineering

MATLAB and Simulink are widely used for model-based design, powertrain simulation, and autonomous driving development.

Finance

Used for quantitative analysis, risk modeling, and algorithmic trading strategy development.

Language Influence

Influenced By

Fortran APL Speakeasy PL/0

Influenced

GNU Octave Scilab Julia

Running Today

Run examples using the official Docker image:

docker pull gnuoctave/octave:9.4.0

Example usage:

docker run --rm -v $(pwd):/app -w /app gnuoctave/octave:9.4.0 octave --no-gui --no-window-system hello.m

Topics Covered

Last updated: