Comparison of Octave, Spyder, Freemat and Scilab as alternatives to MATLAB

39,144

Solution 1

Well you're in for a treat I have used all the programming languages/software you mentioned. FreeMat and Spyder I do not have too much experience with, but I have some. The others I am experienced in.

GNU Octave by far beets the competition. Its syntax has an extreme compatibility with that of MATLAB. The only differences, I'm aware of at least, aside from the odd toolbox, which you can attempt to replace by the packages here is that GNU Octave can define functions from the command line.

I don't know if you're aware of QtOctave. QtOctave is a frontend (GUI) for the GNU Octave programming language. QtOctave comes with an editor too.

Scilab is an adequate replacement for MATLAB too. It has some differences in terms of syntax but nothing you can't get your head around if you search the documentation that comes with it.

FreeMat is the worst, in my opinion at least, of software that's syntax is heavily based on MATLAB. My evidence for this is three part: firstly, in the software centre it receive the lowest star rating of the four software in question. Second, it isn't frequently updated, the latest version in the software centre, was last updated in 2008. Third as a result of my second piece of evidence its functions are somewhat lagging. The plus side, however, is that its syntax is highly compatible with MATLAB's.

I have used Spyder, but only briefly I'm afraid. It seems top-quality. The problem with it is that it has only limited compatibility with MATLAB, syntax wise. It requires you to learn some of the Python programming language, that is, if you plan to do well at it.

I would also recommend SageMath as it includes GNU Octave, (if its already installed on your system) Scilab, (if you already have it installed) NumPy, [NumPy and the rest mentioned unless otherwise specified come with Sage and therefore no installation is necessary] Scipy, Matplotlib, maxima, Fortran among many others. SageMath may be downloaded by going to the website http://www.sagemath.org/download-linux.html and selecting a suitable mirror, based on where you are and then installing the relevant .tar.lzma file. After this copy and paste the following commands into terminal (Ctrl+Alt+T):

cd ~/Downloads
sudo mv sage-linux-xbit-ubuntu_y-z-Linux.tar.lzma /home/username
cd ~
tar --lzma -xvf sage-linux-xbit-ubuntu_y-z-Linux.tar.lzma
cd ~/sage-linux-xbit-ubuntu_y-z-Linux
make
sudo ln -s /home/username/sage-linux-xbit-ubuntu_y-z-Linux/sage /usr/local/bin/sage

Where 'x' refers to the bits of your OS; 'y' refers to the version of Ubuntu the sage is designed for (e.g. 10.04_lts; 12.04_lts (the _lts is required in 'y'), etc.); 'z' refers to the architecture of your OS. (i386, amd64, etc.)

Solution 2

Of all the ones you have listed Octave is the most syntax compatible. In fact, apart from some of the expensive Matlab toolboxes, Octave should run 98% (a number I just made up) of your code. I use Matlab at work and Octave at home.

Octave will not run (natively) some of the inbuilt GUIs like inputdlg etc, if you install Qtoctave (an IDE for Octave, sudo apt-get install qtoctave) you can use xmlwidget and a wrapper to get that functionality (I can post code if you are interested).

As far as performance is concerned, Octave is not as fast (google for benchmarks). However, you can get all modern versions of Matlab running on Linux (if you have a licence) and they are included on the install disk by default now, and performance of Linux version of Matlab is as good and often better on Linux when compared to Windows.

If you want performance and you wan't to use free software best to look at scipy. But the syntax is less compatible. You will need to rewrite you code. Spyder is an ide that uses python and scipy, scilab is a mash of octave and maxima and a few others. Not sure about performance of freemat but I don't think it is as developed as Octave.

Good luck.

A few benchmarks

speed

http://www.osc.edu/research/cse/projects/octave_python.pdf

http://www.wseas.us/e-library/conferences/2010/Corfu/COMPUTERS/COMPUTERS2-56.pdf

Remember benchmarks are subjective. There are many variables. The only true way to know is to test them all on your rig using your processing code.

Solution 3

Most similar to MATLAB = Octave, (link to gui )
An awesome up-and-coming high-level computation language = julia
But my favorite and IMHO most useful all around language, PYTHON (scipy, sage, cython...)

Solution 4

Just for clarification: Why do you want an alternative for Matlab? The answer of prasadkumar013 suggests you can't use Matlab on Ubuntu, but you can (at least I am running it on Ubuntu ;) ). There is a community documentation on the page https://help.ubuntu.com/community/MATLAB.

In case you want a free alternative go with octave, most of the matlab code will work directly in octave. Try to work in the terminal though, the qtoctave GUI was not so user friendly in my opinion.

Share:
39,144

Related videos on Youtube

user3383105
Author by

user3383105

Updated on September 18, 2022

Comments

  • user3383105
    user3383105 over 1 year

    I am trying to find an alternative for MATLAB and have so far found:

    • GNU Octave
    • Spyder
    • FreeMat
    • Scilab

    I'm trying to find which is the best alternative to MATLAB. I'm particularly concerned with performance and the integrity of the results.

  • Eliah Kagan
    Eliah Kagan almost 12 years
    If someone does google and find good benchmarks for Octave vs. Matlab, perhaps more detailed information or links could be edited into this answer.
  • Eliah Kagan
    Eliah Kagan almost 12 years
    A third choice would be to install the Linux version of Matlab.