Matlab和Python这两个名词对于理工科生来说应该都不陌生。有些同学可能只对其中一种熟悉或熟练使用,今天我们就来聊一聊它们。
0 1
两者区别
首先准确地说,两者无法放到一起比较,Matlab只是一个工具,甚至称不上一种语言,而Python是可归类为一种开发语言,其他的还有R语言,C++,C语言等等。如果硬要拿来比较,以下两种比较的角度可作为参考:
■ Anaconda和Matlab比较。这俩在工程,组件,配置上都提供了一系列的管理能力。这样比较,Anaconda具有明显不足,毕竟Matlab的GUI已经做得非常好了。Anaconda缺失了GUI的功能,只是内置了一些IDE,如Spyder,Jupyter Notebook等。
■ Python中的某个Package和MATLAB中的Toolbox对比。这两个都能提供基础功能,用户可基于此继续开发使用。
0 2
各自优势
Python:1. 相对于Matlab最大的优势:免费。
2. 开源。可以大量更改科学计算的算法细节,且体积小。
3. 语言更优美。如果有一定的OOP需求,构建较大一点的科学计算系统,直接用Python比用Matlab混合的方案肯定要简洁不少。
4. 通用性更高。通用的编程语言,做做Web,搞个爬虫,编个脚本,写个小工具啥的用处广。尤其近几年发展速度惊人,其在web、机器学习、深度学习、数据处理这方面确实地位高。
MATLAB
:1.有Simulink在,10年内Matlab在工业设计领域的地位无可撼动;市面上绝大多数汽车企业都依靠MATLAB/Simulink进行控制系统设计,其生成的代码符合标准规范(你自己写的那些不代表符合规范)。
2.相对而言,Matlab的工具丰富程度,完好性大于Python。
3. 作为一个封闭性软件,MATLAB活跃于高校中(个人怎么买得起。。。),因此实验室常用软件几乎都为MATLAB。
4. 对于空气动力学、电磁学等模拟器算法,MATLAB的细节优化十分细致,文档完整度一流。一脸懵逼的CS同学可绕道。
5. 利用Python和matlab同时加载一幅JPEG图像,你会觉得python像个弱智。嗯,在图像处理这块,Matlab是专业的。(代码示例如下)
%Matlab中,加载图像img.jpgimage=imread('img.jpg');figure;imshow(image,[]);imwrite(image,'a.png');
#python中import cv2scr=cv2.imread('img.jpg')cv2.namedWindow('image',cv2.WINDOW_AUTOSIZE)cv2.imshow('image',scr)cv2.imwrite('D:/python/result.tif',scr)video_demo()cv2.waitKey(0)cv2.destroyAllWindows()
0 3
要不要学/学哪个
还得看你的专业和研究需要,各有秋千。应用场景不一样,每个工具都是在各自的领域有效。单纯的说哪个好,没有任何意义,把它们都当成帮助你解决问题的工具就好了。
如果你有时间和精力,两种语言可以都试着学学;如果你是一个会C语言的大佬,那这两种工具的学习对你来说就太简单了,不会花很多时间。
对于Matlab的学习,我文章开头就说了它称不上一种语言,因为MATLAB的语法非常简单,没有太多规则,对理工科生来说学习难度都不大。甚至可以直接上手看代码,写代码,遇到问题直接查看官方文档,每条语法都讲得很清楚,还附有案例。
最后,我觉得很难有人做到从始至终只用Matlab或者只用Python,建议根据需求去调整。
☆ END ☆