Python

Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

与MATLAB的对比

说起科学计算,首先会被提到的可能是MATLABB。然而除了MATLAB的一些专业性很强的工具箱还无法被替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相应的扩展库。和MATLAB相比,用Python做科学计算有如下优点:

● 首先,MATLAB是一款商用软件,并且价格不菲。而Python完全免费,众多开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。

● 其次,与MATLAB相比,Python是一门更易学、更严谨的程序设计语言。它能让用户编写出更易读、易维护的代码。

● 最后,MATLAB主要专注于工程和科学计算。然而即使在计算领域,也经常会遇到文件管理、界面设计、网络通信等各种需求。而Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。

哪个更难?

如果是学生,或者研究人员,比如研究信号处理,那么用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已经完成了从入门到建模。

一直在用Matlab建模,现在Python很火,用学么?

有朋友问,自己是非IT技术岗,仅仅是做一些建模工作,现在在工作中一直使用Matlab,对它比较熟悉,各种函数都掌握,而前些年一直在用C、C++,可现在Python很火,也比较受重视,害怕如果自己不学,未来是不是就要被边缘化了?但年龄大了,感觉有点学不动了,可又担心抱残守旧,很容易被淘汰......

比较一下Matlab和Python:

Python开源社区很活跃,工具多,库多,第三方生态强;Matlab开源社区比较少,比较封闭;

Python技术栈可以覆盖到Web开发、数据分析、数据挖掘、后台开发、绘图等等,用途比较广;Matlab用途相对单一,当然你要硬干也成,那就属于抬杠了。

Python体积小、非常容易下载、开源免费;Matlab价格昂贵,虽然号称速度快,但随着Python的进步,包括第三方库,目前看差距也不大了。

至于要不要学Python,主要还是考虑以下一些因素吧:

1.业余时间多不多?精力够不够?有没有时间去学?如果时间还比较充裕,建议学一下,而且Python对于有一定编程基础的人来说,入门没什么难度,觉得有兴趣了,再往下深入,不要只停在门口;

2.在工作中有没有马上应用的机会?如果手头有实践或练手的机会,学起来可能会更有目的性;

3.如果预估日后很长一段时间还要亲手建模的话,那建议还是学一下,一方面转变成本并不是特别高,另一方面由于版权的问题,早晚会影响到学校和科研院所的。

当然,鼓励学点Python,不是说Matlab肯定会被淘汰,matlab+simulink还是很有价值的,估计十年内,至少在工业设计领域的地位还是无可撼动的。但技多不压身,如果多学个语言,不是一个极大的负担,建议还是与时俱进较好。而且就像前面说的,Python用途很广,尤其在大数据处理方面和可视化等方面,很可能会在工作中成为你的帮手。

更多推荐

python和matlab对比_python和matlab全面对比,哪个更实用?