用户定义的Matlab编译项目配置

时间:2017-07-18 16:52:08

标签: matlab configuration matlab-compiler

我正在使用Matlab编译器将matlab代码编译成dll,我可以在其他地方运行。但是,我的dll和函数有很多配置变量,而且它们都是函数的输入。

目前,用户指定.mat文件的文件路径,该文件路径在所有配置设置的已编译代码中加载。执行.m文件以生成.mat文件。但是,当配置设置更改时,用户必须进入.m文件更改必要的设置并重新执行它以生成更新的.mat文件。

显然,这个过程很麻烦,很容易忘记重新执行.m以便更新配置。我考虑过几件事,但似乎有问题:

  • 如果可以使用文本编辑器读取/编辑.mat文件,那就太好了,但据我所知,这是不可能的

  • 另一种方法是XML,但我认为Matlab没有很好的XML支持

  • 运行.m文件以填充已编译dll中的工作空间但这是不可能的

所以我的问题是,如果其他人之前遇到过这个问题,或者可以想到任何其他替代方法比我目前的方法更精简。

感谢阅读!

1 个答案:

答案 0 :(得分:0)

所以你可以使用XML - MATLAB确实通过xmlreadxmlwrite支持XML。这些函数返回/接受一个你需要自己操作的DOM节点,这可能有点繁琐。如果用户想要更改配置,那么对于用户来说,编辑或阅读也不是那么有趣。

如果您没有使用MATLAB编译器,您也可以直接使用.m文件来存储配置信息。但是,如果您正在编译因为.m文件将被加密且不再可编辑而无法正常工作。

我通常使用YAML来配置文件。 YAML是一种基于文本的格式,因此用户可以在文本编辑器中手动编辑它们,并且您可以对文件进行版本控制;但它比XML更具人性化。没有尖括号,它的布局更加简单,您可以包含注释来分隔和解释配置的各个部分。

MATLAB本身不支持YAML,但是您可以下载的第三方内容(例如herehere)运行良好,易于集成,并且可以免费获得许可。我自己也编写了代码,如果你需要,我会很乐意分享。