matlab 拟合出现的问题

最近在用matlab 拟合一个很复杂的公式 然后出了一个警告
Ignoring NaNs in data.
这应该怎么修改呢。而且拟合出来的曲线几乎是平的 这怎么改比较合适呢

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:MATLAB拟合工具箱函数的使用
  • 除此之外, 这篇博客: 【MATLAB】数据拟合_多项式/拟合工具cftool中的 NO1.多项式拟合 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •  

    例:已知的数据点来自f(x)=(x2+3x+5)e−5x*sinx,用多项式拟合的方法在不同的阶次下进行拟合。

    >> x0=0:.1:1; y0=(x0.^2-3*x0+5).*exp(-5*x0).*sin(x0);
    >> p3=polyfit(x0,y0,3); vpa(poly2sym(p3),10)%可以如下显示多项式
    ans =
     
    2.839962923*x^3-4.789842696*x^2+1.943211631*x+.5975248921e-1

    绘制拟合曲线:

    >> x0=0:.1:1; y0=(x0.^2-3*x0+5).*exp(-5*x0).*sin(x0);
    >> x=0:0.01:1;
    >> ya=(x.^2-3*x+5).*exp(-5*x).*sin(x);
    >> y1=polyval(p3,x);
    
    >> p3=polyfit(x0,y0,3);y1=polyval(p3,x);
    >> p5=polyfit(x0,y0,5);y2=polyval(p5,x);
    >> p8=polyfit(x0,y0,8);y3=polyval(p8,x);
    >> p10=polyfit(x0,y0,10);y4=polyval(p10,x);
    >> plot(x,ya,x,y1,x,y2,'-',x,y3,'--',x,y4,':');

    绘制结果如图:

                                           

    还可以利用MATLAB的拟合工具来进行数据拟合:

    在命令窗口输入 cftool 调用函数拟合界面