標籤:

Python和MATLAB交互的基本操作

MATLAB和Python可以在一定程度上互相調用,起到互補的作用。本文就來拋磚引玉,總結一些最基本的操作步驟。

在MATLAB調用Python

MATLAB里可以很方便的調用Python的模塊。筆者在進行車震研究的時候,一方面要在MATLAB里驗證演算法,同時其它的組員用Python來把程序封裝好用到車上去震。如果能夠重複使用一些核心的演算法,那就可以在很大程度上提高開發效率。為此,我嘗試把一些比較常用的代碼用Python來寫,然後在MATLAB裡面調用。

為此,我通過如下步驟設置了自己的環境( 我使用的Python版本是2.7. MATLAB我用的是R2016b,操作系統是Windows7, 64位)。

首先,我在自己的機器上安裝Python, 注意我需要安裝的是64位的,不然我的64位的MATLAB認不出來。安裝包可以在這裡下載:python.org/downloads/wi

然後,我在Windows的命令行里使用下面的命令安裝了一些進行科學計算的包,

C:Python27> pip install numpyC:Python27> pip install scipyC:Python27> pip install matlibplot

都弄完之後, 打開MATLAB, 輸入pyversion, 結果如下

>> pyversion version: "2.7" executable: "C:Python27python.EXE" library: "C:windowssystem32python27.dll" home: "C:Python27" isloaded: 0

這說明MATLAB成功找到了Python解釋器。

現在,我在Python里寫了一個簡單的類:

class myClass: version = 1.0 def __init__(self,a,b): self.a, self.b = a,b def getsum(self): return self.a+self.b

然後保存為文件 myPyClass.py

最後,打開MATLAB, 調用這個Python模塊創建一個類,然後調用getsum方法,結果如下:

>> pyObj = py.myPyClass.myClass(1,2);>> pyObj.getsumans = 3

就是這麼簡單。

在Python里調用MATLAB引擎

MATLAB提供了用於其它各種語言調用的API介面,也可以在Python里進行調用。

首先,需要安裝MATLAB引擎。為此,我用ADMINISTRATOR模式打開Windows的命令行,找到如下的路徑

C:Program FilesMATLABR2016bexternenginespython>

然後輸入

python setup.py install

安裝完成後,我打開MATLAB寫了一個簡單的求最小二乘的函數。

function x=myLS(A,B) x = AB;end

隨後,打開 Python, 運行如下命令

import matlab.engineeng = matlab.engine.start_matlab()y = eng.myLS(matlab.double([[1.],[2.]]),matlab.double([[3.],[4.]]))print y

計算的結果如下:

2.1999999999999997

更多詳情請參考

Call Python from MATLAB

推薦閱讀:

MATLAB圖像處理中的小波變換
plot 中哪些顏色線形搭配會讓圖好看些?
已知橢圓5個點,用數學軟體求橢圓周長?

TAG:MATLAB |