Updated: March 8, 2010
Three years ago, I've shown you a number of free alternatives to the powerful yet quite expensive Matlab numerical computation program. These included FreeMat, Octave and Scilab, each of which offered a unique set of tools, strengths and weaknesses. While neither can completely replace Matlab as the leading geek engine in the science and engineering world, they are rather useful for testing, learning the code, home use, academic use, on basic and intermediate levels of knowledge.
Today, I'd like to revisit my older review and show you what the updated versions of these three programs can offer, both in terms of visual changes and cosmetics, as well as the raw functionality.
Linux-wise, I tested all three programs on Ubuntu Karmic, where the programs are readily available in the repositories. Then, there's a bunch of screenshots taken on Windows XP, just for good measure. So, let's begin.
FreeMat in the Ubuntu repos is currently at version 3.6 and has changed quite a bit since its early incarnations. While it retains the basic simplicity, it's a little more plump and rounded, better polished, and works with a wider range of Matlab functions, allowing you an instant or an almost-instant portability.
In the past, there used to be tiny glitches with some of the functions, like clearing the command history or printing the images. No more, these have been smoothed out, adding to a pleasant, seamless experience.
The Editor remains simple and quite useful, with lots of useful right-click options, like the ability to comment and uncomment regions of code or execute only selected bits of it.
Below, you can see an inane example of a simulation, showing you the number of guided bombs required to penetrate a concrete block, based on the slab thickness, the detonation cross section and the Circular Error Probability (CEP). Just made those up, so don't panic. They make for lovely graphs, which you will see soon.
I wrote this code as part of a concept work for a turn-based strategy computer game, written in Matlab, but the code runs flawlessly in FreeMat, without any modifications. And here you go, crazy patterns in 2D color maps, what can be sexier than that?
You also get a very decent documentation.
Summary: At only 18MB, FreeMat is very hard to beat. It's fast and robust, comes with excellent documentation and is continuously improved. Matlab mode fidelity is quite high. Grade: 8.5.
Octave is a heavier, more complex program. By default, it does not come with any GUI, but you can find available packages, both in Windows and Linux. However, Octave promises an almost 100% compatibility with Matlab code. This is what the basic interface looks like:
However, you can download QtOctave GUI and make it look like Matlab:
And you get this:
Working with Octave is fun. It's a powerful program, with lots of useful options and features. Many common, often-used functions are included in the File menu, allowing you to increase your productivity instantly.
Another useful feature is the fact that Octave, just like Matlab, can dock different windows into the GUI, so you have everything in a single view, if you want.
When it comes to code fidelity, Octave clearly wins. It even displays the colorbar, just like Matlab and allows you to switch color maps, to say winter, summer, gray, bone, and others.
For instance, here you have the gray and summer color maps:
Octave Help is also very decent and displayed as inline HTML pages, just like Matlab:
Summary: While big and requires a separate GUI frontend to resemble and behave like Matlab, Octave brings in a slew of powerful features and the highest level of code compatibility that make it a very good alternative to the payware program. The help files are also extremely useful. Grade: 9.
Scilab is a category of its own. It's not your average home program and is more befitting advanced users. It does not run Matlab code directly, but it can convert it to its own, with a varying level of success. However, Scilab also comes with a Simulink/LabVIEW style software, called Scicos, allowing you to build simulation models. On top of that, you get a range of powerful toolboxes, very similar to Matlab, and a host of demo applets to get you started working with the program.
If you want to run Matlab code, the first thing you will want to do is try to convert the Matlab language into Scilab:
As you can see, many of the functions are currently missing, including the seemingly trivial 2D convolution, which makes it somewhat difficult to port programs easily.
However, Scilab compensates with the large, extensive demo library, where you can find tens of models, including image and signal processing, genetic algorithms, and many others. A great thing about the demos is that you can view code and use it to branch off your own demonstrations.
Scicos is another powerful feature. A program unto itself, it comes with Scilab. With Scicos, you can create real-time simulation models for a wide range of applications. Unfortunately due to Java errors on Ubuntu, it would not run as expected. I'm not sure what the problem exactly is, but it does feel Scilab is more suited for the Windows platform.
The help is quite decent. If you're not really sure what to do, browsing the available resources should get you started fairly quickly. Scilab and Scicos do take more time mastering than either FreeMat or Octave, but it opens a range of possibilities that the other two programs do not offer.
A small gallery of program images on the Windows platform:
All three programs have their merits. For Windows users, the simplest choice is FreeMat, while Octave is the most powerful and best run on Linux. Scilab works better on Windows, but it is not fully compatible with Matlab language and requires more effort to master, while leveraging these disadvantages with the fleet of toolboxes and Scicos.
The best thing is, you can use them all together. But if you want to be picky, then I'd recommend you start with FreeMat and Octave and move on to Scilab when you gain enough expertise.
If you have other scientific programs you would like to see reviewed here at Dedoimedo, feel free to contact me. Till then, enjoy your time crunching numbers.