Skip to content
← Back to all tools

GNU Octave

Free

MATLAB's language, without the licence

Open Source No Ads No Tracking Offline No Sign-up Cross-platform

Numerical computing software with syntax largely compatible with MATLAB. It handles matrix operations, linear algebra, numerical integration and solving, signal processing, statistics and 2D/3D plotting. Most MATLAB scripts run directly or with minor changes, and it offers both a GUI and a command line.

Why we picked it

Nearly every engineering student learns MATLAB, and after graduation discovers its commercial licence is expensive, with a considerable gap between the student edition and an individual licence. Meanwhile every coursework file, thesis script and lab routine you own is written in MATLAB syntax.

GNU Octave exists as the syntax-compatible free alternative. GPL-3.0, part of the GNU project, maintained for over thirty years, currently at version 11.3.

Compatibility is its core value:

A = [1 2; 3 4];
b = A \ [5; 6];        % solve a linear system
eig(A)                 % eigenvalues
plot(x, sin(x))        % plotting

Identical to MATLAB. Most scripts that do not depend on proprietary toolboxes run directly or need a few lines changed. For "I just need to run this .m file my professor sent", it usually solves the problem outright.

Coverage:

  • Matrices and linear algebra: solving, decompositions (LU, QR, SVD, Cholesky), eigenvalues.
  • Numerical methods: integration, ODE solving, optimization, interpolation, root finding.
  • Signal processing and statistics: FFT, filtering, regression, distribution functions.
  • Plotting: 2D curves, 3D surfaces, contours and histograms, exportable as images or vectors.
  • Scripting: full programming capability with user-defined functions and packages.
  • Forge packages: community-maintained add-ons covering image processing, control systems and statistics — analogous to MATLAB toolboxes, though far narrower in scope.

To be clear about:

  • Compatible does not mean equivalent. Base syntax and core functions align closely, but MATLAB's commercial toolboxes, including Simulink, have no Octave counterpart. Graphical modeling and simulation is simply absent — if your work depends on Simulink, Octave cannot help.
  • Performance generally trails MATLAB, particularly on large computations and JIT-optimized loops. For small-scale and teaching use the difference is imperceptible.
  • The GUI is plainer. An editor, variable browser and debugger all exist, but the polish does not match MATLAB's IDE.
  • Plot styling differs in detail, so identical plotting code produces visually different figures — worth checking before publication.

One alternative deserves consideration: if MATLAB syntax is not a requirement, Python with NumPy, SciPy and Matplotlib now has a larger ecosystem, more learning material and better integration with everything else. Octave is at its best when you already have MATLAB code or a course mandates MATLAB syntax; for a new project starting from nothing, the Python path usually goes further.

Who it suits: students, anyone needing to run existing MATLAB scripts, teaching and laboratory numerical work, and anyone blocked by MATLAB's licence price.