我是靠谱客的博主 无聊机器猫,最近开发中收集的这篇文章主要介绍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

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

最后

以上就是无聊机器猫为你收集整理的matlab中interp2函数的全部内容,希望文章能够帮你解决matlab中interp2函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部