可以在内置 lmfit 拟合模型中重命名自变量名称吗?
Possible to rename independent variable name in Built-in lmfit fitting models?
我正在使用 lmfit 进行小角度 X 射线散射图案拟合。为此,我使用模型 class 来包装我的函数并制作运行良好的复合模型。然而,碰巧我写的所有函数都以 'q'
作为自变量(学科惯例)。现在我想将其中一些 q 函数与一些内置模型结合起来。它会发生冲突,因为它们的 independent_variable 是 'x'
。我试图做类似 modelBGND = lmfit.models.ConstantModel(independent_vars=['q'])
的事情,但它给出了错误:
ValueError: Invalid independent variable name ('q') for function
constant
当然可以解决这个问题,要么在'q'
中再次重写内置函数,要么在'x'
中重写我以前编写的所有函数。我只是想知道是否有更直接的方法?
抱歉,我认为这不可能。
我认为您将不得不重写函数以使用 q
而不是 x
。也就是说,lmfit.Model
使用函数检查来确定函数参数的名称,大多数内置模型确实需要将第一个位置参数命名为 x
。
我正在使用 lmfit 进行小角度 X 射线散射图案拟合。为此,我使用模型 class 来包装我的函数并制作运行良好的复合模型。然而,碰巧我写的所有函数都以 'q'
作为自变量(学科惯例)。现在我想将其中一些 q 函数与一些内置模型结合起来。它会发生冲突,因为它们的 independent_variable 是 'x'
。我试图做类似 modelBGND = lmfit.models.ConstantModel(independent_vars=['q'])
的事情,但它给出了错误:
ValueError: Invalid independent variable name ('q') for function constant
当然可以解决这个问题,要么在'q'
中再次重写内置函数,要么在'x'
中重写我以前编写的所有函数。我只是想知道是否有更直接的方法?
抱歉,我认为这不可能。
我认为您将不得不重写函数以使用 q
而不是 x
。也就是说,lmfit.Model
使用函数检查来确定函数参数的名称,大多数内置模型确实需要将第一个位置参数命名为 x
。