Python呼叫Matlab方法以及測試程式

2021-09-14 03:06:21 字數 2061 閱讀 5276

由於筆者需要在python程式中呼叫matlab,故記錄下呼叫方法以及測試。

系統環境:win10 + python2.7 + matlab r2016a

matlab在安裝的過程中已經準備好了相關文件。

第一步要做的就是確定自己電腦matlab的安裝目錄,找到以下路徑

cd ...matlab\r2016a\extern\engines\python

筆者安裝路徑為:c:\program files\matlab\r2016a\extern\engines\python

之後以管理員方式啟動command window(重要!!),在裡面定位到以上路徑,輸入python setup.py install,即可開始執行安裝。

python setup.py install

【注意】筆者電腦剛開始只用了python3.6,執行完提示只支援python2.7,3.3和3.4版本,因此又重新建立了乙個python27的環境。

後來另乙個問題又出現了,筆者在使用powershell來執行的時候,python27環境一直無法啟用

後來發現需要先以管理員身份啟動powershell,在其中輸入:

set-executionpolicy remotesigned

之後提示如下:

ps c:\windows\system32> set-executionpolicy remotesigned

執行策略更改

執行策略可幫助你防止執行不信任的指令碼。更改執行策略可能會產生安全風險,如 中的 about_execution_policies幫助主題所述。是否要更改執行策略?

[y] 是(y) [a] 全是(a) [n] 否(n) [l] 全否(l) [s] 暫停(s) [?] 幫助(預設值為「n」):y

輸入y,然後回車

至此結束,重新開乙個powershell就可以在其中正常使用activate python27來啟用虛擬環境了,發現啟用成功

之後再執行python setup.py install

在python下import matlab發現匯入成功。

在matlab中新建乙個test.m檔案,然後命名乙個test函式,來計算y=3x+4

在同一目錄下,新建乙個matlabtest.py檔案,呼叫test.m檔案中的test函式

import matlab

import matlab.engine

engine = matlab.engine.start_matlab(

)# start matlab process

y = engine.test(3)

#求解x=3時,y=a*x+b的值

print

(y)

測試效果如下:

Python呼叫MATLAB指令碼

可以通過python的介面呼叫多種語言,這非常適合於同時使用多種工具 多個平台的深度學習任務。python呼叫matlab的指令碼或函式,可以參考matlab官方說明文件get started with matlab engine api for python。簡言之,首先在matlab中安裝pyt...

matlab呼叫python程式

執行命令 pyversion filepath 若已關聯,則不需要執行此命令,其中 filepath 為 python 程式所用的直譯器的絕對路徑,如 d anaconda3 python.exe。詳見pyversion官方文件 例如呼叫某python函式 data2mat.getdata cd p...

Python呼叫MATLAB函式

遇到求解西爾維斯特方程時不會,然後查資料也看不懂,結果發現matlab有直接的函式可以呼叫,無奈就只能用python呼叫matlab函式。首先要安裝matlab這個包,可以使用matlab裡帶的setup.py這個指令碼。cd matlabroot extern engines python pyt...