我正在使用一个适合数据集的行并输出一些适合参数的脚本。运行 fitter 的命令如下所示:
fitter = Fitter(hdf2.root.OM01, plot=False)
.
我想循环这个命令,以便它输出文件的拟合参数'hdf2.01', 'hdf2.02', ... 'hdf2.50'
我怎样才能循环这段代码?
如果我理解正确,您有一个具有编号属性的对象(OM01
通过OM50
)。您可以使用循环生成这些属性名称,并使用getattr从对象中检索它们。
如果您的对象被称为root
,就像在您的评论中一样,您可以执行以下操作:
parameters = []
for i in range(1, 51):
parameter = getattr(root, 'OM%02d' % i)
parameters.append(parameter)
# now all of your parameters are in the parameter array
或者,如果你喜欢列表推导(谁不喜欢):
parameters = [getattr(root, 'OM%02d' % i) for i in range(1, 51)]
我想您需要将这些参数与 一起使用Fitter
,您可以执行以下操作:
results = []
for i in range(1, 51):
parameter = getattr(hdf2.root, 'OM%02d' % i)
result = Fitter(parameter, plot=False)
results.append(result)
编辑:如果您的文件只有名称“hdf2.root.OM01”、“hdf2.root.OM02”等,您可以这样做:
results = []
for i in range(1, 51):
filename = 'hdf2.root.OM%02d' % i
result = Fitter(filename, plot=False)
results.append(result)