MATLAB一维插值(interp1)四种方法的比较

2025-06-18 23:25:46

1、第一,演示邻近点插值Nearest,线性插值Linear,三次样条插值Spline和立方插撕良滤儆值Pchip,启动MATLAB,新建脚本(Ctrl+N),输入如下代码:close all; c造婷用痃lear all; clcx=0:0.5:2*pi; y=sin(x);%-1---Nearest interpolation---%figure('Position',[50,50,500,400],'Name','Nearest')x1=0:0.1:2*pi;y1=interp1(x,y,x1,'Nearest');plot(x,y,'.','color','r','MarkerSize',20);hold on;plot(x1,y1,'.','color','b','MarkerSize',10);hold off;xlabel('x','fontsize',20);ylabel('y','fontsize',20);%-2---Linear interpolation---%figure('Position',[100,100,500,400],'Name','Linear')x2=0:0.1:2*pi;y2=interp1(x,y,x1,'Linear');plot(x,y,'.','color','r','MarkerSize',20);hold on;plot(x2,y2,'.','color','b','MarkerSize',10);hold off;xlabel('x','fontsize',20);ylabel('y','fontsize',20);%-3---Spline interpolation---%figure('Position',[150,150,500,400],'Name','Spline')x3=0:0.1:2*pi;y3=interp1(x,y,x1,'Spline');plot(x,y,'.','color','r','MarkerSize',20);hold on;plot(x3,y3,'.','color','b','MarkerSize',10);hold off;xlabel('x','fontsize',20);ylabel('y','fontsize',20);%-4---Pchip interpolation---%figure('Position',[200,200,500,400],'Name','Pchip')x4=0:0.1:2*pi;y4=interp1(x,y,x1,'Pchip');plot(x,y,'.','color','r','MarkerSize',20);hold on;plot(x4,y4,'.','color','b','MarkerSize',10);hold off;xlabel('x','fontsize',20);ylabel('y','fontsize',20);该脚本借助一元函数y=sin(x)分别演示了邻近点插值Nearest,线性插值Linear,三次样条插值Spline和立方插值Pchip,(x,y)为原函数的点,(x1,y1),(x2,y2),(x3,y3)和(x4,y4)分别为Nearest,Linear,Spline和Pchip四种插值方法插值后函数的点。

MATLAB一维插值(interp1)四种方法的比较
MATLAB一维插值(interp1)四种方法的比较

2、第二,保存和运行上述脚本,得到Figure 1 邻近点插值(Nearest)的图像。红点表莲镘拎扇示y=sin(x)一元函数原有的点,蓝点表示邻近点插值(Nearest)后的点。

MATLAB一维插值(interp1)四种方法的比较

3、第三,得到Figure 2 线性插值(Linear)的图像。红点表示y=sin(x)一元函数原有的点,蓝点表示线性插值(Linear)后的点。

MATLAB一维插值(interp1)四种方法的比较

4、第四,得到Figure 3 三次样条插值(Spline)的图像。红点表示y=sin(x)一元函数原有的点,蓝点表示三次样条插值(Spline)后的点。

MATLAB一维插值(interp1)四种方法的比较

5、第五,得到Figure 4 立方插值(Cubic)的图像。红点表示y=sin(x)一元函数原有的点,蓝点表示立方插值(Cubic)后的点。

MATLAB一维插值(interp1)四种方法的比较
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