Python调用matlab及其配置方法
Flighting
Python和matlab作为工学数据处理的热门工具,为了重复造轮子,提高效率,学会用Python直接调用matlab函数是一项必不可少的技能。下面就简单介绍下:1. python调用matlab方法,2. python配置matlab的方法,3. 其它介绍
1 python 调用 matlab方法
下面就以简单实例来展示
1.1 matlab函数
multiplication_matlab.m文件是自己用matlab编写的乘法函数如下:
function a = multiplication_matlab(b,c)
a = b * c
end
1.2 python函数
python 调用该乘法.m函数如下,命名为1.py:
import matlab.engine # import matlab引擎
# 启动一个新的MATLAB进程,并返回Python的一个变量,它是一个MatlabEngine对象,用于与MATLAB过程进行通信。
eng = matlab.engine.start_matlab() # 可以调用matlab的内置函数。
d = eng.multiplication_matlab(3,2) # 可以调用matlab写的脚本函数
print('d', d, type(d))
1.3 运行结果
运行结果见下
python 调用 matlab输出结果
由结果可知,python成功调用了matlab的.m文件,并返回正确结果。
调用方法很简单,就不赘述了,见python文件1.py中代码即可。当然不可能直接让你调用matlab的,需要做一些简单的配置,见下一章节描述。
2 python 配置 matlab的方法
2.1 确认配置版本
python版本和matlab版本是有一一对应关系的,否则无法建立联系,对应关系见下。https://www.mathworks.com/content/dam/mathworks/mathworks-dot-com/support/sysreq/files/python-compatibility.pdf
python 与 matlab 版本对应关系
由图可知Python3.8解释器需要 matlab2020b以上版本,Python3.7解释器需要 matlab2019a以上版本等等依此类推。
根据这张图确定你的python解释器去安装对应的matlab版本。
2.2 进行配置
matlab的安装方法就不累赘了,这里已默认你安装好了对应版本的matlab。
① 确定matlab安装路径
确认好matlab的安装路径,如若不清楚,可以打开matlab命令窗口输入matlabroot,如图
matlabroot 返回安装路径
笔者的安装路径为C:\install\matlab2021。
② matlab里面找到python engine
大部分python库都是通过pip来安装的,而matlab自R2014b以后引入了MATLAB engine这一功能, 提供了对Python的支持,matlab.engine的安装不是通过pip安装的。
在上述步骤①中的matlab的安装路径里找到: matlab安装路径\extern\engines\python,笔者是C:\install\matlab2021\extern\engines\python,进入路径见下图,发现里面有个python,点开python里面有个setup.py。
matlab安装路径\extern\engines 文件夹
matlab安装路径\extern\engines\python 文件夹
③ cmd方法配置连接
在上述①和②步骤找到的python engine路径,即matlab安装路径\extern\engines\python,笔者的是C:\install\matlab2021\extern\engines\python,在cmd中确定该位置,方法如下:
window界面左下角输入cmd,打开命令提示符
打开命令提示符
点击命令提示符后,进去找到python engine的位置,见下图,键入语句
cd matlab安装路径 # 笔者是cd C:\install\matlab2021
键入之后cmd路径已经改为matlab的路径
找到matlab安装路径
在上面的基础上再次键入matlab engine路径,输入语句,见下图
cd "extern\engines\python"
找到matlab engine路径
enter确认后,我们发现cmd已经进入了python engine 路径,见下图红色方框,在后面输入语句,见下图椭圆方框,enter 确认。
python setup.py install
cmd进行配置
enter确认后发现cmd界面运行一堆语句,咱不用管,见下运行过程
cmd配置过程
拖到运行的最后部分,见下图标红框部分
............R2021a-py3.7.egg-info,这告诉我们python3.7 解释器可以调用matlab了,注意一定是3.7解释器哦。
查看配置版本
运行完之后我们发现之前的python engine路径多了些文件,见下图,相比之前多了一个build文件夹
cmd配置完后 python engine路径多了其它文件
至此python配置matlab就已经配置完成了,就可以用上述第1章介绍的python 调用 matlab方法 进行调用matlab函数了。
2.3 配置总结
实际以上总结就是在cmd中输入以下两句,分别按enter确认。
cd "matlab路径\extern\engines\python" # 笔者的是 cd "C:\install\matlab2021\extern\engines\python"
python setup.py install
以上是在window环境中输入的语句,对于Mac 或者Linux系统中输入如下语句,并分别按enter确认。
cd "matlab路径/extern/engines/python" # 笔者的是 cd "C:/install/matlab2021/extern/engines/python"
python setup.py install
3 其它介绍
3.1 ImportError: No module named matlab.engine
如果import matlab.engine时出现了ImportError: No module named matlab.engine,见下图
No module named matlab.engine
参考
简言之,在cmd中切换到python engine路径下,即 matlab安装路径\extern\engines\python,笔者是C:\install\matlab2021\extern\engines\python,同样用上述2.2中的方法进入python engine路径,依次输入以下语句,并以此点击enter确认
笔者python engine路径(matlab安装路径\extern\engines\python)
python setup.py build --build-base="builddir" install
python setup.py install --prefix="installdir"
python setup.py install --prefix="installdir"
python setup.py install --user
执行完后会在python engine路径中生成如下文件夹
执行完后生成新的文件夹
3.2 python解释器选择
笔者配置完后发现调用matlab只能用python3.7的解释器,即运行.py代码如果调用matlab 的话只能用3.7解释器,那么怎么选择python代码的解释器呢。见下图,笔者用pycharm 选择。
File->settings
点击上图右上角图标,选择Show All
选择3.7的解释器就行
这样就可以选定对应解释器版本。
具体的虚拟环境创建可以参见Pycharm中创建虚拟环境 - 知乎 (zhihu.com)。
编辑于 2023-05-18 · 著作权归作者所有
赞同 47
评论