2012-07-13 90 views
0

我有一个问题,当我在Matlab的绘图工作。以下是我与问题的情节:matlab选择matlab地区

  • 如何在使用鼠标绘制数据后选择区域?
  • 选择区域后,如何从该区域获取数据?

任何想法?

+0

我不知道你要定义,所以我不能提供任何具体的说明你的阴谋样子或什么样的区域。尝试查看ginput函数。 – ioums 2012-07-13 19:10:09

+0

我的情节有一些二次曲线。 ginput只是给出选定的数据,但是当我有我的情节时,我需要能够使用鼠标选择某个区域或区域,例如使用鼠标拖动两条水平线,这些线条之间的区域就是一个区域。 – 2012-07-13 19:39:45

+0

ginput给出您点击的位置的(x,y)坐标。例如,您可以使用两次单击(即[x,y] = ginput(2))来定义矩形的左上角和右下角,并将该矩形中的所有内容用作区域。 – ioums 2012-07-13 19:46:36

回答

4

使用rbbox功能使用鼠标选择区域相当简单。

首先,将ButtonDownFcn添加到您正在绘制rbbox的轴上。

hax = axes(... , 'ButtonDownFcn', @OnClickAxes); 

然后调用rbbox回调中这样

function OnClickAxes(hax, evt) 

point1 = get(hax,'CurrentPoint'); % hax is handle to axes 
rbbox; 
point2 = get(hax,'CurrentPoint'); % hax is handle to axes 

end 

这里点1和点2将界定你的鼠标在数据坐标绘制的矩形的两个角。类型doc rbbox at matlab提示更多信息

现在来回答你的第二个问题的二维图。

这一位代码将提取并返回所选区域内的数据,用于轴内的所有行。

https://gist.github.com/3107790