4

我想访问 NonlinearModelFit 的拟合参数。这是代码

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

提前致谢!

4

3 回答 3

3

嗯,你可以写

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

这将分配ato的值x

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

于 2013-03-18T16:40:25.473 回答
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。瞧。

于 2013-06-16T12:40:46.507 回答
1

你要

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

这将检索 a->1 的右侧。usingx = fit["BestFitParameters"][[1]][[1]]将检索左侧(在本例中为“a”)

于 2016-12-01T02:55:41.457 回答