我正在尝试在点之间插入数据,如下所示 image。当我使用griddata函数matlab时,插值数据超出了原始数据的边界。所需插值区域由图中的边界突出显示。有什么办法解决这个问题?
我的显示插值代码
figure2 = figure;
[x , y] = meshgrid(min(Matrixmin(:,5)):0.01:max(Matrixmin(:,5)),min(Matrixmin(:,6)):0.01:max(Matrixmin(:,6)));%graduation des x et y.
[xi,yi,zi]=griddata(Matrixmin(:,5),Matrixmin(:,6),Matrixmin(:,10),x,y);
contourf(xi,yi,zi,'edgecolor','none','LevelStep',0.01);
h=colorbar('location','Eastout');colormap('jet');
我也尝试过interp2函数,但结果仍然相同。
答案 0 :(得分:0)
您正在使用[x, y]
创建图像边界之外的查询点meshgrid
。然后,griddata
正在估计那些查询点处的zi
值。 meshgrid
和griddata
的行为均符合预期。如果您不希望点超出图像边界,请在创建meshgrid
之后使用inpolygon函数删除这些点。