有哪些关于这些文件格式的信息可用?有哪些解析这些文件的工具可用?
有哪些关于这些文件格式的信息可用?有哪些解析这些文件的工具可用?
MDL格式似乎是MathWorks内部开发的。有一个Python的MDL解析器,但功能有限, 而且网站已于2014年5月关闭。
SLX文件是一个包含一系列XML文件的压缩文件,其中大部分模型规格存储在simulink/blockdiagram.xml
中。@am304从MathWorks网站中指出了这些信息:
Java Simulink库的新版本具备完整的SLX格式支持。虽然文档没有明确说明,但源代码包含了解析的全部细节。
正如rob所回答的那样,Java Simulink库支持Simulink的MDL文件格式,并且还可以解析Stateflow内容。该库是开源的,但唯一的文档就是源代码。
我们目前(截至2014年9月)正在开发SLX支持,预计在接下来的1到2个月内发布。如果您需要在此之前获得代码,请随时与我联系。
当使用该库时,可能会出现代码无法兼容新的Simulink版本的情况,因为文件格式没有文档记录,我们不得不进行反向工程以获取大部分信息。但是,我们目前正在积极更新该库以解决问题,而有了源代码,即使我们不在身边,你也有可能修复它。
附:我本人是上述库的开发人员。
h = load_system(pathToFile); set_param(h,'Metadata',properties)
- Oleksiy Kovalchyk这些文件格式有哪些信息可用?
MathWorks在R2007b中为MDL文件格式提供了一些文档。
SLX文件是zip文件容器,其内部结构基于OOXML的OPC格式。SLX文件包含一个或多个XML文件,其内部结构类似于MDL文件,但以XML格式表示。此外,二进制资源(如图形)可能存储在单独的JPG文件中,而不像在MDL文件中直接嵌入并进行文本编码。
SLX和MDL都会随着新特性的添加而变化,但是可以预期SLX不太稳定,因为MathWorks正在重构SLX的内部文件结构。例如,在R2014b中,MathWorks开始将传统的单块blockdiagram.xml的一部分拆分成单独的文件,如stateflow.xml和graphicalInterface.xml。如果以上方法都无法解决问题,一些商业工具可以直接解析MDL和SLX,而不依赖于MATLAB API。您可以考虑咨询一下某些商业可用Simulink工具中使用的解析器的许可证。
您还可以通过搜索Simulink解析器来寻找其他解决方案。