Re: [討論] 求高斯回歸曲線?已回收
※ 引述《Achillean (山豬元年革命志士)》之銘言:
: ※ 引述《Achillean (山豬元年革命志士)》之銘言:
: : 請問一下
: : 假設有一維data
: : 我想求他高斯回歸曲線
: : mean and variance
: : matlab有現成的函式嗎?
: : 我只會求非線性回歸曲線 用polyfit
: : 我今天已經看help一天
: : 實在查找不到
: : 還是根本沒有「高斯回歸曲線」這東西?
: : 抱歉沒有學過線性代數 orz
: 找到fit可以用
: fit
: Fit model to data
: Syntax
: cfun = fit(xdata,ydata,libname)
: libname也有gaussian
: GAUSSIAN SUMS (Peak fitting)
: MODELNAME EQUATION
: gauss1 Y = a1*exp(-((x-b1)/c1)^2)
: gauss2 Y =
: a1*exp(-((x-b1)/c1)^2)+a2*exp(-((x-b2)/c2)^2)
: gauss3 Y =
: a1*exp(-((x-b1)/c1)^2)+...+a3*exp(-((x-b3)/c3)^2)
: ...
: gauss8 Y =
: a1*exp(-((x-b1)/c1)^2)+...+a8*exp(-((x-b8)/c8)^2)
: ??? XDATA must be a matrix with one to two columns.
: 出現這樣的錯誤
: 我 x = 1*100 double, y = 1*100 double
: 請問他是要我把x改成2 columns?
%解答
>> f = fittype('gauss1');
>> g = fit(x1,y1,f)
g =
General model Gauss1:
g(x) = a1*exp(-((x-b1)/c1)^2)
Coefficients (with 95% confidence bounds):
a1 = 3.645e+004 (3.589e+004, 3.7e+004)
b1 = 128.5 (127.4, 129.6)
c1 = 61.77 (61.14, 62.41)
>> c = gaussmf(x,[128.5,61.77]);
>> plot (x,y,'o',x,c);
請問一下如何取得a1,b1,c1之min max,就是括弧內的數字?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.78.236
※ 編輯: Achillean 來自: 122.116.78.236 (01/14 11:08)
後來發現
g = fit(x1,y1,'gauss1')
就好了
※ 編輯: Achillean 來自: 122.116.78.236 (01/14 11:38)
討論串 (同標題文章)