byADIT Free software for engineers and students
EngiFree
Free MATLAB Alternatives — Octave, Python, Scilab and When Each One Is Right

Free MATLAB Alternatives — Octave, Python, Scilab and When Each One Is Right

MATLAB is the tool most engineers learned on at university, and a private licence is hard to justify after graduation. The question is not "what is most like MATLAB" but what exactly you used it for: running someone else's old code, new numerical work, symbolic algebra, or figures for a paper. Each of those has a different free answer.

If you have MATLAB code that simply has to run

1. GNU Octave

This is the direct answer. Octave was built to be compatible with MATLAB syntax, so existing scripts usually run with little or no change — the same matrices, the same 1-based indexing, the same core functions. It has a GUI, a command window and plotting.

What is missing: there is no Simulink and no real substitute for it, and the commercial toolboxes are not supported. Code that leans on a specific toolbox will not carry over. Performance on heavy loops is also weaker.

2. Scilab

A standalone numerical environment with its own language (not MATLAB-compatible), but with one big advantage: Xcos, a block-modelling environment that is the closest open counterpart to Simulink. If what kept you on MATLAB was control block diagrams, look here first.

If you are writing new code — do not imitate MATLAB

3. Python with NumPy, SciPy and Matplotlib

This is the real long-term recommendation. NumPy gives fast arrays, SciPy gives integration, optimisation, linear algebra, signal processing and statistics, and Matplotlib gives publication-quality figures. Above them sits everything else: pandas for data, SymPy for symbolic work, and most of the engineering tools in this directory can be driven from Python.

What is missing: there is no single box — you have to assemble an environment. And moving from MATLAB means getting used to 0-based indexing and a slightly different vectorised way of thinking.

4. Pyzo

If that assembly sounds off-putting: Pyzo is a light working environment that pairs an editor with an interactive shell in a MATLAB-like style, without the weight of a full IDE. It works with any Python installation you already have.

Symbolic algebra

5. Maxima

The counterpart to the Symbolic Math Toolbox: analytic differentiation and integration, solving equations and systems, series, transforms and symbolic matrices. Old, stable and precise. If you need a closed-form expression before you put numbers in, this is the tool.

Figures for reports and papers

6. gnuplot

When a plot has to be generated automatically from a solver's output or a measurement rig, gnuplot is the choice: a few lines of script, export to PDF, SVG, PNG and LaTeX-friendly formats, and exactly the same result on every run.

For visualising 3D solver results — fields, slices, isosurfaces — the right tool is ParaView, not MATLAB and not gnuplot.

Specialist libraries that replace a whole toolbox

Part of what people pay for in MATLAB is data, not code:

What to choose

You have old code that must run tomorrow — Octave. You are building something new that will follow you for a decade — Python. You stayed on MATLAB for Simulink — Scilab/Xcos or OpenModelica. You need an analytic expression — Maxima.

The common mistake is looking for an exact clone of MATLAB. Octave is the closest, but moving to Python is what pays off in the long run, because it also opens up every other tool in this directory.

All numerical tools on the site: numerical computing and programming.

Further reading