Wednesday, September 5, 2007

Free Alternatives to Matlab

Matlab・has become the de facto standard for DSP system design and simulation. However, Matlab has two problems: 1) it's expensive, and 2) it costs a lot. Fortunately, there are alternatives: Free Clones. Whatever else you can say about them, these Free Clones offer two significant advantages: 1) you don't have to pay for them, and 2) they're free.

The major Matlab clones are Scilab, Octave, and Rlab. None are true "clones", because none offer 100% compatibility with Matlab's "m-files". However, they all provide number-crunching power similar to Matlab, at a much better cost/performance ratio (since they're free!)

Essentially, Scilab, Octave, and Rlab are interpreted, matrix-based programming languages. They share with Matlab:

The use of matrices as a fundamental data type. Built-in support for complex numbers. Powerful built-in math functions and extensive function libraries. Extensibility in the form of user-defined functions.

Scilab
In some ways, Scilab may be the "best" of the Matlab clones. Scilab has many strengths, including excellent documentation (the signal processing manual is an education in itself!) and excellent support (via e-mail and its own newsgroup). Best of all, for Windows users, Scilab is supplied not only as source code, but as a Windows binary. Scilab is mostly--but not completely--compatible with Matlab. (Scilab now comes with a Matlab-to-Scilab translator, but that's still a bit immature.) For more information:


Octave
Like Scilab, Octave is another mature, high-quality Matlab clone. If you use a Unix-like operating system, Octave may be a better choice than Scilab because it reportedly offers better compatibility with Matlab. (However, for Windows users, Octave suffers the comparitive disadvantage that the binary distribution of it is quite complicated to install.) For more information:


Rlab
Rlab is the least Matlab-compatible of the three. Rlab does not try to be a Matlab clone but instead, in the words of its creator "borrows what I believe are the best features of the Matlab language and provides improved language syntax and semantics." For more information:


Others
JMathLib - A Java Clone of Octave, SciLab and Matlab
TeLa
Algae
Yorick
Euler
Python with NumPy and SciPy
The R Project for Statistical Computing (not a clone, but same matrix multiplication plus more)

No comments: