加载数据不同集合的参数文件
问题描述:
我需要分析与不同参数集相关的几组数据(每组数据的一组单一参数)。我目前正在努力寻找一种存储这些参数的好方法,以便在分析特定数据集时可以随时获得这些参数。加载数据不同集合的参数文件
我尝试的第一件事是将它们保存在数据目录中的脚本文件parameters.m
中,并使用run([path_to_data,'/parameters.m'])
加载它们。不过,我明白这不是一种好的编码习惯,它也给我提出了一些范围问题(我认为),因为parameters.m
中的更改并不总是反映在我的工作区变量中。 (工作空间变量Clear all
之后才改变并重新运行代码。)
一个干净的解决方案是定义在每个数据目录的功能parameters()
,但话又说回来,我需要的目录添加到搜索路径。另外我担心如果我不给函数赋予唯一名称,我可能会遇到命名空间冲突。另一方面,使用独特的名称不太实际...
有没有更好的解决方案?
答
所以定义一个struct
或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
和save
的变量(很可能是一个结构或单元阵列),它在它所指向的实验的数据目录中。然后,您可以使用所有常用的Matlab工具读取,编写和调查参数以及数据。我不认为需要一个比这更复杂的解决方案(尽管你的参数本身可能会变得复杂)。
参数集和数据集之间的关系是1:1,1:M,M:N,M:1? – 2012-08-14 10:03:57
@HighPerformanceMark如果我正确地理解了它,它就是1:1,即对于每组数据,都有一组固定的参数。我分析了一些物理实验中的数据,这些数据是在几次运行中完成的,其中参数随着每次运行而改变。 – sebhofer 2012-08-14 10:09:31