2012-07-13 89 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