simulink与python联合仿真(一)安装MATLAB引擎

参考文章:

安装用于 Python 的 MATLAB Engine API - MATLAB & Simulink

一、前置检查:Python 与 MATLAB 版本兼容性

1.1 确认 Python 版本(核心要求)

  • 必须使用64 位 Python,可通过以下代码验证:
复制代码
  import sys 
  print(sys.maxsize > 2**32)
  • 需匹配 MATLAB 官方兼容的 Python 版本(参考 MATLAB 官网版本兼容表)。

Python 版本确认方法-CSDN博客

MATLAB 产品(按版本)兼容的 Python 版本 - MATLAB & Simulink

二、安装引擎 MATLAB Engine API for Python

2.1 安装指令适配规则(核心分界)

MATLAB 版本 配置文件支持 推荐安装指令 适用场景说明
R2023a 及更新 含 pyproject.toml/setup.cfg python -m pip install .(官网推荐) 标准 pip 包管理,支持卸载 / 升级、虚拟环境安装
R2022b 及更早 仅含 setup.py 修改版本号后可支持pip install . 无现代 pip 配置,需适配版本号格式

补充说明:

  • 多 Python 版本 / 虚拟环境场景:需指定具体 Python 路径,如D:\appc\Anaconda3\envs\pytorch1\python.exe -m pip install .
  • 卸载 / 升级:R2023a + 可执行pip uninstall matlabengine;R2022b 及更早需手动删除安装目录。

2.2 关键适配:修改 setup.py 版本号(R2022b 及更早必做)

2.2.1 版本号对应表(纯数字格式,适配 Python packaging 库)
MATLAB 版本 对应纯数字版本号 备注
R2025a 25.1.0 原生支持pip install .
R2024b 24.2.0 原生支持pip install .
R2024a 24.1.0 原生支持pip install .
R2023b 23.2.0 原生支持pip install .(补充 pyproject.toml)
R2023a 23.1.0 首个支持pip install .的版本(核心分界点)
R2022b 22.2.0 需改版本号才能用pip install .
R2022a 22.1.0 同上
R2021b 21.2.0 同上
R2021a 9.10.0 适配关键(非 21.1.0,需注意!)
R2020b 9.9.0 同上
R2020a 9.8.0 同上
R2019b 9.7.0 同上
R2019a 9.6.0 同上
R2018b 9.5.0 同上
R2018a 9.4.0 同上
2.2.2 修改步骤(以 R2021a 为例)
  1. 定位文件路径:D:\appd\Matlab\MATLABR2021a\extern\engines\python\setup.py;
  2. 打开文件,找到版本号定义行:VERSION = 'R2021a';
  3. 替换为纯数字版本号:VERSION = '9.10.0';
  4. 保存文件(若提示只读,右键文件→属性→取消 "只读")。
2.2.3 修改原因

MATLAB 版本命名(如 R2021a)含字母,而 Python packaging库强制要求版本号为「X.Y.Z」纯数字格式,高版本setuptools无法兼容非标准格式;修改版本号可直接绕过格式校验,比降级setuptools更稳定(避免环境依赖冲突)。

2.3 具体安装方法

先确定Python 可执行文件路径

复制代码
conda info --envs

envs 的 Python 可执行文件路径 = 环境路径 + \python.exe,即:D:\appc\Anaconda3\envs\pytorch1\python.exe。

下面开始安装引擎

方法 1:从 MATLAB 内安装(Windows)

复制代码
cd (fullfile(matlabroot,"extern","engines","python"))
% R2022b及更早(老版本,需先改版本号)
system("D:\appc\Anaconda3\envs\pytorch1\python.exe -m pip install .")
方法 2:从操作系统终端安装
  1. 确认 MATLAB 安装路径:在 MATLAB 命令行执行matlabroot,输出如C:\Program Files\MATLAB\R2021a(Windows)

    cd "matlabroot\extern\engines\python"
    D:\appc\Anaconda3\envs\pytorch1\python.exe -m pip install .

方法 3:从 Python Package Index 安装

直接通过 pip 安装(需匹配 MATLAB 版本),安装后引擎会编译并安装到默认位置。

使用上述三种安装方法任意一种,则 MATLAB 引擎将编译并安装到默认位置

方法 4:非默认文件夹安装
  • 用setup.py安装:python setup.py install --prefix=自定义路径;
  • 用 Python Package Index 安装:指定--target参数自定义路径。
方法 5:虚拟环境安装(推荐)
复制代码
# 激活虚拟环境
conda activate pytorch1
# 切换到Engine目录后执行
python -m pip install .

2.4 安装成功验证

Python 端验证

复制代码
import matlab.engine
eng = matlab.engine.start_matlab()
eng.version()  # 输出MATLAB版本号,如'9.15.0'(R2023b)
eng.quit()
MATLAB 端验证
复制代码
% 1. 关联pytorch1环境的Python(重启MATLAB后第一时间执行)
pyversion("D:\appc\Anaconda3\envs\pytorch1\python.exe");

% 2. 测试Python调用
try
    py.importlib.import_module('matlab.engine');
    disp('✅ MATLAB中可正常加载Python的matlab.engine模块');
catch ME
    error('❌ 加载失败:%s', ME.message);
end

三、启动 MATLAB 引擎(Python 端)

复制代码
import matlab.engine
# 启动引擎(核心操作)
eng = matlab.engine.start_matlab()

# 后续可调用MATLAB/Simulink功能,示例:
# eng.cd("Simulink模型路径", nargout=0)  # 切换到模型目录
# eng.sim("模型名", nargout=0)  # 运行Simulink仿真

# 用完后关闭引擎
eng.quit()
相关推荐
甜到心里的蛋糕1 分钟前
AI 生成 MV 音频异响排查:频谱定位、片段替换与 Nginx 缓存
人工智能·python·nginx·ffmpeg·音视频·音频处理
码小猿的CPP工坊5 分钟前
C++跨平台开发之基于wxWidgets开发GUI程序简介-002
开发语言·c++
波力海苔夹心脆6757 分钟前
C# 固高 GTS 运动控制卡入门:伺服上下电、Jog 点动与二维插补(WinForms 实战)
服务器·开发语言·c#·运动控制·伺服电机·winforms·固高
2601_9679801111 分钟前
python中的静态方法和类方法
python·静态方法·类方法·实例化·方法调用
海绵宝宝转agent14 分钟前
LeetCode100个人题解+java面经总结
java·开发语言·笔记·学习·算法
chenbingjie_c16 分钟前
C++ 继承全解析(从三种继承方式到菱形继承与内存布局)
开发语言·c++
智购科技无人售货机厂家18 分钟前
自动售货机物联网平台为什么会出现在线状态不一致?~YH
python·单片机·嵌入式硬件·django·pygame
飞Link8 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
学逆向的9 小时前
C 堆区内存管理
c语言·开发语言·网络安全
huoyueyi9 小时前
《融天AI-APP从0到1开发实录》
开发语言·lua