2

如果我需要在 a 上figureaxe通过使用框选择来获取某些绘制点的索引,如下所示:

load cities
education = ratings(:,6);
arts = ratings(:,7);
plot(education,arts,'+')

绘制演示图像

如何获取向量中这些点的索引而education不是来自x axis

我希望解决方案灵活,而不仅仅是这个情节。我想使用框选择来获取任何点集的索引。

4

1 回答 1

3

(i)如果点数较小,可以使用图形 gui 中的数据光标工具。

(ii)给定一些边界,您可以使用find或逻辑条件,例如:

  ind = find(arts>2e4 & education>2500 & education<3800);
  ans = arts(ind)`

所以plot(education(ind),arts(ind),'ro')会显示它:

在此处输入图像描述

(iii)您可以通过交互方式选择一个框imrect

h = imrect;
position = wait(h);

然后使用函数的position(这是一个向量[xmin ymin width height])值find

ind =find(education>position(1) & education<position(1)+position(3) & ...
     arts>position(2) & arts<position(2)+position(4))

编辑:

在我被问到如何impoly使用多边形选择之后,这是解决方案:

h = impoly;
position = wait(h);
points_in= inpolygon(education,arts,position (:,1),position (:,2));
ind=find(points_in);
...
于 2013-01-20T06:10:10.307 回答