2010-03-24 122 views
3

我有一些Python代碼(部分功能),我想在更大的MATLAB程序來實現這個!我怎麼可以這樣做?任何幫助將是非常有用....在matlab中運行python代碼?

+3

hmm似乎是一個複製http://stackoverflow.com/questions/1707780/call-python-function-from-matlab –

+2

你可能會考慮將你的Python函數轉換爲Matlab,並避免語言間的問題。做一些粗略的成本收益分析並做出決定。 –

回答

1

可以使用system命令執行外部的Python代碼。要更「本地」鏈接它,我認爲你必須通過C語言。也就是說,將你的Python代碼嵌入到C代碼中,然後用DLL將它公開給Matlab。

P.S.在Windows上,您還可以通過COM公開Python代碼到Matlab

+0

抱歉,什麼是COM? – sasha

+0

@sasha:組件對象模型:http://en.wikipedia.org/wiki/Component_Object_Model –

+0

@sasha:COM是基礎知識。 – Mikhail

-2

有一個庫叫做PyMat。它允許從matlab中調用python代碼。

+0

我沒有使用它,所以我不知道它的侷限性。 – uthark

+1

請注意,它最後更新於1999年 –

+1

-1 ... pymat是用於從python – robince

1

我知道的唯一的東西是pythoncall,但它有點過時了,我不確定它會在最近版本的matlab中可靠地工作。

http://www.elisanet.fi/ptvirtan/software/pythoncall/index.html

否則,你將不得不通過shell(有點我知道痛)用MATLAB進行交互。如果您正在處理大量數據,並且位於操作系統上,您可以輕鬆創建ramdisk,將matlab文件保存到ramdisk,並通過文件名將數據從matlab轉換爲python,而不會造成過多的性能損失。

4

您應該避免這種情況。使用一個或另一個 - 最好是Python。 但是,如果你要同時使用,你可以試試這個:

http://github.com/kw/pymex(向下滾動的自述)

免責聲明:我寫了這一點。編譯和工作可能有點困難,特別是當你在Windows上時(在下載區域有一個預編譯的win32二進制文件可能工作)。我沒有使用Matlab上很多不同的機器,所以我還沒有弄明白。

+0

調用matlab感謝您發佈此代碼。我正在嘗試從Matlab調用cython函數,並且不知道如何啓動。 – Paul