MATLAB二维插值(Nearest,Linear,Spline,Cubic)

  • 原创
  • |
  • 浏览:33681
  • |
  • 更新:
  • |
  • 标签:MATLAB 

二维插值是指被插值函数z=f(x,y)为二元函数。MATLAB提供interp2(x,y,z,xq,yq,'Method')函数命令进行二维插值。x,y为原有的数据点,z为数据点上的(函数)值,xq,yq为插值后的数据点。Method是选择插值的方法,二维插值的方法一般有邻近点插值Nearest,双线性插值Linear,三次样条插值Spline和双立方插值Cubic。

MATLAB二维插值(Nearest,Linear,Spline,Cubic)

工具/原料

  • MATLAB
  • interp2

方法/步骤

  1. 1

    第一,利用峰值函数peaks(x,y,z)演示二维插值。启动MATLAB,新建脚本(Ctrl+N),输入如下代码:

    close all; clear all; clc

    n1=1; [x1,y1]=meshgrid(-2*pi:n1:2*pi);

    z1=peaks(x1,y1);

    n2=1/5*n1; [x2,y2]=meshgrid(-2*pi:n2:2*pi);

    z2=interp2(x1,y1,z1,x2,y2,'Nearest');%二维插值

    mesh(x1,y1,z1-10);hold on;

    mesh(x2,y2,z2+10);hold off;

    axis([-6,6,-6,6,-15,15])

    xlabel('x','fontsize',20);

    ylabel('y','fontsize',20);

    zlabel('z','fontsize',20);

    其中x1,y1是原有的数据点,z1=peaks(x1,y1)是原有数据点上的函数值。x2,y2插值后的数据点,因为n2=1/5*n1,所有插值后的数据点个数是原有数据点个数的5倍。z2=interp2(x1,y1,z1,x2,y2,'Nearest')说明使用邻近点插值Nearest的方法进行插值。

    MATLAB二维插值(Nearest,Linear,Spline,Cubic)
  2. 2

    第二,保存和运行上述脚本,得到如下图形。下面的图像是原有数据点(x1,y1)上的峰值函数图像,上面的图像是插值后数据点(x2,y2)上的峰值函数图像。

    MATLAB二维插值(Nearest,Linear,Spline,Cubic)
  3. 3

    第三,将z2=interp2(x1,y1,z1,x2,y2,'Nearest')改为将z2=interp2(x1,y1,z1,x2,y2,'Linear'),即使用双线性插值Linear的方法进行插值。

    MATLAB二维插值(Nearest,Linear,Spline,Cubic)
  4. 3
    本页面非法爬取自百度经验
  5. 4

    第四,保存和运行上述脚本,得到如下图形,上面的峰值函数图像为插值后的图像,使用的是双线性插值Linear的方法。

    MATLAB二维插值(Nearest,Linear,Spline,Cubic)
  6. 5

    第五,将z2=interp2(x1,y1,z1,x2,y2,'Linear')改为将z2=interp2(x1,y1,z1,x2,y2,'Spline'),得到如下使用三次样条插值Spline的图形,同样也可以使用双立方插值Cubic的方法,这里不再赘述。

    MATLAB二维插值(Nearest,Linear,Spline,Cubic)
    END

注意事项

  • interp2(x,y,z,xq,yq,'Method')进行二维插值,插值后数据点xq,yq的个数要大于原有数据点x,y的个数。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部
相关标签MATLAB