Matlab - 查找附近的点

Matlab - Find points in vicinity

假设我有一个如下所示的数据集。

X = [170,85; 165,75; 180,100; 190,120; 160,80; 170,70];

一个距离向量

Y = [10,20];

一个数据点

Z = [166,77];

我想找到 X 中距离点 Z 的距离在 Y 内的所有点

答案应该是 ans = [170,85; 165,75; 160,80; 170,70]

我如何在 Matlab 中做到这一点

a= X(abs(X(:,1)-Z(1))<=Y(1) & abs(X(:,2)-Z(2))<=Y(2),:)

编辑

多维解决方案可能如下所示:

a= X(all(abs(X-ones(size(X,1),1)*Z) <= ones(size(X,1),1)*Y,2),:)