天天看點

python調用matlab函數_從python調用MATLAB函數

我知道這是一個老問題,已經得到答複。但是我一直在尋找相同的東西(對于Mac),發現有很多選擇與matlab互動的方法和成熟度不同。這是我發現的:

pymat

使用matlab引擎(libeng)進行通信的Matlab底層接口(基本上是matlab随附的庫)。該子產品必須編譯并與libeng連結。

http://pymat.sourceforge.net

pymat2

膿墊發育的持續時間較短。似乎可以在Windows(包括64位),Linux和Mac(經過一些更改)上工作。

https://code.google.com/p/pymat2/

包裹

一個進階接口,它也是一個子產品,需要編譯和連結 libeng。它将Matlab函數公開給python,是以您可以做一些有趣的事情,例如

mlab.plot(x, y, 'o')

http://mlabwrap.sourceforge.net

瑪拉

mlabwrap的重新包裝工作。基本上,它取代了C ++代碼,對在“libeng”連結mlabwrap用蟒子產品(matlabpipe),其與通過管道MATLAB連通。這樣做的主要優點是不需要任何形式的編譯。

不幸的是,該軟體包目前存在一些錯誤,并且似乎根本無法在Mac上運作。我報告了其中一些,但最終放棄了。另外,如果您必須進入源代碼,請做好準備,以應對大量的騙局和大量醜陋的駭客;-)如果這變得更加成熟,則可能是最佳選擇之一。

https://github.com/ewiger/mlab

pymatlab

較新的軟體包(2010)也可以通過與Matlab進行互動libeng。與其他軟體包不同,此軟體包通過ctypes加載引擎庫,是以無需編譯。它不是沒有缺陷,但仍然可以維護,我發現的(特定于64bit Mac的)問題應該很容易解決。

http://pymatlab.sourceforge.net

python-matlab-bridge

還有一個仍在積極維護的更新程式包。通過某種套接字與Matlab通信。不幸的是,公開的功能有些限制。我不知道如何調用以結構為參數的函數。需要易于安裝的zmq,pyzmq和IPython。

http://arokem.github.io/python-matlab-bridge