python 中调用 matlab 时报错:
ModuleNotFoundError: No module named 'matlab.engine'; 'matlab' is not a package
现解决方法总结如下:
首先确定 matlab 支持的 python 版本,可从下述网址查看:https://www.mathworks.com/content/dam/mathworks/mathworks-dot-com/support/sysreq/files/python-compatibility.pdfhttps://www.mathworks.com/content/dam/mathworks/mathworks-dot-com/support/sysreq/files/python-compatibility.pdf
以 MatlabR2021a 为例,仅支持 python 的 3.7 及 3.8 版本
配置方法步骤:
1.找到 matlab 安装目录
在 matlab 命令行输入如下代码:
matlabroot
2.找到 setup.py 文件所在路径
以我自己电脑为例:C:\Program Files\MATLAB\R2021a\extern\engines\python
3.配置 matlab
先进入我的 pytorch 环境(注意要以管理员身份运行 Anaconda Prompt 命令窗口),输入 activate pytorch 进入 pytorch 环境,然后使用 cd 指令进入 setup.py 文件所在位置,代码如下:
cd C:\Program Files\MATLAB\R2021a\extern\engines\python
进入如下界面:
然后依次执行如下命令:
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
执行后,生成下图所示文件夹:
测试代码:
import matlab.engine
from numpy import *
eng = matlab.engine.start_matlab()
A = matlab.double([[1,2],[5,6]])
print(type(A),A.size,A)
print(eng.eig(A))
生成结果:
大功告成,如此就可以在 python 中调用 matlab 了!!!
参考:
[1]从 Python 调用 MATLAB- MATLAB & Simulink- MathWorks 中国编写可用于 MATLAB 的 Python 程序https://ww2.mathworks.cn/help/matlab/matlab-engine-for-python.html?s_tid=CRUX_lftnav[2]一文实现:在python中调用matlab程序,保姆级安装windows环境下的matlab.engine教程_Dark universe的博客-CSDN博客_python实现matlab在开发一些大型的工程项目时,我们可能会遇到一个项目同时采用了matlab和python进行开发,这时候要整合两种语言:在python中调用matlab程序或函数。本文讲述了如何利用matlab.engine引擎实现python与matlab的联动,且如何安装matlab.engine。https://blog.csdn.net/qq_44949041/article/details/124055160