获得积分指数

时间:2013-01-20 06:07:19

标签: matlab plot matlab-figure roi

如果我需要使用以下框选择来获取figureaxe上某些标绘点的索引:

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

Plot demo image

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

我希望解决方案灵活,不仅仅适用于此情节。我想使用框选择来获取任何一组点的索引。

1 个答案:

答案 0 :(得分:3)

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

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

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

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

enter image description here

(iii)您可以使用imrect

以交互方式选择一个框
h = imrect;
position = wait(h);

然后使用position[xmin ymin width height]的{​​{1}}值向量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);
...