计算化学公社

标题: MATLAB和Python功能重复不? 如果会了matlab,还有必要学习python么 [打印本页]

作者
Author:
Scienceme    时间: 2019-5-23 13:58
标题: MATLAB和Python功能重复不? 如果会了matlab,还有必要学习python么
谁知道, MATLAB 和 Python 功能重复不? 如果会了matlab , 还有必要学习python么

作者
Author:
robert2005    时间: 2019-5-23 15:54
这两个貌似功能不一样吧,虽然有相似的地方,但是差别也是比较明显的,百度了一下,前者偏数学的,后者是计算机编程语言。
MATLAB [1]  是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。

Python简介及应用领域编辑
Python是一种解释型脚本语言,可以应用于以下领域: [1]
Web 和 Internet开发
科学计算和统计
教育
桌面界面开发
软件开发
后端开发

二者功能差异还是很明显的。看用来干什么了
作者
Author:
fhh2626    时间: 2019-5-23 17:06
这两个东西不太一样,matlab主要是用来做数值模拟,python的话基本上可以做除了高性能计算以外的所有事情
作者
Author:
Scienceme    时间: 2019-5-24 11:31
robert2005 发表于 2019-5-23 15:54
这两个貌似功能不一样吧,虽然有相似的地方,但是差别也是比较明显的,百度了一下,前者偏数学的,后者是计 ...

多谢指点啊,我要开动Python了~~
作者
Author:
Scienceme    时间: 2019-5-24 11:32
fhh2626 发表于 2019-5-23 17:06
这两个东西不太一样,matlab主要是用来做数值模拟,python的话基本上可以做除了高性能计算以外的所有事情

嗯嗯,多谢您的指点,这个论坛真的好~ ,非常感谢~
作者
Author:
granvia    时间: 2019-5-24 12:49
如果只想提高自己的工作效率,matlab比python好学,尤其数学功能语法简单强大。但如果想普及自己的code, 提高影响力,还是python。因为matlab是收费软件,一般老实人用不起
作者
Author:
Scienceme    时间: 2019-5-24 20:43
granvia 发表于 2019-5-24 12:49
如果只想提高自己的工作效率,matlab比python好学,尤其数学功能语法简单强大。但如果想普及自己的code, 提 ...

matlab 确实非常的猛,几乎渗透到科学 工程 技术的各个领域。 如果对速度要求没那么高的话,基本是我的首选;现在 准备靠东python了~
作者
Author:
卡开发发    时间: 2019-5-24 22:21
Scienceme 发表于 2019-5-24 20:43
matlab 确实非常的猛,几乎渗透到科学 工程 技术的各个领域。 如果对速度要求没那么高的话,基本是我的首 ...

有了numpy,数值计算上python还是可以的。
作者
Author:
Scienceme    时间: 2019-5-24 23:34
卡开发发 发表于 2019-5-24 22:21
有了numpy,数值计算上python还是可以的。

多谢指点~
作者
Author:
玬翼    时间: 2019-5-26 00:28
看楼主的回帖提到了速度
如果是运算速度的话,Python作为解释型语言,速度肯定是比不上C++的
不知道楼主对速度的要求到什么程度
但为了追求速度而学Python,应该说是不太明智的吧

另外,至少我个人觉得即使会了Matlab,学Python或其他编程语言还是有必要的
毕竟面对复杂一些的任务,需要写比较长的代码的时候,还是编程语言写起来友好一些
作者
Author:
sobereva    时间: 2019-5-26 04:45
接着LS提到的我说两句。如果对Fortran或C没有很熟的话,与其学Python,不如好好先把Fortran学了,Fortran在科学计算领域有关键性地位,学起来极快,相关的库数目甚巨。写个正经的以计算为主的程序完全不能脱离Fortran等传统语言,目前主流量化、第一性原理程序大半都是Fortran写的(如Gaussian、VASP)。在我来看,现在很多人唯Python是从,什么流行学啥,不肯好好先把Fortran/C学扎实、用熟,显得过于跟风,甚至浮躁了,这样的话始终写不出一个真正拿得出手、能给别人用的强有力的计算程序。(关于跟风py带来的坏处,有个典型例子:PySOC,见http://sobereva.com/411。明明全都用Fortran写起来很容易,还可以让程序在各个系统下不需要python环境就能直接跑,作者却非要把一部分弄成Python的,名字里还带个Py来彰显,结果,弄得一堆新人抱怨运行不了,机子里还得装恰当版本的python才能用,纯粹给用户添堵)
作者
Author:
Scienceme    时间: 2019-5-26 10:20
sobereva 发表于 2019-5-26 04:45
接着LS提到的我说两句。如果对Fortran或C没有很熟的话,与其学Python,不如好好先把Fortran学了,Fortran在 ...

卢老师 说的有道理,您一直强调fortran的重要,参加完您的班,我更要抽出时间把fortran好好学学~ ,这个已经放到规划中~,  多谢卢老师指点~~
作者
Author:
SigFig    时间: 2019-6-22 08:39
看你的需求:
Matlab:
处理大量的数学语言(比如数学模型开发)
Python:
Matlab能做的,python都能做
原形开发/方法开发(就是甭管效率怎么样能出结果就行)
日常文件处理/流程控制(把结构A做MM->PM7->DFT之类)
小型的视窗化程序(Tkinter/PyQt)
如果对效能有一些要求(cython之类的混合语言)
Fortran/C++:
想把某种方法做成一个专用软件(如sob的多重老婆)或者有长期的编程开发计划
对运算效能(计算资源分配,运行速度等)要求非常高,但对图形/可视化要求低
学习面向对象设计

作为一个同时学过C++和Python的py汪的有偏见的额外建议:
编程语言千千万,变量循环和判断,然后指针对象MVCDPGUI
学编程!=学某一门编程语言。
写代码之前,明确你现在的需求,以及你将来基于你这次实现的功能的需求如何变化
不明确需求就偏爱某种编程语言,就和不论剂量去谈某种物质的毒性一样无知。
Python对编程小白很友好,但不如C有深度。
不要用goto,不要用goto,不要用goto
有些大型软件使用Fortran,只是因为它们最初的版本用的是Fortran,后续的版本用Fortran维护成本更低,并不是因为Fortran的优越性。
作者
Author:
Scienceme    时间: 2019-6-23 09:59
SigFig 发表于 2019-6-22 08:39
看你的需求:
Matlab:
处理大量的数学语言(比如数学模型开发)

多谢指点~; 非常感谢指招 ~  




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3