2012-07-13 2 views
0

Matlab에서 플롯을 사용할 때 문제가 있습니다. 다음은 플롯의 문제점입니다.matlab 플롯에서 지역을 선택하는

  • 마우스를 사용하여 데이터를 플로팅 한 후 어떻게 영역을 선택할 수 있습니까?
  • 영역을 선택한 후 해당 영역에서 데이터를 가져 오는 방법은 무엇입니까?

어떤 아이디어?

+0

난 당신이 내가 특정 지침을 제공 할 수 없습니다 정의 할 무엇을 당신의 플롯의 모양 또는 지역의 어떤 종류의 아무 생각이 없습니다. ginput 함수를 살펴보십시오. – ioums

+0

내 플롯에 몇 가지 2 차 곡선이 있습니다. ginput 그냥 선택한 데이터를 제공하지만 내 플롯 내가 마우스를 사용하여 마우스를 사용하여 몇 가지 영역이나 지역을 선택할 수 있어야 할 때 두 개의 수평선을 드래그, 그 라인 사이의 영역은 지역이 될 것입니다. –

+0

ginput은 클릭 한 위치의 (x, y) 좌표를 제공합니다. 예를 들어 두 번 클릭 (예 : [x, y] = ginput (2))을 사용하여 직사각형의 왼쪽 위 및 아래 오른쪽 모서리를 정의하고 해당 직사각형의 모든 것을 지역으로 사용할 수 있습니다. – ioums

답변

4

마우스로 영역을 선택하는 것은 rbbox 기능을 사용하면 아주 쉽습니다.

먼저 rbbox를 그리는 축에 ButtonDownFcn을 추가합니다.

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

그런 다음이 여기

function OnClickAxes(hax, evt) 

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

end 

POINT1처럼 콜백 내에서 rbbox를 호출하고 POINT2 데이터 좌표로 마우스에 의해 그려진 사각형의 두 모서리를 정의합니다. doc rbbox at matlab 프롬프트에서 자세한 정보를 얻으십시오.

이제 2 차원 플롯에 대한 두 번째 질문에 대답하십시오.

이 코드 비트는 축 내의 모든 행에 대해 선택된 영역 내의 데이터를 추출하여 반환합니다.

https://gist.github.com/3107790

관련 문제