不知大家还记不记得曾被那些营销号疯狂蹭流量的国内某某高校MATLAB被禁用的新闻,当时就有人发出豪言要搞中国版的MATLAB,目前看来终究是雷声大雨点小,逐渐也被人遗忘,一切照旧。
而与此同时,唯一称得上是开源版MATLAB的GNU Octave已经升级到了7.1.0版,可以说是风生水起、有声有色。今天计划给大家介绍这款新的适配MATLAB语法的编程工具,可以说是另一款开源版MATLAB,算是后起之秀,咱也早就想给大家介绍了。
NelSon是2016年由Allan CORNET发起并主导开发的一款兼容MATLAB语法的数值计算编程工具,其旨在使用现代的C/C++库(如Boost、Eigen、FFTW等)以及其他最先进的数值计算库为科学与工程应用提供开放的计算环境,支持复杂的数据结构(如cell、struct、string array、linear systems等)。NelSon作为开放的、模块的编程工具,它允许用户通过重载的方式定义自己的专属数据结构和相应的数据操作方法。目前已更新至0.6.5.2005版,支持window、Linux和Macos等操作系统,
NelSon主界面
脚本编辑器
帮助文档
从上面的截图不难看出,NelSon的软件界面目前还相对简陋,但其所提供的计算功能还是非常丰富的,难得翻译,直接copy官网的介绍了:
NelSon目前支持如下的处理:
Internal data types,
Overloading,
Modularity,
External modules,
Build C/C++ code on the fly,
C MEX API support,
Nelson Engine API for C (compatible with MEX Engine),
Foreign Function Interface,
Fast Fourier Transformation,
HDF5 High Level functions I/O,
MAT-Files functions I/O
Subroutine Library in Systems and Control Theory,
QML engine,
COM interface,
Message Passing Interface,
Interprocess Communication,
JavaScript Object Notation,
RESTfull web service,
Nelson in the Cloud ☁️,
Audio module,
UNICODE and charset support,
validators functions,
Code editor.
诚如NelSon的开发者所讲,即便NelSon目前提供了丰富可用于解决实际问题的功能函数,但是还远远不够,一些基本的功能目前仍然还未添加,如绘图功能(PS:这也是为啥咱不在示例代码中添加绘图代码的原因,连plot函数都没有)、兼容性强的重载架构、控制模块、ODE、优化模块等。不过作者承诺会在1.0版中解决重载、控制模块以及ODE。还有一个不方便的地方就是,NelSon目前还没有类似MATLAB workspace的变量显示模块,不太方便查看变量,但可以导出兼容的mat数据格式文件。
咱为啥依然要给大家分享一个看似还未成熟的编程工具呢?首先咱非常看好NelSon,希望有更多伙伴能够去用它,然后积极去GitHub给作者反馈问题,助力软件的更新。有能力的伙伴还可以参与到开发者行列中去,积极献计献策。一款产品开发出来,只有用的人越多,作者才会有更强的动力去继续这个工作。其次,作为matlab爱好者,有理由多了解一些与matlab极其相近的产品,这样可以多一种选项。最后,目前已知的开源的兼容MATLAB语法的编程工具除了GNU Octave和NelSon外,其他的都好久不更新了。
图片来源:
nelson-numerical-software.github.io/nelson-website/、以及软件界面截图
参考资料:
[1] github.com/Nelson-numerical-software/nelson
[2] nelson-numerical-software.github.io/nelson-website