如何通过MATLAB脚本获取.sldd对象的Simulink保存版本?
获取Simulink数据字典(.sldd)的保存版本
目前MATLAB没有提供像Simulink.MDLInfo那样直接支持.sldd文件的官方API,但可以通过以下两种可靠方式获取其保存版本:
方法1:解析.sldd的XML元数据
.sldd本质是压缩归档文件,内部包含记录版本信息的XML文件,具体步骤和可复用脚本如下:
- 将.sldd文件视为压缩包解压,读取其中的
Info.xml - 提取
<MatlabRelease>标签内的版本内容
MATLAB脚本示例:
function releaseName = getSLDDRelease(slddPath) tempDir = tempname; unzip(slddPath, tempDir); infoXmlPath = fullfile(tempDir, 'Info.xml'); xmlDoc = xmlread(infoXmlPath); releaseNodes = xmlDoc.getElementsByTagName('MatlabRelease'); if releaseNodes.getLength() > 0 releaseName = char(releaseNodes.item(0).getFirstChild().getNodeValue()); else releaseName = 'Unknown'; end rmdir(tempDir, 's'); end
方法2:访问数据字典对象的隐藏属性
加载.sldd后,可通过其隐藏的Info属性直接读取版本信息:
% 加载目标数据字典 ddObj = Simulink.data.dictionary.open('example.sldd'); % 获取保存版本 releaseName = ddObj.Info.MatlabRelease; % 关闭字典 close(ddObj); disp(releaseName);
注意:隐藏属性可能随MATLAB版本迭代发生变化,长期稳定性不如方法1。
内容的提问来源于stack exchange,提问作者Akhil Nandan
相关产品推荐
相关产品推荐

