tags:

views:

2170

answers:

7

What is the best open-source (or otherwise free) MATLAB equivalent, in your opinion, and why?

Something with many built-in functions relevant to engineering and science, and a variety of good graphing capabilities. Syntax close to MATLAB's is a bonus.

I've invested some time getting into SciLab, but in retrospect I'm not too enthralled. I find that the built-in functions are written in a somewhat clunky way, and that the documentation is rather cryptic (i.e. more so than your average software documentation).

P.S. I'm aware of this page. I'm looking for positive or critical comments regarding this range of options.

+8  A: 

I like SciPy+NumPy a lot. It is widely used and has a large community behind. Along with ipython (enhanced shell) and matplotlib (plotting library) it is a wonderful development environment.

Since it's embedded in Python, it's easy to integrate it in a general-purpose program. You can, for instance, generate plots for a web application. There are also extensions for working with NumPy arrays in MPI clusters and GPUs.

You can check this NumPy guide for Matlab users for a comparision.

Roberto Bonvallet
+7  A: 

I've used octave, it's pretty handy, and reasonably close in syntax... I've taken .m files and used them with minimal conversion...

http://www.octave.org/

Stobor
Also: Matlab Octave compatibiliy doc: http://wiki.octave.org/wiki.pl?MatlabOctaveCompatibility
Stobor
+4  A: 

My experience is relatively limited, but I've had some very good results from Octave and from SciPy/matplotlib. Octave has a syntax that is virtually the same as MATLAB's and it is therefore very easy to get started with. However, I prefer python as a language to MATLAB and, for plotting at least, the syntax is close enough to MATLAB's to be simple to get you started. Also, the graph plotting quality of matplotlib is among the best I've come across and I've found nothing that compares to its tools for scrolling and zooming around data plotted on a graph.

The main disadvantage of the python tools (SciPy/NumPy/matplotlib) is that the install path is less than trivial.

Al
Thanks for pointing out plusses and minusses of two options!
JF
See also python(x,y) (www.pythonxy.com). This is a (currently Windows only) installer that installs python + SciPy + NumPy + matplotlib + lots of other stuff all in one go.
Al
A: 

I've been using SciLab in my projects. I've never been using MATLAB, so I don't know if there are compatibile witch each other

Tomasz Tybulewicz
It's hard to tell whether you read the whole question before answering...
JF
+1  A: 

R is open source and has excellent graphing capabilities. It's mainly designed for statistics but packages provide many engineering and scientific functions.

weiyin
+1  A: 

I've used Octave a bit when I was working on computers without Matlab licenses and while the syntax does translate really well I found that the performance was substantially worse. So, if you're looking to do anything that's computationally intensive I think the python route might be the better way to go.

Ethan White
I'm doing the same thing and I'm not seeing the same performance issues. I suspect that you're in a "your mileage may vary" situation.
Bob Cross
That's actually encouraging as I had hoped to use Octave for teaching purposes. What kind of computing you were doing. I tried it out using algorithmic solutions to Project Euler (http://projecteuler.net/) questions (lots of for looping) and in some cases saw orders of magnitude differences in execution time.
Ethan White
+1  A: 

This guy is very very enthusiastic and quite persuasive about Sage, which, he says, is "wrapper around Python with tons of scientific packages added". Like you I've been looking around for a free and/or open source Matlab alternative and I've played around with Octave and Scilab a little - out of that pair I found Octave to be the more accessible, at least to a Matlab user, particularly using QtOctave which made it actually look and feel like Matlab - but I'm more excited about Sage. It seems very accessible, and it addresses the drawback of using Scipy, etc, etc, pointed out by Al, viz. installation difficulties, by installing all its dependencies, etc with it.

fod
I tried out sage a few months ago. It seemed bloated and slow, as it tried to be many things at once, using Python, and with a web page as a front-end.
Seth Johnson

related questions