matlab实现一维高斯拟合
时间: 2023-11-19 21:55:24 浏览: 207
一维高斯积分的MATLAB实现
使用Matlab实现一维高斯拟合的步骤如下:
```matlab
% 生成一维高斯分布数据
x = linspace(-5,5,100);
y = exp(-x.^2/2)/sqrt(2*pi);
% 添加噪声
y_noise = y + 0.1*randn(size(y));
% 定义高斯函数
gauss_fun = @(p,x) p(1)*exp(-(x-p(2)).^2/(2*p(3)^2));
% 初始参数猜测
p0 = [1,0,1];
% 使用lsqcurvefit函数拟合数据
p_fit = lsqcurvefit(gauss_fun,p0,x,y_noise);
% 绘制拟合结果
plot(x,y_noise,'o',x,gauss_fun(p_fit,x),'-')
legend('Data','Fit')
```
阅读全文