MATLAB和Python 相互無法替代的地方有哪些,對於以後一直做科研的人,兩種語言到底哪家強?
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等。
真正的差異在於,python首先是程序設計語言,是開發工具,通過模塊順便提供了科學計算和模擬支持;matlab是計算和模擬工具,順便提供了編程介面。兩者的目的和面向的用戶群一開始就是有差異的。理性的講,matlab就是更容易上手更容易開工,python就是更容易自行設計大規模的程序。
完全同意說師兄用啥你用啥,做科學計算要的還是輸出一個可以與人分享討論的計算結果,與其糾結工具,不如用大家都用的東西。師兄用啥你用啥,別想著標新立異
----------------------------------
MATLAB和Python都是很優秀很成熟的編程語言,相對而言前者偏重數值計算、信號模擬,後者偏重通用編程、網路操作;但MATLAB現在也有網路讀寫urlread/urlwrite以及正則表達式regexp等功能,而Python也提供了numpy、scipy科學計算模塊以及酷炫的IPython Notebook。如果有餘力有興趣,最好是兩者都有所涉獵,但具體到科研實際使用上還是「師兄用啥你用啥」。
對於大多數學科領域的研究人員而言,編程軟體只是工具。前輩師兄用的是什麼,你最好也用什麼,這樣能有效降低溝通交流成本,避免因工具轉換造成的糾結折騰,避免重新發明輪子的窘境,把寶貴的時間和精力省出來用在科研主業上,我認為這才是做科研應有的專業態度。
過多地糾結於軟體工具,就像碼農圈「為什麼 [X語言] 比 [Y語言] 更好」的流毒一樣,都只是不專業的夸夸其談,只適合業餘票友用來吹牛逼。來終結這類問題。
一、vczh的觀點「牛人絕不會炫耀自己的工具」是很有道理的。演算法、思想才是王道。語言選擇對之後科研的影響沒有你想得大;
二、現存的各種主流語言,沒有任何一種會被其他語言完美替代,包括被黑到死的matlab和Java。也就是說,每種語言一定有自己的擅長領域;
三、選擇語言,首先要充分了解所做的科研內容,然後藉助搜索引擎的幫助進行選擇。當然,前輩的建議也很值得參考;
四、有黑一門語言的精力,不如認認真真去解決一個語言問題。(此條與題主無關,純借樓吐槽)
五、關於matlab和python,做數值計算和各種信號的模擬、數學建模時老師推薦的都是matlab,而我認識的幾個數學系學生則偏好python(當然,他們的R語言是必修課)。其他的領域不了解。都學順便R也學了多會點總沒錯
Matlab 2015b已經兼容python了,號稱可以當python的那些包作為toolbox
,話說,你指的科研是處理個數據什麼,做個表格,建個數學模型,用python 會好蛋疼啊。matlab順手還容易學
1.老師教什麼,你學什麼。
2.同領域文獻用哪個多,你選哪個。有些領域是專用matlab,甚至是dos時代某軟體的。
3.以上都不確定,選python。python基本上可替代matlab,反之不行。不排除非常小眾的領域,matlab有包,python沒有。但小眾到這個程度,十有八九靠自己編程,而python編程比matlab順手。
對於科研,都只是工具。兩者各有優勢,得看具體是什麼科研吧。MATLAB主要用於計算與模擬。Python的庫很多,主要是編程。你看一下你研究的領域用到哪些MATLAB與Python的工具,再作比較吧。
真心求教,為什麼老有人拿Python和MATLAB對比。我之前用MATLAB只是上課做過數字圖像處理和信號處理,兩個的共同點很多嗎?Python也可以做這些嗎?生成個頻譜圖什麼的
推薦閱讀:
※Matlab面向對象編程是否值得大量使用?
※R相比於matlab有哪些優勢?為什麼現在被越來越多的使用?
※學習 MATLAB 有哪些書籍是值得推薦的?
※數學建模一般用哪種軟體比較好?MATLAB是否有局限性?
※matlab中運行gpuDevice為什麼那麼慢?