科学计算:Python VS. MATLAB (1)----给我一个理由先
生活随笔
收集整理的這篇文章主要介紹了
科学计算:Python VS. MATLAB (1)----给我一个理由先
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
科學(xué)計(jì)算:Python VS. MATLAB (1)----給我一個(gè)理由先
????????MATLAB 是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境。使用 MATLAB,您可以較使用傳統(tǒng)的編程語言(如 C、C++ 和 Fortran)更快地解決技術(shù)計(jì)算問題。(官網(wǎng):http://www.mathworks.com/matlabcentral/linkexchange/links/1573-matlab-科學(xué)計(jì)算語言)
????????隨著MATLAB工具箱的不斷添加和完善,M語言也逐漸成為工程界的準(zhǔn)通用標(biāo)準(zhǔn)語言,官網(wǎng)稱:MATLAB - The Language Of Technical Computing。大學(xué)理工科專業(yè)一般都開設(shè)了或選修或必修的MATLAB相關(guān)課程。很多新出版的教材,計(jì)算機(jī)輔助教學(xué)的工具軟件開始選用MATLAB。MATLAB以其簡潔易學(xué)的語法、友好的界面和完善的文檔系統(tǒng)逐漸深入人心并將繼續(xù)擴(kuò)大它的控制領(lǐng)地。
????????然而,MATLAB也有著很大的局限性。首先,是價(jià)格。作為一款商業(yè)軟件,獲得正版授權(quán),價(jià)格不菲。就說最便宜的學(xué)生版,核心組件單個(gè)授權(quán)要花99刀,想使用額外工具箱,則是每個(gè)工具箱29刀。(http://www.mathworks.com/store/platformReleaseStuSubmit.do) 正如你能想到的,商業(yè)版本更貴。其次,是版權(quán)。mathworks論壇活躍著很多用戶,也有很多有價(jià)值的代碼,但是,版權(quán)歸mathworks公司,要想使用必須獲得它的授權(quán)。再次,是語言完善性。MATLAB進(jìn)行數(shù)學(xué)計(jì)算的表現(xiàn)無可置疑,但是實(shí)際的科學(xué)計(jì)算還有文件操作、界面設(shè)計(jì)等任務(wù)。MATLAB在這些領(lǐng)域功能較弱或者很麻煩。應(yīng)該可以說,MATLAB不是一種完善的語言。
????????窮則思變。這時(shí),我們發(fā)現(xiàn)了Python。MATLAB的以上不足,恰是Python的優(yōu)勢。
???????首先,Python完全免費(fèi)(http://python.org/),絕大多數(shù)科學(xué)計(jì)算相關(guān)擴(kuò)展庫也都是免費(fèi)的,大多也都是是開源的,所以金錢問題完全不用考慮。版權(quán)問題也基本不用考慮,眾多的實(shí)例程序可以讓你拿去就用。(有時(shí)候也需要考慮,因?yàn)橛行┦跈?quán),如GPL授權(quán),具有“傳染性”)。考慮控制版權(quán)更嚴(yán)格的諸如美國之類的國家,有著眾多的研究人員和大學(xué)生使用Python,并有很多網(wǎng)絡(luò)提供了交流平臺,在這個(gè)平臺可以獲得更多的交流學(xué)習(xí)機(jī)會。其次,Python是一門更易學(xué)更嚴(yán)謹(jǐn)?shù)拿嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)語言。作為通用程序設(shè)計(jì)語言的Python,有更為嚴(yán)格清晰的語法,可以輕易完成界面、文件、封裝等高階需求。最后,不得不提的就是性能。MATLAB作為科學(xué)計(jì)算工具,經(jīng)過了近乎苛刻的優(yōu)化,Python呢?實(shí)話說,純Python的速度確實(shí)不怎么地,但是使用Python的科學(xué)計(jì)算擴(kuò)展庫numpy、scipy等之后,速度和MATLAB不相上下。(http://www.scipy.org/PerformancePython#head-a73fa06d3c4f3bda71b3526d30d51c492d8f80df)
????????以上理由似乎足以讓我們割愛MATLAB,選擇使用“Python+擴(kuò)展”來完成科學(xué)計(jì)算問題。然而,我想起班固的名言“愛而知其惡”,Python進(jìn)行科學(xué)計(jì)算是不是完美?又有哪些劣勢呢?Google了一陣子,發(fā)現(xiàn)大致是這樣:第一,因?yàn)槌两陂_源的環(huán)境下,想私藏代碼似乎不是那么容易了,甚至不好意思了。第二,文檔系統(tǒng)不是很完善,中文的更是少之又少,這就要求一定的英語文檔閱讀功底。不過MATLAB至今也沒有提供過中文的文檔。第三,MATLAB中的有些生僻的專用工具箱沒有Python環(huán)境下的對應(yīng)模塊功能實(shí)現(xiàn)。第四,貌似沒有第四了。
????????以上對比不敢說寫的就對,后續(xù)有關(guān)具體技術(shù)和代碼的文章更是可能會有重大錯(cuò)誤甚至誤導(dǎo)。之所以還敢寫出來,放到這里,權(quán)當(dāng)借此平臺和同道中人進(jìn)行交流、切磋。文章假設(shè)您有初級的Python基礎(chǔ),這樣就可以把重心放到科學(xué)計(jì)算而不是純粹的語言上來;也假設(shè)您有一定的MATLAB基礎(chǔ),因?yàn)槲闹薪?jīng)常拿兩者來對比并給出兩者的各自實(shí)現(xiàn)。歡迎批評!(uabuntsu@gmail.com) 與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
????????MATLAB 是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境。使用 MATLAB,您可以較使用傳統(tǒng)的編程語言(如 C、C++ 和 Fortran)更快地解決技術(shù)計(jì)算問題。(官網(wǎng):http://www.mathworks.com/matlabcentral/linkexchange/links/1573-matlab-科學(xué)計(jì)算語言)
????????隨著MATLAB工具箱的不斷添加和完善,M語言也逐漸成為工程界的準(zhǔn)通用標(biāo)準(zhǔn)語言,官網(wǎng)稱:MATLAB - The Language Of Technical Computing。大學(xué)理工科專業(yè)一般都開設(shè)了或選修或必修的MATLAB相關(guān)課程。很多新出版的教材,計(jì)算機(jī)輔助教學(xué)的工具軟件開始選用MATLAB。MATLAB以其簡潔易學(xué)的語法、友好的界面和完善的文檔系統(tǒng)逐漸深入人心并將繼續(xù)擴(kuò)大它的控制領(lǐng)地。
????????然而,MATLAB也有著很大的局限性。首先,是價(jià)格。作為一款商業(yè)軟件,獲得正版授權(quán),價(jià)格不菲。就說最便宜的學(xué)生版,核心組件單個(gè)授權(quán)要花99刀,想使用額外工具箱,則是每個(gè)工具箱29刀。(http://www.mathworks.com/store/platformReleaseStuSubmit.do) 正如你能想到的,商業(yè)版本更貴。其次,是版權(quán)。mathworks論壇活躍著很多用戶,也有很多有價(jià)值的代碼,但是,版權(quán)歸mathworks公司,要想使用必須獲得它的授權(quán)。再次,是語言完善性。MATLAB進(jìn)行數(shù)學(xué)計(jì)算的表現(xiàn)無可置疑,但是實(shí)際的科學(xué)計(jì)算還有文件操作、界面設(shè)計(jì)等任務(wù)。MATLAB在這些領(lǐng)域功能較弱或者很麻煩。應(yīng)該可以說,MATLAB不是一種完善的語言。
????????窮則思變。這時(shí),我們發(fā)現(xiàn)了Python。MATLAB的以上不足,恰是Python的優(yōu)勢。
???????首先,Python完全免費(fèi)(http://python.org/),絕大多數(shù)科學(xué)計(jì)算相關(guān)擴(kuò)展庫也都是免費(fèi)的,大多也都是是開源的,所以金錢問題完全不用考慮。版權(quán)問題也基本不用考慮,眾多的實(shí)例程序可以讓你拿去就用。(有時(shí)候也需要考慮,因?yàn)橛行┦跈?quán),如GPL授權(quán),具有“傳染性”)。考慮控制版權(quán)更嚴(yán)格的諸如美國之類的國家,有著眾多的研究人員和大學(xué)生使用Python,并有很多網(wǎng)絡(luò)提供了交流平臺,在這個(gè)平臺可以獲得更多的交流學(xué)習(xí)機(jī)會。其次,Python是一門更易學(xué)更嚴(yán)謹(jǐn)?shù)拿嫦驅(qū)ο蟮某绦蛟O(shè)計(jì)語言。作為通用程序設(shè)計(jì)語言的Python,有更為嚴(yán)格清晰的語法,可以輕易完成界面、文件、封裝等高階需求。最后,不得不提的就是性能。MATLAB作為科學(xué)計(jì)算工具,經(jīng)過了近乎苛刻的優(yōu)化,Python呢?實(shí)話說,純Python的速度確實(shí)不怎么地,但是使用Python的科學(xué)計(jì)算擴(kuò)展庫numpy、scipy等之后,速度和MATLAB不相上下。(http://www.scipy.org/PerformancePython#head-a73fa06d3c4f3bda71b3526d30d51c492d8f80df)
????????以上理由似乎足以讓我們割愛MATLAB,選擇使用“Python+擴(kuò)展”來完成科學(xué)計(jì)算問題。然而,我想起班固的名言“愛而知其惡”,Python進(jìn)行科學(xué)計(jì)算是不是完美?又有哪些劣勢呢?Google了一陣子,發(fā)現(xiàn)大致是這樣:第一,因?yàn)槌两陂_源的環(huán)境下,想私藏代碼似乎不是那么容易了,甚至不好意思了。第二,文檔系統(tǒng)不是很完善,中文的更是少之又少,這就要求一定的英語文檔閱讀功底。不過MATLAB至今也沒有提供過中文的文檔。第三,MATLAB中的有些生僻的專用工具箱沒有Python環(huán)境下的對應(yīng)模塊功能實(shí)現(xiàn)。第四,貌似沒有第四了。
????????以上對比不敢說寫的就對,后續(xù)有關(guān)具體技術(shù)和代碼的文章更是可能會有重大錯(cuò)誤甚至誤導(dǎo)。之所以還敢寫出來,放到這里,權(quán)當(dāng)借此平臺和同道中人進(jìn)行交流、切磋。文章假設(shè)您有初級的Python基礎(chǔ),這樣就可以把重心放到科學(xué)計(jì)算而不是純粹的語言上來;也假設(shè)您有一定的MATLAB基礎(chǔ),因?yàn)槲闹薪?jīng)常拿兩者來對比并給出兩者的各自實(shí)現(xiàn)。歡迎批評!(uabuntsu@gmail.com) 與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的科学计算:Python VS. MATLAB (1)----给我一个理由先的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 科学计算:Python VS. MATL
- 下一篇: 一行代码添加P值的可视化技巧分享~~