Matlab 编译项目的用户定义配置
Posted
技术标签:
【中文标题】Matlab 编译项目的用户定义配置【英文标题】:User-defined configurations for Matlab Compiled Projects 【发布时间】:2017-07-18 16:52:07 【问题描述】:我正在使用 Matlab 编译器将 Matlab 代码编译成 dll,我可以在其他地方运行。但是,我的 dll 和函数有很多配置变量,而且太多,它们都不能作为函数的输入。
目前,用户指定 .mat 文件的文件路径,该文件在所有配置设置的编译代码中加载。执行 .m 文件以生成 .mat 文件。但是,当配置设置更改时,用户必须进入 .m 文件更改必要的设置并重新执行它以生成更新的 .mat 文件。
显然,这个过程很麻烦,很容易忘记重新执行 .m 以更新配置。我考虑过但似乎有问题的几件事:
如果 .mat 文件可以用文本编辑器读取/编辑,那就太好了,但据我所知,这是不可能的
另一种方法是 XML,但我的印象是 Matlab 没有很好的 XML 支持
运行 .m 文件以填充已编译 dll 中的工作空间,但这是不可能的
所以我的问题是,是否有其他人之前遇到过这个问题,或者是否可以想到比我目前的方法更精简的任何其他替代方法。
感谢阅读!
【问题讨论】:
【参考方案1】:因此您可以使用 XML - MATLAB 确实通过 xmlread
和 xmlwrite
支持 XML。这些函数返回/接受一个您需要自己操作的 DOM 节点,这可能有点繁琐。如果用户想要更改配置,XML 也不是那么有趣,他们必须编辑或阅读。
如果您没有使用 MATLAB Compiler,您也可以直接使用 .m
文件来存储配置信息。但是,如果您正在编译,那将无法正常工作,因为 .m
文件将被加密并且不再可编辑。
我通常将YAML 用于配置文件。 YAML 是一种基于文本的格式,因此用户将能够在文本编辑器中手动编辑它们,并且您将能够对文件进行版本控制;但它比 XML 更易于阅读。没有尖括号,它的布局更加简单,您可以包含 cmets 来分隔和解释配置的各个部分。
MATLAB 本身并不支持 YAML,但您可以下载一些运行良好、易于集成且免费许可的第三方软件(例如 here 或 here)。我自己也编写了代码,如果您需要,我很乐意以某种方式分享。
【讨论】:
以上是关于Matlab 编译项目的用户定义配置的主要内容,如果未能解决你的问题,请参考以下文章
编译的 MATLAB 错误:“struct”类型的输入参数的未定义函数“ft_datatype_sens”
Matlab:无法使用 openmp 编译 mex(未定义的参考)
是否可以在您的 Matlab 编译器运行时安装中添加自定义工具箱?