回复内容:
Python相对MATLAB的优势:
1. 通用编程语言,除了科学计算还可以做很多其他事情,比如web。
2. 字符串操作比MATLAB方便。注意即使是科研也经常操作字符串哦。典型结果是,很多人开始抛弃perl转用Python做生物信息学分析,而MATLAB尽管有生物信息学工具箱也没什么人用。(抱歉我不知道你要做哪个领域的科研,这个例子不一定对你适用。)
3. 免费。如果你没花大价钱买MATLAB而用的盗版,发文章要小心哦。但Python就没有这个问题。
MATLAB相对Python的优势:
1. 矩阵操作非常方便。我还没发现哪个语言操作矩阵比MATLAB还爽的,Python的numpy也不及。
2. 程序运行完了可以在workspace中查看结果,方便进一步观察。但Python使用特殊的包好像也能做,没试过不知道。
3. 某些特定领域,MATLAB的工具箱更让人信赖。毕竟敢卖那么贵,没点干货是不行的。而Python很多包的来源就很复杂了,像numpy这样的当然值得信任,但网上随便下的包就不好说了。
关于MATLAB的其他槽点请搜索“你什么时候对MATLAB感到绝望”。(爪机答,无法提供链接,抱歉。)
总的来说:
1. 同意楼上,你实验室大部分人用啥你就用啥。
2. 有余力的话,都学了,包括R、mathematica等。
师兄用啥你用啥,别想着标新立异
----------------------------------
MATLAB和Python都是很优秀很成熟的编程语言,相对而言前者偏重数值计算、信号仿真,后者偏重通用编程、网络操作;但MATLAB现在也有网络读写urlread/urlwrite以及正则表达式regexp等功能,而Python也提供了numpy、scipy科学计算模块以及酷炫的IPython Notebook。如果有余力有兴趣,最好是两者都有所涉猎,但具体到科研实际使用上还是“师兄用啥你用啥”。
对于大多数学科领域的研究人员而言,编程软件只是工具。前辈师兄用的是什么,你最好也用什么,这样能有效降低沟通交流成本,避免因工具转换造成的纠结折腾,避免重新发明轮子的窘境,把宝贵的时间和精力省出来用在科研主业上,我认为这才是做科研应有的专业态度。
过多地纠结于软件工具,就像码农圈“为什么 [X语言] 比 [Y语言] 更好”的流毒一样,都只是不专业的夸夸其谈,只适合业余票友用来吹牛逼。
来终结这类问题。
一、vczh的观点「牛人绝不会炫耀自己的工具」是很有道理的。算法、思想才是王道。语言选择对之后科研的影响没有你想得大;
二、现存的各种主流语言,没有任何一种会被其他语言完美替代,包括被黑到死的matlab和Java。也就是说,每种语言一定有自己的擅长领域;
三、选择语言,首先要充分了解所做的科研内容,然后借助搜索引擎的帮助进行选择。当然,前辈的建议也很值得参考;
四、有黑一门语言的精力,不如认认真真去解决一个语言问题。(此条与题主无关,纯借楼吐槽)
五、关于matlab和python,做数值计算和各种信号的仿真、数学建模时老师推荐的都是matlab,而我认识的几个数学系学生则偏好python(当然,他们的R语言是必修课)。其他的领域不了解。
都学
顺便R也学了
多会点总没错
真正的差异在于,python首先是程序设计语言,是开发工具,通过模块顺便提供了科学计算和仿真支持;matlab是计算和仿真工具,顺便提供了编程接口。两者的目的和面向的用户群一开始就是有差异的。理性的讲,matlab就是更容易上手更容易开工,python就是更容易自行设计大规模的程序。
完全同意说师兄用啥你用啥,做科学计算要的还是输出一个可以与人分享讨论的计算结果,与其纠结工具,不如用大家都用的东西。
真心求教,为什么老有人拿Python和MATLAB对比。我之前用MATLAB只是上课做过数字图像处理和信号处理,两个的共同点很多吗?Python也可以做这些吗?生成个频谱图什么的
Matlab 2015b已经兼容python了,号称可以当python的那些包作为toolbox
对于科研,都只是工具。两者各有优势,得看具体是什么科研吧。
MATLAB主要用于计算与仿真。Python的库很多,主要是编程。
你看一下你研究的领域用到哪些MATLAB与Python的工具,再作比较吧。
,话说,你指的科研是处理个数据什么,做个表格,建个数学模型,用python 会好蛋疼啊。matlab顺手还容易学