Функция Interp2 возвращает неверную интерполированную матрицу - PullRequest
0 голосов
/ 10 апреля 2019

У меня вопрос по поводу функции интерполяции 2.Я пытаюсь интерполировать некоторую матрицу данных, которая относится к декартовой сетке.Я должен интерполировать данные в полярную сетку (не с cart2pol).Тем не менее, когда я создаю свою новую сетку и использую функцию interp2 или данные сетки, я получаю только 1 столбец интерполированной матрицы и целый набор 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 столбец, как упомянуто выше.Может кто-нибудь помочь увидеть мою проблему здесь?спасибо!

...