如何像在Matlab中手绘一样连接数据点

问题描述

我正在尝试以一种直观的方式连接六个数据点。常规的plot命令给了我锯齿状的一行,因为它只有六个数据点。 spline命令接近我想要的位置。但是,它继续适合前后的线。但是,我希望它从第一个数据点开始,到最后一个数据点结束。此外,我想避免附加图片显示的颠簸。为此,我需要一个更高阶的多项式。

有人可以像手动进行那样帮助我连接这些数据点吗?不需要通过spline命令来完成。

最小示例:

clear all,close all,clc
%% Minimal Example

%% Data
x = 2:7;
y = [69,27,3,0.5,0]

%% Using Regular Plot
plot(x,y)

%% Using Spline
hold on
xx = 0:.25:10;
yy = spline(x,y,xx);
plot(x,'o',xx,yy)

Data points connected via plot and spline

Bump

解决方法

为了在所需的起点和终点处停止样条,我将xx = 2:.25:7编辑为所需的边界2至7。我监督了该选项。

为了摆脱颠簸,我用以下yy编辑了for-loop。现在,这为我完成了工作。

如果有人知道如何用更弯曲的线连接数据点,我仍然会很感激。谢谢!

clear all,close all,clc
%% Minimal Example

%% Data
x = 2:7;
y = [69,27,3,0.5,0]

%% Using Regular Plot
plot(x,y)

%% Using Spline
hold on
xx = 0:.25:10;
yy = spline(x,y,xx);
i = 1;
xx = 2:.05:7;
yy = spline(x,xx);
for i = 1:length(yy)
    if yy(i) < 0.3
        idx = i
        for idx = idx:length(yy)
            yy(idx) = 0.3
            idx = idx + 1
        end
    end
end
plot(xx,yy,'LineWidth',3)