几种可以与MATLAB媲美的开源工具~

新机器视觉

共 3035字,需浏览 7分钟

 · 2023-10-14

正文


收集整理到的一些开源软件,可以起到一定的替代效果。包括:SCILAB、Octave、Spyder、Python、GMAT、GNU Radio、ROS。特别是SCILAB,他与MATLAB最为接近,近乎可以实现完美替代!


一、“近乎完美”替代之SCILAB

SCILAB 是一款与 MATLAB 类似的开源软件,可以实现 MATLAB 上所有基本的功能,如科学计算、数学建模、信号处理、决策优化、线性、非线性控制等各个方面。

由于 SCILAB 的语法与 MATLAB 非常接近,熟悉 MATLAB 编程的人很快就会掌握 SCILAB 的使用。有意思的是,SCILAB 提供的语言转换函数可以自动将用 MATLAB 语言编写的程序翻译为 SCILAB 语言。目前,SCILAB 可在 Linux、WINDOWS 和 Mac OS 全 PC 平台运行。

作为开放源码的软件,SCILAB的源代码、用户手册及二进制的可执行文件都是免费的,公布于INRIA的网站上(中法实验室已建立其镜像网站),可以直接下载,在EETOP论坛SCILAB专区也可以下载:

http://bbs.eetop.cn/forum-114-1.html

更重要的是SCILAB 是由法国国家信息、自动化研究院的科学家们开发的“开放源码”软件,和美国没有关系!

此外最关键的是SCILAB也一个有类似 MATLAB simulink的工具Xcos!simulink能做的Xcos也可以完成,并且界面和使用也很类似!很多网友担心的simulink无法替代问题迎刃而解!

因此SCILAB 近乎可以完美替代MATLAB!(欢迎用过的朋友补充说明)

Xcos截图:


二、与MATLAB语法兼容Octave

如果已经对MATLAB语言非常熟悉,暂时不想学习一门新的语言,那么可以尝试一下Octave。Octave是GNU项目成员之一,提供了与MATLAB语法兼容的开放源代码科学计算及数值分析的工具。

Octave 是一个类似 MATLAB 和 Scilab 的数学软件包,可以进行各种运算,编程。它还有丰富的 C++ 接口可以让用户编程时调用。其配套的绘图工具采用 gnuplot 。Octave 的使用也是基于字符终端模式的,当需要绘图时,将会调用 gnuplot 进行数据绘图,并显示出来。

Octave 是用 C++ 编写的,它内容丰富的库也可以供用户在编写软件时调用。Octave 同时还支持 Fortran 等的调用,GSL 绑定等。可以由用户定制自己的函数、子程序等。


三、航天计算神器 GMAT

对于航天器轨道计算、任务分析等,可以尝试General Mission Analysis Tool (GMAT)。GMAT提供了图像化界面或脚本两种接口,相比于STK,GMAT的深空探测相关功能更加强大,可配置的资源也更多。


四、软件无线电、信号处理等应用 GNU Radio

GNU Radio是一个对学习,构建和部署软件定义无线电系统的免费软件工具包,可通过Python或类似于Simulink/Labview的图形化界面调用。紫丁香、龙江等卫星的业余无线电接收解调软件就是在GNU Radio基础上开发并开源发布的。


五、机器人相关 Robot Operating System (ROS)

ROS是一种针对于满足不同机器人软件协同工作的灵活软件框架。目的在于提高软件模块化能力和复用能力,并实现不同任务间的数据/信号量的有效共享,方便多种机器人平台之间创建复杂和鲁棒的机器人行为,同时它也是一种工具库的约定与集合。


六、Spyder

Spyder不是一门编程语言,Spyder是Python(x,y)的作者为它开发的一个简单的集成开发环境。和其他的Python开发环境相比,它最大的优点就是模仿MATLAB的“工作空间”的功能,可以很方便地观察和修改数组的值。

Spyder的界面由许多窗格构成,用户可以根据自己的喜好调整它们的位置和大小。当多个窗格出现在一个区域时,将使用标签页的形式显示。例如在图1中,可以看到“Editor”、“Object inspector”、“Variable explorer”、“File explorer”、“Console”、“History log”以及两个显示图像的窗格。在View菜单中可以设置是否显示这些窗格。

Spyder 的界面与 MATLAB 非常类似,其作者早年也承认模仿了 MATLAB 的设计。如果对于 MATLAB 的仿真建模需求不高的话,Spyder 足以取而代之。


七、Python

Python是一门完全免费的通用编程语言,以开源的方式提供了大量各类用途的库与包,如Numpy(数值计算)、SciPy(数学、科学和工程计算)、Matplotlib(类似MATLAB中plot的绘图工具)等等。

Python是一门更易学更严谨的面向对象的程序设计语言。作为通用程序设计语言的Python,有更为严格清晰的语法,可以轻易完成界面、文件、封装等高阶需求,可移植性更好,也非常适合AI、网络等相关应用。

Python的拥有庞大的数学库,如果不是必须用到MATLAB simulink的化,用Python来取代MATLAB 应该是最佳方式了。我们经常可以看到这样一个公式:

python+NumPy+Scipy+matplotlib = Matlab


来源:EETOP
声明:部分内容来源于网络,仅供读者学习、交流之目的。文章版权归原作者所有。如有不妥,请联系删除。

—THE END—

浏览 1115
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报