概述
本文只介绍 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矩阵。
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
红色点为插值点。绿色点为采样点。
最后
以上就是无聊机器猫为你收集整理的matlab中interp2函数的全部内容,希望文章能够帮你解决matlab中interp2函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复