What's the best MATLAB equivalent? (open source or otherwise free)

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.
最佳答案 :
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.

以上是stackoverflow中一位朋友问到的问题.

由于matlab是个商业软件, 所以如果能找到与matlab功能类似的开源产品也是比较好的.

另外一篇文章描述了3款替代matlab的开源软件

3 Free open source alternatives to MATLAB
Computer Science and Communication Engineering students must be familiar with a mathematical software called MATLAB. MATLAB is a numerical computing software and programming language that is often used in various mathematical analysis and problem solving like matrix manipulation, plotting of functions and data, implementation of algorithms, creation of user interfaces etc. MATLAB is a proprietary product of The MathWorks and a single student license will set you back by $99.  Even though there are many free numerical analysis software available, your university is most likely to use MATLAB and a student who uses MATLAB all day at the university would want the same programs to run on his home computer. Hence compatibility of these free solutions with MATLAB is important.

Let us look at three free alternatives to MATLAB that is compatible with it, to a large extent.

第一款 octave

Octave is an open source program for numerical computation which is mostly compatible with MATLAB. Its syntax is very similar to MATLAB, and a carefully programmed script will run on both Octave and MATLAB. Though most MATLAB programs will run on Octave, the reverse is not always true. This is because Octave's parser goes above and beyond MATLAB's and supports syntaxes and commands not supported by MATLAB. For example, Octave supports both single and double quote while MATLAB supports only single quote. Octave supports the printf command while MATLAB doesn't. All compatibility issues are described in there wiki.

第二款 scilab

Scilab, another numerical computational package, is similar in functionality to MATLAB, but is open source and hence available at no cost. The program enables users to compute a wide range of mathematical operations from relatively simple operations such as multiplication to high level operations such as correlation and complex arithmetic. Like MATLAB, Scilab has many industrial and academic uses and is often used for signal processing, statistical analysis, image enhancement, fluid dynamics simulations etc.

Scilab is not entirely compatible with MATLAB but has a converter for source code conversion from MATLAB to Scilab. Scilab also includes a package called Scicos for modeling and simulation of dynamical systems.

第三款 freemat

The third open source free numerical computing environment similar to MATLAB is FreeMat. FreeMat supports many MATLAB functions and some IDL functionality and additional features like codeless interface to external C, C++, and Fortran code, further parallel distributed algorithm development and some extended volume and 3D visualization capabilities. FreeMat developers put the software's compatibility with MATLAB at 95% which is as good as MATLAB itself, provide you don't use all MATLAB functions, which isn't likely to happen in most cases.

So there you are, you've got three replacement for MATLAB. See if you can convince your institute to embrace any of these.

除此之外还有 : 

scipy, r, matplotlib, sagemath 等等.

有兴趣的朋友可参考 : 

http://www.gnu.org/software/octave/

http://www.scilab.org/

http://freemat.sourceforge.net/index.html

http://www.scipy.org/

http://www.r-project.org/

http://matplotlib.org/

http://www.sagemath.org/

[参考]

1. https://code.google.com/p/pgnumpy/

2. http://sharingtechknowledge.blogspot.tw/2012/02/python-scipy-concetrate-on-ideas-not-on.html

3. http://docs.scipy.org/doc/scipy/reference/tutorial/linalg.html

4. http://www.scipy.org/

5. http://matplotlib.org/

6. http://stackoverflow.com/questions/1072884/whats-the-best-matlab-equivalent-open-source-or-otherwise-free

7. http://www.instantfundas.com/2008/10/3-free-open-source-alternatives-to.html

8. http://www.sagemath.org/library.html

9. http://www.pythonxy.com/

10. http://freemat.sourceforge.net/index.html

11. http://www.r-project.org/

时间: 2024-12-27 23:39:41

What's the best MATLAB equivalent? (open source or otherwise free)的相关文章

lombok在IntelliJ IDEA下的使用

      lombok是一款可以精减java代码.提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码.代码越少,意味着出bug的可能性越低. 官网地址:https://projectlombok.org/ 首页有一段几分钟的演示视频,看完就明白是怎么回事了. 先来二段对比代码: 这是用lombok后的java代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1

中英文对照Stargate中的科学与技术_中英文对照

