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),:)
假设我有一个如下所示的数据集。
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),:)