GNU Octave hits a high note

-February 07, 2014

MATLAB [1] has to be one of the all time greats for analyzing nearly any sort of data, just like a spreadsheet is for making a plot of data. Alas, these programs while powerful do have a limitation – they are costly and rightly so: They do a job, have great depth and are actively supported, and we all know that this takes some overhead dollars to maintain. For spreadsheets we have some really well done GNU options like Libre Office.[2] But what about our design programs?

The GNU design software tends to be somewhat usable but unpolished in many cases; the same could be said about the many MATLAB-like GNU options. This one does that well, that one is a little different there, etc., but none of them "Hits a home run" on all counts, until now.

GNU Octave [3] is the closest MATLAB-compatible program, with all the same language syntax, etc. In fact many basic MATLAB scripts will run without an issue in Octave. The biggest thing that held Octave back was the command line interface.

Until December of 2013, the most popular FAQ question on the Octave page was: "Where is the Graphical User Interface (GUI)?" I suppose as a tongue in cheek response the answer was: "It's better without one, and you'll learn the language quicker, etc."

At the end of December 2013 that all changed as Octave 3.8 now has a very workable GUI (Figure 1).

Figure 1: For a first release, the Octave GUI is a work of art. I have commercial software that doesn't work as well. And what would a MATLAB-compatible demo be without the famous "Sombrero Plot."

Strangely, the official bits repository does not have a build for Windows yet, but with the help of Google I found a chap who has built the preliminary binaries and posted them (good man, that!) [4].

Within 30 minutes of installing the bits I had my first FFT running. The only reason it took 30 minutes is because while Octave handles spaces in directory paths just fine, it has issues with spaces in the file names and it took me a few minutes to figure that out. So remember: No spaces allowed in file names (a la UNIX).

The GUI has a very usable variable watch window and break point debugging with step into and step over just like Visual Studio.

I never had to try to find any instructions on how to use the GUI - it is that intuitive. The GUI even warns you if the path isn't set to the script that you are trying to run and will set it for you if you want. How's that for nice?

Figure 2 – Within the first few hours I was able to look at various DSP windowing functions, which before I was using custom C# programs to do. A dedicated scripting language like MATLAB is much faster than a general-purpose programming language for these quick and dirty types of analyses.

In the week or so that I have been using it, I haven't had a crash; but a few times I have hung it up. I tried to transpose a 20-megabyte matrix and it coughed that it was out of memory (but didn’t crash), and every once in a while the debugging gets lost and you can't set or delete breakpoints anymore (a restart fixes that).

I also strangely can't save a plot to a file as the GNU Plot engine hangs for a while when I try. This is strange because I also have GNU Plot installed and standalone it works just fine.

That's about all I have found issues with in my time with the program.

Now compared to its commercial brother the biggest limitation is all those wonderful toolboxes that you can get for MATLAB. GNU Octave doesn't have the digital filter designer software, for example, and it lacks the excellent support for instrument control like via GPIB or serial. (There are some Octave add-ons, but they don't all appear to work for Windows yet.)

But for basic vectorized data analysis this package is one to watch, and with the near 100% MATLAB script compatibility it's a no-brainer to put on every PC for those quick data analysis jobs in the lab.

For teaching, GNU Octave has to be a winner too. Now students can learn for free the most widely used program in industry – and with the high cost of a degree now, that's a win-win.

Octave is unlikely to ever match the toolbox depth or support of MATLAB, but for those quick and dirty jobs you may want to take a look.

[1] MATLAB website:

[2] Libre Office website:

[3] GNU Octave home page:

[4] For Windows bits see the links in the message thread below (Note: These are not official repositories, so these links are liable to disappear at anytime):

Thanks to, José Romildo Malaquias for compiling and posting these early releases.

Loading comments...

Write a Comment

To comment please Log In