matlab 高斯(Gaussian)拟合

matlab 高斯(Gaussian)拟合,第1张

新建一个函扮厅滚伏首数,代码如下:

function [fitresult, gof] = createFit(x, y)

[xData, yData] = prepareCurveData( x, y) % Set up fittype and options.

ft = fittype( 'gauss1' )

opts = fitoptions( 'Method', 'NonlinearLeastSquares' )

opts.Display = 'Off'

opts.Lower = [-Inf -Inf 0]

opts.StartPoint = [y(ceil(length(x)/2)) x(ceil(length(x)/2)) 0.1] % Fit model to data.

[fitresult, gof] = fit( xData, yData, ft, opts ) % Plot fit with data.

h = plot( fitresult, xData, yData)

xlabel( 'β' )

ylabel( 'R' )

legend off

grid onhold on

plot(fitresult.b1,fitresult.a1,'^','markersize',6)

运行它,厅余然后在命令行窗口输入:createFit(x,y)

function y=gammaF_xkp(a)

%% 该函数用于求参数为a的gamma函数

% 已验证正确》》》

syms x

y=double(int(x^(a-1)*exp(-x),x,0,inf))

function y=GGD_xkp(x,a,b)

%% 该函数用于生成灶枣广义高斯概率密度函数

length=numel(x)

n=zeros(length,1)

y=zeros(length,1)

gam_b=gammaF_xkp(1/b)

exp_value=sum(x)/length

for i=1:length

n(i)=abs((x(i)-exp_value)/a)^b

y(i)=b/(2*a*gam_b)*exp(-n(i))

end

这隐行拆是两个子函数, 自己编的 。 刚好编带辩到这儿


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12334839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存