MATLAB和Python 相互無法替代的地方有哪些,對於以後一直做科研的人,兩種語言到底哪家強?
來源:互聯網
上載者:User
回複內容:
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以及Regexregexp等功能,而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順手還容易學