MATLAB实现高斯曲线拟合

MATLAB实现高斯曲线拟合

完成某次课程任务,在MATLAB中新建一个m文件,将下列代码复制,或者直接复制到命令栏回车即可使用

x=[0:0.1:10];%0—10每次加0.1,共101个点
y=50*exp(-(x-5).^2./2);%x,y为初始函数值表现为红线
x=x';%因为拟合曲线时需要列向量
y=y';
y0=1*randn(1,101);%添加噪声//形成1行101列随机数
y0=y0';%y1为添加噪声后的函数,表现为点
y1=y+y0;%加上噪声后的函数值
Mytype=fittype('A*exp(-(x-u)^2/(2*d^2))');%需要拟合的函数类型
[cf ,gof]=fit(x(:),y1(:),Mytype)%fit函数
xi=0:0.1:10;
yi=cf.A*exp(-(xi-cf.u).^2/(2*cf.d^2));%xi,yi为拟合后的函数
plot(x,y1,'g.');%加噪声的函数为绿色的点
hold on;
plot(xi,yi,'r');%拟合后的曲线为红色的线
plot(x,y,'b');%拟合前的标准曲线为蓝色的线

MATLAB实现高斯曲线拟合_第1张图片

你可能感兴趣的:(MATLAB,MATLAB,高斯曲线拟合)