Matlab versus Octave

telos is frequently involved in projects requiring mathematical analysis or technical visualization. This often brings up the question of alternatives to Matlab.

Octave is an open source project aiming towards providing a free replacement for Matlab or at least for its core functionality. Except for some minor language extensions Octave does not introduce any advantages over Matlab. However, there is one important reason for looking at Octave which is the cost of Matlab and its various toolboxes and add-ons.

It is easy to pay several thousand dollars for a single commercial Matlab environment and since it is initially an interpreted language it is not possible to distribute code to people without a Matlab installation. There is a compiler allowing to do exactly this, but this compiler costs US$ 5000 by itself.

So what are the possibilities with Octave?

First of all, there is no robust Octave compiler available and this is not really necessary either, since the software can be installed free of charge.

Looking at the language element the two packages are identical except for some particularities like nested functions. Octave is under constant active development and every deviation from the Matlab syntax is treated as a bug or at least an issue to be resolved.

There are also plenty of tool boxes available for octave and as long as a program does not require graphical output there is a good chance that it runs under Octave just like under Matlab without considerable modification.

Graphics capabilities are clearly an advantage of Matlab. The latest versions include a GUI designer on top of excellent visualization features.

Octave uses either GNU Plot or JHandles as graphics packages, where the latter is somehow closer to what Matlab provides. However, there are no Octave equivalents to a GUI designer and the visualization mechanisms are somehow limited and not Matlab compatible.

The same holds for an integrated development environment. There is a project called QTOctave but it is still in an early stage.

Looking at the collaborate efforts taking place around the Octave community it is likely that this software will soon provide better and possibly even compatible graphics and GUI capabilities and it is well worth a look before buying Matlab.