Interp2函数返回错误的插值矩阵

时间:2019-04-10 14:42:51

标签: matlab interpolation

我对插值2功能有疑问。我正在尝试插入一些关于笛卡尔网格的数据矩阵。我必须将数据插值到极坐标网格(而不是用cart2pol)。但是,当我创建新的网格并使用函数interp2或网格数据时,我仅获得一列插值矩阵和大量的NaN。 这是我的代码的简化版本:

zpoints=1024;
xpoints=512;
zmax=10e-6
w0=0.6e-6;
rmax=10*w0;
z=linspace(-zmax,zmax,zpoints);
r=linspace(0,rmax,xpoints);
[R,Z]=meshgrid(r,z);
I=peaks(R,Z);
pp=surf(R,Z,I)
rmax=1;
rpoints=512;
thetapoints=1024;
asmall=linspace(0,rmax,rpoints);
Theta=linspace(0,2*pi,thetapoints);
[a,TH]=meshgrid(asmall,Theta);
X=a.*cos(TH);
Y=a.*sin(TH);
I2=interp2(R,Z,I,X,Y);
% % figure
% % pp=surf(X,Y,I);
set(pp,'edgecolor','none');

这应该给出预期货物的插值矩阵,但如上所述只会返回1列。 有人可以帮忙看看我的问题吗? 谢谢!

0 个答案:

没有答案