Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab编译项目的用户定义配置_Matlab_Configuration_Matlab Compiler - Fatal编程技术网

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

Matlab编译项目的用户定义配置,matlab,configuration,matlab-compiler,Matlab,Configuration,Matlab Compiler,我正在使用Matlab编译器将Matlab代码编译成DLL,我可以在其他地方运行。但是,我的DLL和函数有很多配置变量,而且太多,无法作为函数的输入 当前,用户指定.mat文件的文件路径,该文件在所有配置设置的编译代码中加载。执行.m文件以生成.mat文件。但是,当配置设置更改时,用户必须进入.m文件更改必要的设置并重新执行它以生成更新的.mat文件 显然,这个过程很麻烦,很容易忘记重新执行.m以更新配置。我考虑过几件事,但似乎有问题: 如果可以使用文本编辑器读取/编辑.mat文件就太好了,但

我正在使用Matlab编译器将Matlab代码编译成DLL,我可以在其他地方运行。但是,我的DLL和函数有很多配置变量,而且太多,无法作为函数的输入

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

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

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

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

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

因此,我的问题是,是否有其他人以前遇到过这个问题,或者能够想到比我目前的方法更精简的任何其他替代方法


谢谢你的阅读

因此您可以使用XML—MATLAB确实通过
xmlread
xmlwrite
支持XML。这些函数返回/接受一个DOM节点,您需要自己操作它,这可能有点麻烦。如果用户想要更改配置,那么必须编辑或读取XML对他们来说也不是那么有趣

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

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


MATLAB本机不支持YAML,但您可以下载(例如或)一些第三方软件,这些软件工作良好,易于集成,并且可以免费获得许可。我自己也编写了代码,如果您需要的话,我很乐意与您分享。

因此您可以使用XML-MATLAB确实通过
xmlread
xmlwrite
支持XML。这些函数返回/接受一个DOM节点,您需要自己操作它,这可能有点麻烦。如果用户想要更改配置,那么必须编辑或读取XML对他们来说也不是那么有趣

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

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

MATLAB本机不支持YAML,但您可以下载(例如或)一些第三方软件,这些软件工作良好,易于集成,并且可以免费获得许可。我自己也编写了代码,如果您需要,我很乐意与您分享