0

我需要分析与不同参数集相关的几组数据(每组数据的一组参数)。我目前正在努力寻找一种存储这些参数的好方法,以便在分析特定数据集时可以随时使用它们。

我尝试的第一件事是将它们保存在parameters.m数据目录中的脚本文件中,并使用run([path_to_data,'/parameters.m']). 然而,我理解这不是好的编码实践,而且它也给我带来了范围问题(我认为),因为变化parameters.m并不总是反映在我的工作区变量中。(工作区变量仅在Clear all重新运行代码后更改。)

一个干净的解决方案是在每个数据目录中定义一个函数parameters(),但是我需要再次将目录添加到搜索路径中。另外我担心如果我不给函数提供唯一的名称,我可能会遇到命名空间冲突。另一方面,使用唯一名称不是很实用......

有更好的解决方案吗?

4

1 回答 1

0

所以定义一个structcell array调用parameters并将它存储在它所属的数据目录中。我不知道你的参数是什么样的,但我们的可能看起来像这样:

parameters.relative_tolerance = 10e-6
parameters.absolute_tolerance = 10e-6
parameters.solver_type = 3
.
.
.

我可以写

save('parameter_file', 'parameters')

甚至

save('parameter_file', '-struct', 'parameters', *fieldnames*)

在线帮助揭示了如何使用-struct将结构中的字段存储为对您有用的单个变量。

保存参数后,您可以使用load命令加载它们。

总结一下:在它所引用的实验的数据目录中创建一个名为parameters的变量(很可能是一个结构或单元数组)。save然后,您将拥有所有常用的 Matlab 工具,用于读取、写入和调查参数以及数据。我认为不需要比这更复杂的解决方案(尽管您的参数本身可能很复杂)。

于 2012-08-14T10:15:13.177 回答