【问题标题】:smoothing 2D plot in MATLAB在 MATLAB 中平滑二维图
【发布时间】:2013-07-21 05:21:19
【问题描述】:

我在 MATLAB 中有一些像这样的简单绘图:

x = [0:5:25];
y = [1 4 7 9 8 3];
plot(x,y)

我的问题是如何平滑它?在文档中没有找到任何我想做的方式。

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    您可以使用三次平滑样条

    p  = 1e-2;           % initialize smoothing constant
    fn = csaps(x, y, p); % get ppform of the cubic smoothing spline
    y1 = ppval(fn, x);   % evaluate piecewise polynomial
    

    比较:

    plot(x,y);
    hold on;
    plot(x, y1, '-r');
    

    【讨论】:

    • 是的。这是一个不错的选择。也可以简单地进行高斯模糊,使用 conv 来完成这项工作。
    • 需要注意的是csaps需要安装Curve Fitting Toolbox
    【解决方案2】:

    也许你可以像下面这样使用spline

    x1 = 0:.1:25;
    y1 = spline(x,y,x1);
    plot(x,y,x1,y1);
    

    【讨论】:

    • 这就是我想要的。谢谢。
    • 请注意,这不会按照您的要求进行平滑处理。
    猜你喜欢
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多