奈斯owo
2021-11-05 10:22
采纳率: 42.9%
浏览 34

matlab拟合出来的曲线不平滑

img

img

我看有些人说是调用函数的问题,不能用polyval函数要用polyfit函数但是我把plot(x,y,'o',x,polyval(p,x))里面的polyval改成polyfit就会报错

img

初学者,求指导一下,万分感谢。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • joel_1993 2021-11-05 15:02
    最佳回答

    你好同学,你只有七八个数据点,建议不要用高于3次的多项式拟合,那样虽然可以经过每个点,但是不叫拟合,算是多项式插值了。要得到拟合数据的光滑图形,需要将x取密集一点,你可以新设一个xm向量画图,下面举个例子

    x = [1,3,6,9, 13,18];
    y = [1,4,7,16,14,9];
    p = polyfit(x,y,3);
    xm = linspace(min(x),max(x),100);%密集的100个数据点
    ym = polyval(p,xm)
    plot(x,y,'ro',xm,ym,'b-')
    legend('离散点数据','3次多项式拟合')
    

    img

    如有帮助还望题主给个采纳哟,谢谢啦(づ ̄3 ̄)づ╭❤~

    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题