加载数据不同集的参数文件

时间:2012-08-14 10:01:03

标签: matlab

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

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

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

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

所以定义一个名为struct的{​​{1}}或cell 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。然后,您可以使用所有常用的Matlab工具来读取,编写和调查参数以及数据。我认为不需要比这更复杂的解决方案(尽管你的参数本身可能很复杂)。