최근에 매트랩 브러시 기능을 자주 사용하고 있습니다. 그래프를 그리고 유효한 데이터를 선택하기 위해서 아래 포스팅에서 소개를 했었던 브러시, 데이터 커서 기능을 굉장히 많이 사용하고 있고 브러시 된 데이터들을 변수를 저장하여 MATLAB 워크스페이스에서 가공을 하고 유효한 데이터들을 얻는 작업들을 수행하곤 합니다.
https://iamaman.tistory.com/2830
위 포스팅에서 브러쉬 된 데이터들을 “변수 만들기” 를 통해서 변수로 저장할 수 있다는 것을 소개한 적이 있었는데~ MATLAB 에서는 조금 더 다양한 방법으로 brush 된 데이터들에 접근할 수 있었습니다.
일단 아래와 같이 그래프를 하나 그리고~ brush on 을 해 줍니다~
x=1:10
p = plot(x)
brush on
Figure 창에서 데이터들을 선택한 후에~ 보통은 오른쪽 클릭을 해서 “변수 만들기” 를 하지만 아래와 같은 명령을 통해서도 brush 된 데이터를 변수로 만들 수 있습니다.
일단 브러시 된 데이터들의 인덱스는 아래 명령어를 통해서 확인할 수 있습니다.
ind = find(get(p, 'BrushData'));
다음으로 인덱스에 따른 X, Y 좌표의 값들은 아래와 같은 명령어를 통해 변수로 만들 수 있습니다.
brush = logical(get(p, 'BrushData'))
xd = get(p, 'XData')
yd = get(p, 'YData')
brushed_x = xd(brush)
brushed_y = yd(brush)
brushed_x, brushed_y 변수를 확인해 보면 브러쉬 된 데이터가 저장 된 것을 확인할 수 있고~ 만약 3차원 그래프라면 z 축의 값도 동일한 방식으로 구할 수 있습니다.
위 코드에서 plot 핸들을 p 라는 변수로 받아서 사용을 했는데~ plot 은 axes 의 Children 입니다. 따라서 아래와 같이 gca 의 ‘Children’ 속성을 통해서도 똑같이 plot 핸들을 구할 수 있습니다.
p = get(gca, 'Children')
gca 키워드에 대해서는 아래 포스팅을 참조하시기 바랍니다.
https://iamaman.tistory.com/174
추가적으로~ 제가 많이 참고 하는 사이트로 “Undocumented Matlab” 이라는 사이트가 있는데~ MATLAB 을 조금 더 파워풀하게 사용하고자 하시는 분들은 아래 사이트에 방문해 보시기 바랍니다.
https://undocumentedmatlab.com
MATLAB brush 데이터에 접근하는 다양한 방법들은 아래 포스팅을 통해서도 확인할 수 있습니다.
https://undocumentedmatlab.com/blog/accessing-plot-brushed-data
그리고 위 포스팅 내용 중 uiinspect 라고 하는 괜찮은 유틸을 확인할 수 있었는데~ 해당 유틸은 아래 주소의 File Exchange 사이트를 통해 다운로드 받을 수 있습니다.
'programming language > MATLAB' 카테고리의 다른 글
MATLAB 기하 분포(geometric distribution) 랜덤 변수 생성 (2) | 2020.04.12 |
---|---|
MATLAB 입사 반사파 그리기 애니메이션 animatedline, drawnow (0) | 2019.10.22 |
MATLAB cell 중복 제거 및 중복 내용 확인하기 (1) | 2019.10.13 |
MATLAB 주기함수 만드는 방법 (583) | 2019.10.10 |
MATLAB 그래프 사이 공간 색칠하기 fill, patch, area (742) | 2019.04.30 |
MATLAB 그래프 내에 그래프 넣기 (0) | 2019.04.13 |
MATLAB 스트럭처 정렬 방법 (0) | 2019.03.27 |
MATLAB 브러시, 데이터 커서 기능을 사용하여 데이터 가공하기 (0) | 2019.03.04 |
댓글