2013-03-18 118 views
3

我想訪問NonlinearModelFit的擬合參數。下面是代碼Mathematica:處理擬合參數

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

當我使用命令:

fit["BestFitParameters"] 

的值在下面的格式返回:

​​

現在我想存儲的價值一個變量x

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

但是這給

x= a -> 1 

不,我想知道我怎麼能解決「 - > - 操作員」,取得提前

x=1 

謝謝!

回答

3

好了,你可以寫

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

將的a值分配給x

我不完全確定你應該這樣做,你可以簡單地將規則列表存儲在一個變量中,並在你想要的時候從中提取這些位。

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

1

你想

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

這檢索A-> 1的右手邊。使用x = fit["BestFitParameters"][[1]][[1]]將檢索左側(在本例中爲「a」)

+0

雖然此代碼段可能會解決問題,[包括解釋](// meta.stackexchange.com/questions/114762/explaining - 完全基於代碼的答案)確實有助於提高發布的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性! – kayess 2016-12-01 08:36:44