Matlab/figure창 다루기

위키배움터
둘러보기로 가기 검색하러 가기

코드로 다루기[편집]

명령어 목록[편집]

  • 모니터, 현재 figure 창, 현재 axes 관련 핸들링을 위한 객체
    • groot : 모니터 화면 관련 임시 객체
    • gcf : 현재 피규어 창(figure) 핸들링을 위한 임시 객체
    • gca : 현재 축 영역(axes) 핸들링을 위한 임시 객체(figure 창 안에서 그래프가 그려지는 도화지 공간을 축 영역(axes)이라고 한다.)

우리 눈에 보이는 대상과 매트랩이 그것을 이해하는 이름 비교

   Simple image explaining groot on Matlab.png
   Simple image explaining gcf on Matlab.png
   Simple image explaining gca on Matlab.png
  • 객체 제어를 위한 함수
    • get( ... ) : 객체가 가진 속성의 목록과 속성 값을 가져온다.
    • set( ... ) : 객체의 속성을 원하는 내용으로 수정한다.
groot, gcf, gca를 다루는 방법은 서로 비슷하므로 groot에서 get() 함수를, gcf와 gca에서 set() 함수를 중심으로 다루겠습니다.
  • figure 창 제어
    • figure, figure( ... ) : 새 figure 창 열거나, 열려있는 figure 창을 선택하는 명령어 및 함수.
    • clf : 현재 figure창 초기화(회색 화면만 존재하고 axes 사라짐)
    • cla : 현재 axes 초기화
    • close ..., close(...) : figure 창 닫기 명령어 및 함수
    • axes( ... ) : axes를 선택하는 함수로, 주로 GUI(Graphic User Interface)에서 사용.

시각화 관련 객체[편집]

Matlab의 그래프 창은 다음과 같은 포함 관계로 구성된다고 할 수 있습니다.

모니터 ⊃ 그래프 창(figure) ⊃ 축 영역(axes; 도화지 영역)

그리고 이 3 가지를 다루기 위한 객체가 준비되어 있습니다.

모니터는 groot, 최근 피규어 창은 gcf, 최근 축 영역은 gca입니다.


groot[편집]

임시 객체인 groot의 모든 속성 목록. groot는 통상 우리의 모니터를 대신하는 임시 객체로 쓰인다. 이 명령을 통하여, 모니터의 크기, 마우스 포인터의 위치 등을 얻을 수 있다.

임시 객체 groot를 통해 모니터의 크기, 마우스 포인터의 위치 등 몇 가지 속성을 확인할 수 있습니다.


속성 목록 확인:

>> get( groot )

속성 목록의 확인은 간단한 한 줄이므로, 보통은 명령창을 사용하는 것이 편리합니다.

확인한 목록 중 특정 속성을 가져와 다루는 방법은 예시와 함께 설명하며, 'MonitorPositions'라는 속성을 가져와 보도록 하겠습니다.

(참고: MonitorPositions 속성은?)
groot의 MonitorPositions 속성은 모니터의 위치와 크기라고 생각하면 됩니다.
위치와 크기는 [가로 위치, 세로 위치, 가로 크기, 세로 크기]가 있으니 총 4개 값이 1×4 크기 행렬로 뜰 것입니다.
단일 모니터는 위치가 불변이니 특별한 값을 갖는 것은 주로 모니터의 해상도뿐이겠지요.
따라서 데이터 구성은 [1, 1, 모니터 폭, 모니터 높이]가 일반적입니다.


속성 획득(예시1): get( 핸들 값, '속성이름' ) 사용

>> MONITOR_POS = get( groot, 'MonitorPositions')

이때 속성 이름은 문자열로 넣고, 대소문자를 구분하지 않습니다.

get 함수로 얻어낸 속성 값은 MONITOR_POS = get(groot, 'MonitorPositions')와 같이 변수에 담아서 사용할 수 있습니다.


속성 획득(예시2): 구조체(struct) 접근 사용

>> MONITOR = groot ;
>> MONITOR_POS = MONITOR.MonitorPositions

점을 붙여서 사용하는 이와 같은 형태를 구조체(struct)라고 합니다. 구조체(struct)는 여러 종류의 데이터를 묶어둔 큰 몸체라고 생각하시면 좋습니다.

우선 groot은 임시 객체이기 때문에 뒤에 점을 붙여서 사용하기 어렵다고 생각하세요. groot을 구조체로 다룰 때는 다른 변수에 잠시 옮겨담는 것이 바람직합니다. 예시에서는 MONITOR라는 변수에 옮겨담았습니다.

구조체(struct)는 하위항목에 접근할 때, 한 단계 아래로 들어가겠다는 의미로 점을 붙입니다. 톡(.) 톡(.) 노크를 하는 모습을 떠올려 보세요.

=> MONITOR.MonitorPositions는 MONITOR에서 한 단계 아래로 들어가서 그곳에 있는 MonitorPositions라는 변수에 접근합니다. 예시처럼 속성 값을 변수에 담아서 사용하여도 되고, 또는 굳이 변수를 추가로 생성할 필요 없이 곧바로 MONITOR.MonitorPositions를 타이핑하여 사용해도 됩니다.

단, 예시1과 달리 문자열이 아니라 변수명이기 때문에 반드시 대소문자를 구분하여야 합니다. [1]


gcf[편집]

>> get( gcf )

gca[편집]

>> get( gca )
  • 축 라벨 설정하기
    XTick, YTick, ZTick
    XTickLabel, YTickLabel, ZTickLabel

기타 제어 명령어[편집]

(참고: 핸들 값이란?)
핸들링을 위하여 사용하는 고유번호. 이곳에 설명을 추가해주십시오.

figure[편집]

clf/cla[편집]

close[편집]

axes[편집]

마우스로 다루기[편집]

이곳에 내용과 그림을 첨부하여 주십시오.

각주[편집]

  1. 첫 글자는 대문자고, 단어가 이어지는 부분만 대문자로 쓰이는 규칙이 적용되어 있음. 규칙은 Upper camel case convention을 따름.