首页 > 解决方案 > griddata 在所需区域之外生成数据

问题描述

我正在尝试在点之间插入数据,如图所示 。当我使用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 函数,但结果仍然相同。

标签: matlabinterpolation

解决方案


您正在[x, y]使用meshgrid图像边界之外的查询点创建查询点。然后,griddata估计zi这些查询点的值。meshgrid两者的行为都griddata符合预期。如果您不希望图像边界之外的点,请使用inpolygon函数在创建后删除这些点meshgrid


推荐阅读