Stargate 作为一部延续了十年的硬科幻,不仅继承了其前辈的"科学"体系,又有自己的创新和挖掘,其中涉及到的科学与技术涵盖空间技术.物理学.能源与动力科学.生命科学.计算机科学.哲学与社会科学等诸多领域,不仅满足了观众对新技术的猎奇,也在一定程度上透射出人类文明的发展方向,而这正是科幻的本质所在.本文作者作为SG系列的忠实fans,保持了平均每集5+遍的观看记录,在这里希望能够整理一下Stargate中出现的科学与技术, 并与传统科幻的体系和现实中的原型做比较,希望能够让更多的人了

在MATLAB下调试Caffe

Caffe本身是C++.CUDA语言编写的.在调试模型.参数时,根据运行log.snapshot很难实时反馈当前训练的权值情况,也难以捕捉算法存在的bug. MATLAB则是非常适合算法设计.快速迭代的利器,只需要做少量工作就能编写出复杂的算法,调试非常方便,位于workspace中的变量随时都能打印,无论是一维.二维还是三维数据,都能直观显示,从而有利于定位算法设计问题,减少调试时间. Caffe中有两种Wrapper:Python和MATLAB.Python是开源工具,用户无需付费即可使用,

击中击不中变换Matlab实现

matlab击中击不中函数为bwhitmiss,调用形式为: Ihm = bwhitmiss(I, S1, S2); % I为输入图像 % S1.S2为结构元素 The syntax bwhitmiss(BW1,SE1,SE2) is equivalent to imerode(BW1,SE1) & imerode(~BW1,SE2) 更为直观的实现方式代码: clear all; I = zeros(120,180); I(11:80,16:75) = 1; I(56:105,86:135)

MATLAB 2013a connect to postgresql use jdbc

matlab的安装请参考 :  http://blog.163.com/digoal@126/blog/static/16387704020138264433868/ 本文将介绍如何使用matlab通过jdbc连接PostgreSQL数据库. 首先要确认java版本 :  pg90@db-172-16-3-150-> java -version java version "1.7.0_09-icedtea" OpenJDK Runtime Environment (rhel-2.

把matlab打包成jar在java中运行,小波变换运行不了

问题描述 把matlab打包成jar在java中运行,小波变换运行不了 为了使整个过程一体化因此将.m文件打包成jar,不过报错了: ERROR ... wfilters ---> Invalid wavelet file : dmey.mat {??? Error using ==> wfilters at 66 Invalid wavelet file : dmey.mat Error in ==> wavedec at 33 Error in ==> tezheng at 2

《精通Matlab数字图像处理与识别》一6.3 快速傅立叶变换及实现

6.3 快速傅立叶变换及实现 精通Matlab数字图像处理与识别 6.2节介绍了离散傅立叶变换(DFT)的原理,但并没有涉及其实现问题,这主要是因为DFT的直接实现效率较低.在工程实践中,我们迫切地需要一种能够快速计算离散傅立叶变换的高效算法,快速傅立叶变换(FFT)便应运而生.本节将给出快速傅立叶变换算法的原理及其实现细节. 6.3.1 FFT变换的必要性 之所以提出快速傅立叶变换(FFT)方法,是因为在计算离散域上的傅立叶变换时,对于N点序列,它的DFT变换与反变换对定义为 于是不难发现,计

《精通Matlab数字图像处理与识别》一6.5 频域低通滤波器

6.5 频域低通滤波器 精通Matlab数字图像处理与识别 在频谱中,低频主要对应图像在平滑区域的总体灰度级分布,而高频对应图像的细节部分,如边缘和噪声.因此,图像平滑可以通过衰减图像频谱中的高频部分来实现,这就建立了空间域图像平滑与频域低通滤波之间对应关系. 6.5.1 理想低通滤波器及其实现 1.理论基础 最容易想到的衰减高频成份的方法就是在一个称为"截止频率"的位置"截断"所有的高频成份,将图像频谱中所有高于这一截止频率的频谱成份设为0,低于截止频率的成份设为

nsga2-我从网上下载了nsga-ii的matlab源代码,但是运行不起来,

问题描述 我从网上下载了nsga-ii的matlab源代码,但是运行不起来, 我从网上下载了nsga-ii的matlab源代码,但是运行不起来,需要改一些函数代码,但不知道怎么改,还有测试函数需要写进去,但不知道怎么改,请大神帮我解答一下,或者要是能有一个能直接运行的带测试函数代码的源程序就更好了 解决方案 http://zhidao.baidu.com/question/558736892.htmlhttp://emuch.net/html/201211/5177380.html 参考下,如果