比较Octave,Spyder,Freemat和Scilab作为MATLAB的替代方案


20

我正在尝试找到MATLAB的替代方案,到目前为止已经找到:

  • GNU八度
  • 斯派德
  • FreeMat
  • 科学实验室

我试图找到哪种是替代MATLAB的最佳选择。我特别关注性能和结果的完整性。


1
您还应该考虑使用R。StackOverflow上的这个问题可能是最好的比较
Oli

Answers:


10

好吧,您已经可以使用我提到的所有编程语言/软件了。FreeMat和Spyder我没有太多经验,但是我有一些经验。我经验丰富的其他人。

到目前为止,GNU Octave吸引了竞争。它的语法与MATLAB极其兼容。除奇数工具箱外,我至少知道唯一的区别,您可以尝试此处用这些软件包替换这些奇数,这是因为GNU Octave可以从命令行定义函数。

我不知道您是否知道QtOctave。QtOctave是GNU Octave编程语言的前端(GUI)。QtOctave也带有编辑器。

Scilab也可以替代MATLAB。它在语法方面有一些差异,但是如果您搜索它附带的文档,那么您将无所不能。

至少在我看来,FreeMat是最糟糕的语法,其语法很大程度上基于MATLAB。我的证据包括三个部分:首先,在软件中心中,它在所讨论的四个软件中获得最低的星级。第二,它不经常更新,软件中心的最新版本是2008年最后一次更新。第三,由于我的第二笔证据,其功能有些滞后。但是,好的一面是它的语法与MATLAB的语法高度兼容。

我使用过Spyder,但恐怕只是短暂地了。看来是高质量的。它的问题在于,从语法角度来看,它与MATLAB的兼容性有限。它要求您学习一些Python编程语言,也就是说,如果您打算做得更好。

我也建议使用SageMath,因为它包括GNU Octave,(如果已经在系统上安装了它)Scilab,(如果已经安装了它)Numpy,[除非另有说明,否则Numpy和上面提到的其余部分都随Sage一起提供,因此不需要安装] Scipy,Matplotlib,maxima,fortran等。可以通过转到http://www.sagemath.org/download-linux.html网站并根据您的位置选择合适的镜像来下载SageMath ,然后安装相关的.tar.lzma文件。复制之后,将以下命令粘贴到终端(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

其中“ x”是指操作系统的位;“ y”指的是圣人设计的Ubuntu版本(例如10.04_lts; 12.04_lts(在“ y”中需要_lts),等等);“ z”是指您的操作系统的体系结构。(i386,amd64等)


2

在您列出的所有列表中,Octave是语法最兼容的。实际上,除了某些昂贵的Matlab工具箱外,Octave还可以运行98%的代码(我刚刚组成的数字)。我在工作中使用Matlab,在家中使用Octave。

Octave不会(本地)运行某些内置的GUI,例如inputdlg等,如果您安装Qtoctave(用于Octave的IDE,sudo apt-get install qtoctave),则可以使用xmlwidget和包装器来获得该功能(如果你感兴趣)。

就性能而言,Octave并不那么快(以Google为基准)。但是,您可以使所有现代版本的Matlab在Linux上运行(如果有许可证),并且默认情况下它们已包含在安装磁盘中,并且与视窗。

如果您想要性能,并且不想使用自由软件,那么最好看一下scipy。但是语法不太兼容。您将需要重写代码。Spyder是一个使用python和scipy的工具,scilab是一个八度和最大值的混合体。不确定freemat的性能,但我不认为它像Octave一样发达。

祝好运。

一些基准

速度

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

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

记住基准是主观的。有很多变量。唯一真正了解的方法是使用您的处理代码在设备上对它们进行全部测试。


如果有人用谷歌搜索并找到Octave与Matlab的良好基准,也许可以在此答案中编辑更详细的信息或链接。
伊利亚·卡根

1

只是为了澄清:您为什么要使用Matlab替代方案?prasadkumar013的答案表明您不能在Ubuntu上使用Matlab,但是可以(至少我在Ubuntu上运行它;))。在https://help.ubuntu.com/community/MATLAB页面上有社区文档。

万一您想用八度音程自由替代,大多数matlab代码将直接在八度音程中工作。虽然尝试在终端中工作,但我认为qtoctave GUI并不是那么用户友好。


1

最类似于MATLAB = Octave,(链接到gui)
一种令人敬畏的新兴高级计算语言= julia
但我最喜欢的恕我直言在语言PYTHON(scipy,sage,cython等方面)最有用。


0

http://pdl.perl.org/

PDL(“ Perl数据语言”)使标准Perl能够紧凑地存储和快速处理大型N维数据阵列,而大型N维数据阵列是科学计算的基础。


0

您是否已经尝试过Sage(www.sagemath.org)?它是用于不同数学软件的容器,并且可以进行符号和数值计算。后者使用numpy和scipy完成。它有一个非常活跃的社区,并且是一个用python编写的开源项目。

由于您对性能感兴趣,因此这里有一些基准测试(在页面末尾还有与Matlab的比较)。


0

是好纸。

它有简短的解释和完成的各种测试。

顺便说一句,我不使用MATLAB或类似的东西。


-1

我没有进行真正的比较,但以我的经验来看,从性能角度来看,倍频程比MATLAB更好。

您应注意,“都是相对的”不同的工具箱具有不同的性能。

如果您的计算机上的RAM有限,我会说任何事情都比MATLAB更好。


-2

我的大学在Windows PC上使用MATLAB。但是要在Ubuntu上使用MATLAB,我有两个选择

  1. 通过Wine或任何虚拟化软件安装MATLAB
  2. 查找Linux等效者

由于笔记本电脑上的虚拟化非常繁重,因此我寻找了替代方案。经过多次软件测试,我终于选择了OCTAVE。它可以运行大多数标准的MATLAB代码。而不是GNU Octave,最好使用qt Octave。前者基于终端,而后者基于GUI。我的选择是去qt Octave

sudo apt-get install qtoctave


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.