经常有小伙伴在数学建模竞赛会问到,MATLAB和Python到底哪个更好?这个问题一直困惑很多同学,今天数乐君来给大家从实用型来综合分析一下:
首先从两者各自的应用做个对比。
一、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代码,有的时候很有用。
三、两者的区别
python是一种通用语言,而matlab更像是一个平台。
四、怎样选择
数乐君认为根据实用性来选择,不同领域,选择也不同。
如果是参加数学参加数学建模竞赛
我更推荐MATLAB,原因如下:
MATLAB在数学建模中的使用情况:MATLAB 是公认的最优秀的数学模型求解工具,在数学建模竞赛中超过 95% 的参赛队使用 MATLAB 作为求解工具,在国家奖队伍中,MATLAB 的使用率几乎 100%。虽然比较知名的数模软件不只 MATLAB。
使用MATLAB的原因:
1. MATLAB 的数学函数全,包含人类社会的绝大多数数学知识。
2. MATLAB 足够灵活,可以按照问题的需要,自主开发程序,解决问题。
3. MATLAB易上手,本身很简单,不存在壁垒。掌握正确的 MATLAB 使用方法和实用的小技巧,在半小时内就可以很快地变成MATLAB 高手了。
如何正确使用MATLAB去进行编程:
正确且高效的 MATLAB 编程理念就是以问题为中心的主动编程。我们传统学习编程的方法是学习变量类型、语法结构、算法以及编程的其他知识,因为学习时候是没有目标的,也不知道学的知识什么时候能用到,收效甚微。而以问题为中心的主动编程,则是先找到问题的解决步骤,然后在 MATLAB 中一步一步地去实现。在每步实现的过程中,遇到问题,查找知识(互联网时代查询知识还是很容易的),定位方法,再根据方法,查询 MATLAB 中的对应函数,学习函数用法,回到程序,解决问题。在这个过程中,知识的获取都是为了解决问题的,也就是说每次学习的目标都是非常明确的,学完之后的应用就会强化对知识的理解和掌握,这样即学即用的学习方式是效率最高,也是最有效的方式。最重要的是,这种主动的编程方式会让学习者体验到学习的成就感的乐趣,有成就感,自然就强化对编程的自信了。这种内心的自信和强大在建模中会发挥意想不到的力量,所为信念的力量。
数学建模竞赛中的 MATLAB 水平要求:要想在全国大学生数学建模竞赛中拿到国奖, MATLAB 技能是必备的。具体的技能水平应达到:
1)了解 MATLAB 的基本用法,包括几个常用的命令,如何获取帮助,脚本结构,程序的分节与注释,矩阵的基本操作,快捷绘图方式;
2)熟悉 MATLAB 的程序结构,编程模式,能自由地创建和引用函数(包括匿名函数);
3)熟悉常见模型的求解算法和套路,包括连续模型,规划模型,数据建模类的模型;
4)能够用 MALTAB 程序将机理建模的过程模拟出来,就是能够建立和求解没有套路的数学模型。
要想达到如上要求, 不能按照传统的学习方式一步一步地学习, 而要结合上述提到的学习理念制定科学的训练计划。
如果做产品
可以python为主。当然也有matlab做成产品的,打包成exe什么的都不是事,另外产品化项目,python也是比较好,可以做web后台,可以打包成应用程序,效率相对matlab也要高那么一点点。
很多人喜欢拿python和matlab对比,然后得出哪个更好的结论。其实吧,够用就好,不同的应用场景,他的应用也不一样,大家觉得哪个更适合你呢呢?欢迎交流讨论。
另外,在备赛同时,不妨以赛代练,可以直接拿当下即将开赛的5月数维杯数学建模作为国赛前热身,赛题和风格和国赛一致,难度适中,比较适合数模小白和有有一定经验的大佬,总之,这也是比较快速入门的方式之一,还不知道怎么参加的可以直接查看数维杯官网
2024年第九届数维杯大学生数学建模挑战赛https://link.zhihu.com/?target=http%3A//www.nmmcm.org.cn/match_detail/32更多数学建模学习干货,关注GZH数模乐园