matlab中interp2函数

本文介绍了MATLAB中的interp2函数,该函数用于二维数据的线性内插。文章通过实例演示了如何使用该函数进行插值,并展示了不同参数设置下插值结果的变化。

本文只介绍 interp2(X,Y,V,Xq,Yq)这个参数表下的情况,包括两个测试。看完测试,能够简单理解这个函数的作用了。

函数介绍

Vq = interp2(X,Y,V,Xq,Yq) returns interpolated values of a function of two variables at specific query points using linear interpolation. The results always pass through the original sampling of the function. X and Y contain the coordinates of the sample points. V contains the corresponding function values at each sample point. Xq and Yq contain the coordinates of the query points.

Vq = interp2(X,Y,V,Xq,Yq) 返回 两个变量(X,Y)在两个特殊队列点(Xq,Yq)用线性内插方法处理后的内插值(内插是什么鬼,我也不知道,插值我是知道了)。结果总是通过原有数据处理得来的(结果在原有数据范围内)。X和Y包括样本点的坐标。V包括每个坐标点对应的value。Xq和Yq包括队列点的坐标。

example

ep1
[x,y]=meshgrid(0:2,0:2)
vl = [1:3;4:6;7:9]

[x2,y2]=meshgrid(1:0.1:2,0:2)
zz = interp2(x,y,vl,x2,y2,'bicubic');
  • 上面代码x,y,v代表一个矩阵,这个矩阵样本点横坐标和坐标用x,y保存。值用v表示。

这里写图片描述

这里写图片描述

这里写图片描述

  • x2,y2表示要插值的点坐标变化范围,这个范围在x,y之内。可以不是像例子中的等距离0.1的。
  • 返回x2,y2这个范围内的点的value的矩阵。如果超过这个范围,返回含nan矩阵。

这里写图片描述

这里写图片描述

1
zz就是返回的矩阵。将原来[2,3; 5,6; 8,9]这部分的点中线性插值。为啥是这部分?x2写的,从1到2,间隔0.1。y2从0到2,间隔1。

ep2

试下改下y2也是从1到2,间隔0.1。

[x4,y4]= meshgrid(1:0.1:2,1:0.1:2)

这里写图片描述
zz2是[5,6; 8,9]这部分线性插值得到的。之所以是上面的值,可以想成三维坐标系中的一个平面。z轴就是value。

ep3
[x,y]=meshgrid(0:2,0:2);
vl = [1:3;4:6;7:9]
mesh(x,y,vl)
axis tight; hold on
plot3(x,y,vl,'.','MarkerSize',15,'Color','g') %nonuniform

hold on 
[x4,y4]= meshgrid(1:0.1:2,1:0.1:2)
zz = interp2(x,y,vl,x4,y4,'bicubic');
mesh(x4,y4,zz)
axis tight; hold on
plot3(x4,y4,zz,'.','MarkerSize',15,'Color','r') %nonuniform

这里写图片描述
红色点为插值点。绿色点为采样点。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值