2012-03-23 62 views
95

我有一堆來自我的MS論文的MATLAB代碼,我現在要將它轉換爲Python(使用numpy/scipy和matplotlib)並以開源方式分發。我知道MATLAB和Python科學庫之間的相似性,手動轉換它們不會超過兩週(假如我每天都在努力工作一段時間)。我想知道是否已有可用於轉換的工具。將MATLAB代碼轉換爲Python的工具

+7

另一個可能性是原樣釋放源代碼,並在八度(www.gnu.org/software/octave)測試,其具有99%的matlab competability。 – Oz123 2012-03-26 05:22:17

+1

@Denis:應該是一個答案 – endolith 2012-05-26 00:11:16

+1

@josliber:我們可以將此問題移至http://softwarerecs.stackexchange.com,以便它可以重新打開嗎? – 2016-08-07 19:54:28

回答

104

有對Matlab代碼轉換爲Python代碼(沒有測試過)幾種可供選擇的工具:

而且,對於那些有興趣的兩種語言和轉換之間的接口:

  • pymatlab:通過發送從Python的通信數據傳送到MATLAB工作區,使用腳本對它們進行操作並拉回結果數據
  • Python-Matlab wormholes:支持交互的兩個方向
  • Python-Matlab bridge:用Matlab從內部的Python,提供matlab_magic爲IPython中,從內部IPython的
  • PyMat執行正常的MATLAB代碼:控制MATLAB會話在Python
  • pymat2:看似廢棄PyMat的延續。
  • mlabwrapmlabwrap-purepy:讓Matlab的看起來像Python庫(基於PyMat)
  • oct2py:運行從內Python的
  • pymex GNU八度命令:嵌入Python解釋器在Matlab,也File Exchange
  • matpy:以各種方式訪問​​MATLAB:創建變量,訪問.mat文件,直接連接到MATLAB引擎(需要安裝MATLAB)。
  • MatPy:Python包的數值線性代數,並用Matlab的一樣的界面

順便說一句可能會有所幫助在這裏尋找其他的遷移提示策劃:

另一方面,雖然我不是fortran粉絲,但對於那些可能會覺得有用的人來說,有:

+2

有沒有人有評論這些工作最好或哪些情況下失敗? – Chogg 2014-07-25 12:32:16

+5

我還沒有測試過它們,但它似乎像smop有一個獨特的區別,即由原始開發人員在github上主動維護一個測試套件。 – 2014-09-03 12:21:15

0

我不知道任何自動化工具,但一般的指導,請訪問: http://www.scipy.org/NumPy_for_Matlab_Users

總的來說,我只想看看numpy的文檔,這是非常好的。一些方法名稱直接映射,雖然有差異。幾年前我跳了一次,從Matlab轉換到Numpy並不需要很長時間。

10

還有OMPC,「開源的Matlab到Python編譯器」,由@IoannisFilippidis在his answer中提到, - 雖然沒有使用它。

+4

我試過了,太多未定義的命令(從matlab複製) – 2013-06-03 22:03:25