Design patterns Mathematica:加工配合参数

Design patterns Mathematica:加工配合参数,design-patterns,wolfram-mathematica,rule,data-fitting,Design Patterns,Wolfram Mathematica,Rule,Data Fitting,我想访问非线性模型拟合的拟合参数。这是密码 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

我想访问非线性模型拟合的拟合参数。这是密码

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
提前谢谢

嗯,你可以写

x = a/.{a -> 1, b -> 2, c -> -3}
它将
a
的值分配给
x


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

我是否可以建议另一种方法:

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。瞧。

你想要什么

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

这将检索->1的右侧。使用
x=fit[“BestFitParameters”][[1]][[1]]]
将检索左手边(“a”,在本例中)

而此代码片段可能会解决问题,真正有助于提高您的帖子质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满你的代码,这会降低代码和解释的可读性!