在matlab中如何让插值跳过一个区域

在matlab中如何让插值跳过一个区域,matlab,interpolation,contour,Matlab,Interpolation,Contour,我有一些数据,它们是一些散点,我尝试使用scatterinterpolant函数来获得平滑的轮廓,但在我的情况下,区域中有一个块,在这个块中,应该没有任何东西。但是插值之后,块中充满了数据,我喜欢的是让插值跳过或忽略这个块 我有一个简单的代码来显示我试图得到什么,但它不起作用。如果有人给我任何建议,我将不胜感激 clear all a=randi(100,[1000,2]); b=rand(1000,1); F=scatteredInterpolant(a,b); [xi,yi]=meshgri

我有一些数据,它们是一些散点,我尝试使用
scatterinterpolant
函数来获得平滑的轮廓,但在我的情况下,区域中有一个块,在这个块中,应该没有任何东西。但是插值之后,块中充满了数据,我喜欢的是让插值跳过或忽略这个块

我有一个简单的代码来显示我试图得到什么,但它不起作用。如果有人给我任何建议,我将不胜感激

clear all
a=randi(100,[1000,2]);
b=rand(1000,1);
F=scatteredInterpolant(a,b);
[xi,yi]=meshgrid(1:1:100,1:1:100);
vi=zeros(size(xi));
if (xi>50) %& xi<70
id=find(xi>50 );

vi(id)=nan;
else
vi(:,:)=F(xi,yi);
end
figure,scatter(a(:,1),a(:,2),b)
figure,contourf(xi,yi,vi)
全部清除
a=兰迪(100,[1000,2]);
b=兰特(1000,1);
F=散射干扰(a,b);
[xi,yi]=meshgrid(1:1:100,1:1:100);
vi=零(尺寸(xi));
如果(xi>50)%&xi50);
vi(id)=nan;
其他的
vi(:,:)=F(xi,yi);
结束
图,散点图(a(:,1),a(:,2),b)
图,轮廓图F(十一、一、六)

你说什么都不应该是什么意思?矩阵中的0或NaN?你可以想象在物理学中,在整个区域中,看起来像盒子里有一块石头,盒子里充满了空气,我想说的是,不可能从石头中获得任何数据。我认为,南斯更适合描述它。