python与simulink交互,最终也是和matlab交互,交互过程有两个关键点
本节先讲第一个关键点
python调用matlab的m文件,读取和增加matlab工作区的数据
1. conda激活虚拟环境
conda activate 虚拟环境
2. 查看python和matlab版本对应与否
我的虚拟环境python = 3.7,安装的matlab = R2019b
其他python和matlab版本对应详情请看Python版本与MATLAB产品兼容版本 - MATLAB & Simulink (mathworks.com)
3. cd到安装matlab的文件目录下
cd/d d:\matlabR2019b\extern\engines\python
4. 在matalb根目录中安装python包形式的引擎API,注意依次运行
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
5. 测试
m文件样例,注意m文件和python文件在同一目录下
a = 5; b = 7;
c = a + b;
d = c + sin(b);
e = 5 * d;
f = exp(-d);
python文件样例
import matlab.engine
# 在 python 中导入 matlab 引擎
eng = matlab.engine.start_matlab()
eng.simulink_test(nargout = 0)
# 通过 eng 运行 m 文件样例 "simulink_test.m", nargout = 0表示不返回输出
c = eng.eval('c')
# 用 matlab 的 eval 函数读取 m 文件的变量c
d = eng.eval('d')
e = eng.eval('e')
f = eng.eval('f')
print('c:%d, d:%f, e:%f, f:%f'%(c, d, e, f))
g = 11111
eng.workspace['g'] = g
# 在 matlab 工作区写入变量 g
print(eng.eval('g'))
eng.quit()
# 退出 matlab 引擎