最近在折騰MATLAB和python聯(lián)合編程,初衷是希望用python訓(xùn)練深度學(xué)習(xí)算法,用MATLAB里面的一些模型。雖然MATLAB里面已經(jīng)有了一些機(jī)器學(xué)習(xí)和深度學(xué)習(xí)相關(guān)的工具箱了,但是目前訓(xùn)練深度學(xué)習(xí)算法用tensorflow和pytorch這樣的開源軟件才是主流。參考:Python和matlab混編時,遇到問題:ImportError: No module named matlab.engine"的解決方法
先把這個過程記錄下來,與大家一起交流學(xué)習(xí)。
第一步:安裝用于 Python 的 MATLAB 引擎 API
這部分在mathworks官方文檔都有,我使用的是2020a版本,支持py版本 2.7、3.6 和 3.7。安裝可以參考網(wǎng)上其他一些文章,大概就是在matlab軟件安裝路徑下,找到文件目錄“./extern/engines/python”,win+r打開cmd,在當(dāng)前路徑下依次執(zhí)行如下命令行:
python setup.py build --build-base="builddir" install
python setup.py install --prefix="installdir"
python setup.py build --build-base="builddir" install --prefix="installdir"
python setup.py install --user
這樣就不會出現(xiàn)常見的 ImportError: No module named matlab.engine 問題了,最后使用下面的代碼驗證是否安裝成功。
import matlab.engine
from numpy import *
if __name__ == '__main__':
eng = matlab.engine.start_matlab('MATLAB_R2016b')
A = matlab.double([[1,2],[5,6]])
print(type(A),A.size,A)
print(eng.eig(A))
eng.quit()
pass
第二步:調(diào)用
import matlab.engine
eng = matlab.engine.start_matlab() #運(yùn)行
eng.quit() #停止