如何使用slxmlcomp实现Simulink模型与空模型的版本对比?
Simulink空模型与新增模型的简洁对比方案
问题背景
使用slxmlcomp.compare(ModelA_before, ModelA_after)提取Simulink模型差异树时,对比全新新增的模型与“空状态”时,若用删除内容后的模型作为基准,会将模型配置识别为修改而非新增,需要更准确的对比方式。
解决方案
1. 创建标准空Simulink模型作为基准
直接生成Simulink默认的初始空模型(而非手动清空内容的模型),以此作为对比基准:
% 创建并保存标准空模型 new_system('EmptyBaseModel', 'Model'); save_system('EmptyBaseModel'); close_system('EmptyBaseModel');
这种空模型保留Simulink最原始的默认配置,没有任何自定义修改,与新增模型对比时,所有内容都会被识别为新增操作。
2. 执行模型对比
用标准空模型与目标新增模型对比,差异树会准确标记所有内容为新增:
% 对比空基准模型与新增模型 Edits = slxmlcomp.compare('EmptyBaseModel.slx', 'YourNewModel.slx');
3. 无文件版临时对比(可选)
无需保存空模型到本地,直接在内存中创建临时空模型完成对比:
% 内存中创建临时空模型并对比 new_system('TempEmptyModel', 'Model'); Edits = slxmlcomp.compare('TempEmptyModel', 'YourNewModel.slx'); close_system('TempEmptyModel', 0); % 不保存直接关闭临时模型
内容的提问来源于stack exchange,提问作者Sohil
相关产品推荐
相关产品推荐

