由於筆者需要在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...