For those involved in data analysis, numerical computation and taks of that nature, Matlab is an industry standard software to use, though it is not necessarily the best available. The problem is that (Matlab) is commercial and can be expensive.
Recently I took a class on Machine Learning and was surprised to find that the professor was not going to use Matlab, but a Free Software alternative called GNU Octave, which was good news because it meant not having to spend money on a proprietary software.
Being relatively new to this field, I decided to see what other Free Software alternatives are available. It turns out that there are a bunch of them that are already available in the repository of your favorite distribution.
The following list (in alphabetical order) contains four alternative to Matlab that I found:
1. Genius: Also called Genius Math tool (GMT), is the least feature-rich of the bunch. Like others in this list, Genius has a built-in interactive programming language. In the case of GMT, it is called GEL, short for the Genius Extension Language. GMT began life as a simple GNOME calculator, but morphed into something more powerful and useful.
GMT is officially described as a:
General purpose calculator program similar in some aspects to BC, Matlab, Maple or Mathematica. It is useful both as a simple calculator and as a research or educational tool. The syntax is very intuitive and is designed to mimic how mathematics is usually written.
2. GNU Octave: Also just called Octave, this is one I have first-hand knowledge of, though I’m not a guru-level user yet. It is officially described as a:
High-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation.
A Machine Learning class on Coursera.org uses GNU Octave instead of Matlab or any other commercial equivalent.
3. Sagemath or just Sage, is where a suite of more than 100 Free Software applications come to provide a unified interface suitable for elementary to advanced number theory, cryptography, numerical computation, commutative algebra, group theory, combinatorics, etc.
Sagemath’s user interface is described as:
A notebook in a web browser or the command line. Using the notebook, Sage connects either locally to your own Sage installation or to a Sage server on the network. Inside the Sage notebook you can create embedded graphics, beautifully typeset mathematical expressions, add and delete input, and share your work across the network.
4. Scilab: This is Free Software used for numerical computation. It also comes with a high-level programming language. Scilab began as a university project, but has since become much more than that. Its development is presently sponsored by Scilab Enterprises, which also provides paid professional services around the application.
It comes with features capable of handling enterprise-scale mathematical computations and simulations; 2- and 3D data visualization; discrete optimization problems; data analysis and modeling; control system analysis and design; signal Processing; and much more. More information about it at scilab.org.
In this age of Big Data, where data analysis is big business, and data scientist are in hot demand, becoming proficient in the tools used for data-crunching can come in handy. You just never know when familiarity with any of these tools can make you more valuable to your boss.
Another opportunity is to use ILNumerics, a math library for C# and .NET. It offers a Matlab-like syntax, 2D and 3D Visualization Features and a very good performance.
You are recommending a Windows application to a Linux crowd.
Never tried Python (I’m not a programmer) but for my master degree I prepared application in Scilab/SciCos (now XCOS is in use) than generated C code from it (with just few clicks), compiled it and run it as real time application under Linux with RTAI. After that I started application which allowed me to create GUI with no programming at all. All of that with a very basic knowledge (and no practice) of C programming (seriously – I haven’t even red all K&R and got completely lost with ideas of preprocessor), Scilab programming and Linux in general.
Although I’m not itno this anymore I hope all of this will be (or may be already is) adopted to use with Raspberry PI. That would be absolutely awesome environment for real time control projects for education or DIY.
Do you know any program with GUI for R? Something easy to use like JMP from SAS.SAS is a pain in the neck, but JMP is easy to use. So, I don’t waste my time trying to look for errors in SAS for days every time that I need to analyze some data.
Thanks
I’ve not used these, but there is The R-Commander and Rattle GUI.
If you try them, let’s us know which one you think is the best.
Though this is not a GUI for R, pbdR offers distributed data parallelism in R.
You can also try RStudio http://www.rstudio.com/.
Thanks to Everybody for your suggestions. In this moment, I’m Trying RKward, it looks promising.
Just add FreeMat to this list.
It’s worth to mention that Scilab gives you Simulink alternative caled XCOS.
cheers
I would add a solution, which I found the best choice, after I had short episodes with the Octave and Scilab. This solution is python.
The ipython shell offers a great interactive shell (tab completion, history, input/output buffers), the matplotlib plotting library closely follows the Matlabs style, and the numpy library gives a powerful numerical tools.
Although the learning process requires some extra work compared to the Octave, this solution, since is based on a mature and widely used “full” programming language, gives much more complex and wider range of uses, not limited in scope like Matlab.
The interesting thing is the interactive interface of these tools are Python-like. I find I’m learning Python much easier as I used Octave and R.
Furthermore, with matplotlib you get the same plotting functionalities in python as in matlab.
I used MatLab to run the numerics for mu Bachelor’s thesis and at the moment I am using python/cython with Scipy and Numpy packages to run all the numerics for my master’s thesis. Works like a charm and is IMHO superior to matlab in any way.