我需要分析与不同参数集相关的几组数据(每组数据的一组参数)。我目前正在努力寻找一种存储这些参数的好方法,以便在分析特定数据集时可以随时使用这些参数。
我尝试的第一件事是将它们保存在数据目录中的脚本文件parameters.m
中,并使用run([path_to_data,'/parameters.m'])
加载它们。但是,我理解这不是一个好的编码实践,它也给了我一些范围问题(我认为),因为parameters.m
中的更改并不总是反映在我的工作空间变量中。 (工作区变量仅在Clear all
之后更改并重新运行代码。)
一个干净的解决方案是在每个数据目录中定义一个函数parameters()
,但是我需要再次将该目录添加到搜索路径中。此外,我担心如果我不给函数唯一的名称,我可能会遇到命名空间冲突。另一方面,使用唯一名称并不实用......
有更好的解决方案吗?
答案 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工具来读取,编写和调查参数以及数据。我认为不需要比这更复杂的解决方案(尽管你的参数本身可能很复杂)。