强化学习用python多还是matlab多?
栏目:公司动态 发布时间:2023-08-09
强化学习用pythin多还是matlab多?如果是学生,或者研究人员,比如研究信号处理,那么用matlab比较好,有大量现成工具箱和前人的成果可以借鉴。如果是产品化项目,那么python比较好,可以做web后台,可以打包成应用程序,效率相对matlab也要高那么一点点。如果是信号、数据方面的工程人员,建议还是两个都掌握吧,也不复杂,都是脚本式

强化学习用pythin多还是matlab多?

如果是学生,或者研究人员,比如研究信号处理,那么用matlab比较好,有大量现成工具箱和前人的成果可以借鉴。如果是产品化项目,那么python比较好,可以做web后台,可以打包成应用程序,效率相对matlab也要高那么一点点。

如果是信号、数据方面的工程人员,建议还是两个都掌握吧,也不复杂,都是脚本式的语言,比C++什么的易学多了。

下面从两者各自的应用做个对比。

一、python的优势

Python相对于Matlab最大的优势:免费。国内可能不是很在乎这个,但在国外是个很关键的问题。

Python次大的优势:开源。你可以大量更改科学计算的算法细节。

可移植性,Matlab必然不如Python。但你主要做Research,这方面需求应当不高。

第三方生态,Matlab不如Python。比如3D的绘图工具包,比如GUI,比如更方便的并行,使用GPU,Functional等等。长期来看,Python的科学计算生态会比Matlab好。

语言更加优美。另外如果有一定的OOP需求,构建较大一点的科学计算系统,直接用Python比用Matlab混合的方案肯定要简洁不少。

python作为一种通用编程语言,可以做做Web,搞个爬虫,编个脚本,写个小工具用途很广泛。

二、matlab的优势

学术界大量使用matlab做仿真,做研究的话容易找到代码参考;

语法相对python更灵活一些,matlab写程序基本不用套路,所谓老夫撸matlab就一个字,干;

有simulink。有人说simulink没什么用,其实还是挺有用的,比如通信建模,另外simulink可以生产DSP或者FPGA代码,有的时候很有用。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

三、两者的区别

python是一种通用语言,而matlab更像是一个平台。

在你纠结于python应该使用哪个库,哪个ide,怎么把ide改成中文,为什么ide有bug,能不能交互式编写的时候。matlab已经完成了从入门到建模。



Python强于MATLAB的地方:


1 可视化


主要归功于Seaborn库。


老版本的MATLAB绘图丑爆了, 新版本(最近几年, 具体哪个版本开始记不清了)的MATLAB绘图系统有大更新, 有美化, 但是还是不如seaborn.


2 机器学习


主要归功于scikit-learn。


从模型的个数和API统一性来看, scikit-learn完爆MATLAB.


3 深度学习


主要归功于pytorch,TensorFlow。


4 数据处理


主要归功于pandas库。


pandas简直是是神器, 这个没办法, 不是MATLAB太弱, 是pandas太强.


5 循环加速


主要归功于numba库.


MATLAB的循环加速的话, 目前来看, 好像只能靠mex技术(本质上是用C/C++语言重写).


我之前写过相关的性能测试文章:


[高性能实战案例]MATLAB,Julia, Python(Numba)haitao:[高性能实战案例]MATLAB,Julia, Python(Numba)?zhuanlan.zhihu.com结果汇总一下(取平均值, 单位是秒):


MATLAB的向量化版: 10.207570


Julia的向量化版: 5.251


Julia的loop版: 2.952


Julia的loop2版: 1.731


Julia的loop3版: 0.321392


Python的numba版: 0.477


Julia, Python(Numba), C++, MATLAB 性能测试之“冰雹数”haitao:Julia, Python(Numba), C++, MATLAB 性能测试之“冰雹数”?zhuanlan.zhihu.com运行时间总结(单位是秒), 取每种语言速度最快的那个版本:


MATLAB: 4.134375


Julia(@inbounds) 1.142


C++(我写的代码): 1.869


Python(numba) 1.13


MATLAB的地方强于Python的地方:


1 信号处理


2 IDE


MATLAB的IDE设计出来就天生适合做数据分析的. Python的Spyder就模仿MATLAB的界面, 但是只模仿了一部分, 还是不如MATLAB.


3 各种工具包统一的数据格式。


Python的各个包是不同的作者团队独立开发的, 因此, 难以做到数据格式统一, API统一.


总结:


Python发展迅猛, 已经抢占了不少领域了, 比如数据分析, 机器学习, 深度学习.


MATLAB还是有它优势的领域, 这些领域暂时无法被替代.

人工智能技术python是主流

Python Matlab/Simulink Pendulum 强化学习联合仿真- 知乎 zhuanlan.zhihu.com/p/62

平台注册入口