从 Python 调用 MATLAB

最近在折腾MATLAB和python联合编程,初衷是希望用python训练深度学习算法,用MATLAB里面的一些模型。虽然MATLAB里面已经有了一些机器学习和深度学习相关的工具箱了,但是目前训练深度学习算法用tensorflow和pytorch这样的开源软件才是主流。参考:Python和matlab混编时,遇到问题:ImportError: No module named matlab.engine"的解决方法

先把这个过程记录下来,与大家一起交流学习。

第一步:安装用于 Python 的 MATLAB 引擎 API
这部分在mathworks官方文档都有,我使用的是2020a版本,支持py版本 2.7、3.6 和 3.7。安装可以参考网上其他一些文章,大概就是在matlab软件安装路径下,找到文件目录“./extern/engines/python”,win+r打开cmd,在当前路径下依次执行如下命令行:

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

这样就不会出现常见的 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

第二步:调用

import matlab.engine
eng = matlab.engine.start_matlab()  #运行
eng.quit()  #停止

你可能感兴趣的:(从 Python 调用 MATLAB)