Mathematica:处理拟合参数

时间:2013-03-18 16:26:19

标签: design-patterns wolfram-mathematica rule data-fitting

我想访问NonlinearModelFit的fit-parameters。这是代码

model = a*Cos[b*t + c];
fit = NonlinearModelFit[data, model, {a, b, c}, t, Method -> NMinimize]

当我使用命令时:

fit["BestFitParameters"]

以下列格式返回值:

{a -> 1, b -> 2, c -> -3}

现在我想将a的值存储在变量x

x=fit["BestFitParameters"][[1]]

但这给出了

x= a -> 1

不,我想知道如何解决“ - > - 运营商”以获取

x=1

提前致谢!

3 个答案:

答案 0 :(得分:3)

好吧,你可以写

x = a/.{a -> 1, b -> 2, c -> -3}

a的值分配给x

我不完全确定你应该这样做,你可以简单地将规则列表存储在变量中,并根据需要从中提取位。

答案 1 :(得分:2)

我可能会建议另一种方法:

C1fitparameters = 
Table[{C1fit["BestFitParameters"][[i, 1]], C1fit["BestFitParameters"][[i, 2]]}, 
{i, 1, Length[C1fit["BestFitParameters"]]}]

返回一个列表:

{{A, 5.11419}, {Beta, 14.2637}, {Omega_0, 174.118}, {Phi, -0.117246}}

所以要访问变量名:

C1fitparameters[[1, 1]]

返回A.并且:

C1fitparameters[[1, 2]]

返回A的值5.11419。瞧。

答案 2 :(得分:1)

你想要

x = fit["BestFitParameters"][[1]][[2]]

这将检索a-> 1的右侧。使用x = fit["BestFitParameters"][[1]][[1]]将检索左侧(" a",在这种情况下)