我在将带有 X、Y 坐标的德国边界的 Shape 文件转换为相同形状的光栅矩阵格式时遇到问题。我根本不知道在这种情况下使用哪种方法。如果有人帮助我为这个应用程序找到正确的思维方式,我将不胜感激。
问问题
270 次
1 回答
0
在 MATLAB 中可以很容易地获得它。你需要使用多边形功能。此函数为您提供位于给定多边形内部和放置位置的点的索引。一旦你知道了索引,你就可以得到你想要的。您可以查看以下演示:
x = [1 2 3 4 3 2]';
y = [4 5 5 4 3 3]';
k = boundary(x,y);
x0 = min(x) ; x1 = max(x) ;
y0 = min(y) ; y1 = max(y) ;
[X,Y] = meshgrid(linspace(x0,x1),linspace(y0,y1)) ;
idx = inpolygon(X(:),Y(:),x(k),y(k)) ;
X(~idx) = NaN ;
Y(~idx) = NaN ;
plot(x,y,'.r')
hold on
patch(x(k),y(k),'k') ;
plot(X(idx),Y(idx),'.r')
只需将上面的 (x,y) 替换为您的形状文件坐标,您将得到您想要的。
于 2019-02-28T06:20:11.843 回答