주요 콘텐츠

특수 객체 식별자

R2026b

특수 객체에 대한 핸들 가져오기

MATLAB®은 중요한 객체 핸들이 필요할 때마다 가져올 수 있도록 이러한 핸들을 반환하는 함수를 제공합니다.

이러한 객체에는 다음이 포함됩니다.

  • 현재 Figure — 그래픽스 명령의 현재 대상인 Figure의 핸들입니다.

  • 현재 좌표축 — 그래픽스 명령의 대상인 현재 Figure에 포함된 좌표축의 핸들입니다.

  • 현재 객체 — 선택된 객체의 핸들입니다.

  • 콜백 객체 — 콜백이 실행되고 있는 객체의 핸들입니다.

  • 콜백 Figure — 콜백 객체의 부모인 Figure의 핸들입니다.

현재 Figure, 좌표축 및 객체

MATLAB 그래픽스에서 중요한 개념은 현재 객체가 된다는 것입니다. 현재 객체가 된다는 것은 어떤 유형의 객체에 영향을 미치는 임의의 동작에 대해 해당 객체가 그 대상이 됨을 의미합니다. 특정 시점에 현재로 지정되는 객체에는 다음 세 가지가 있습니다.

  • 현재 Figure는 그래픽스 출력을 받도록 지정된 창입니다.

  • 현재 좌표축은 플로팅 함수가 그래프를 표시하는 좌표축입니다.

  • 현재 객체는 가장 최근에 생성되거나 선택된 객체입니다.

MATLAB은 이러한 객체에 대응되는 세 개의 핸들을 선조의 대응 속성에 저장합니다.

다음 속성을 사용하여 다음과 같은 주요 객체의 핸들을 가져올 수 있습니다.

hRoot = groot;
hFigure = hRoot.CurrentFigure;
hAxes = hFigure.CurrentAxes;
hobj = hFigure.CurrentObject;

편의 함수

다음 명령은 속성 쿼리에 사용할 수 있는 축약 표기법입니다.

  • gcf — 루트 CurrentFigure 속성의 값을 반환하거나 현재 Figure가 없을 경우 Figure를 생성합니다. HandleVisibility 속성이 off로 설정된 Figure는 현재 Figure가 될 수 없습니다.

  • gca — 현재 Figure의 CurrentAxes 속성값을 반환하거나 현재 좌표축이 없을 경우 좌표축을 생성합니다. HandleVisibility 속성이 off로 설정된 좌표축은 현재 좌표축이 될 수 없습니다.

  • gco — 현재 Figure의 CurrentObject 속성값을 반환합니다.

다음 명령을 객체 핸들을 필요로 하는 함수에 대한 입력 인수로 사용합니다. 예를 들어, line 객체를 클릭한 후 gco를 사용하여 set 명령에 대한 핸들을 지정할 수 있습니다.

set(gco,'Marker','square')

또는 axes 객체를 클릭하여 axes 속성을 설정할 수 있습니다.

set(gca,'Color','black')

현재 좌표축에 포함된 모든 그래픽 객체의 핸들을 가져올 수 있습니다(숨겨진 핸들은 예외임).

h = get(gca,'Children');

그런 다음 객체 유형을 확인할 수 있습니다.

get(h,'Type')
ans = 
      'text'
      'patch'
      'surface'
      'line'

gcf와 gca가 현재 Figure 및 axes 핸들을 간단히 가져올 수 있는 방법을 제공하기는 하지만 코드 파일에서는 그다지 유용하지 않습니다. 특히, 코드가 MATLAB을 기반으로 하는 애플리케이션의 일부여서 예측할 수 없는 사용자 동작에 의해 이러한 값이 변경될 수 있는 경우에는 더욱 그렇습니다.

사용자가 보호하고자 하는 그래픽스 객체의 핸들에 액세스를 방지하는 방법에 대한 자세한 내용은 Figure와 좌표축에 대한 액세스 방지하기 항목을 참조하십시오.

콜백 객체 및 콜백 Figure

콜백을 정의하는 객체나, 콜백이 실행되고 있는 객체가 포함된 Figure에 대한 정보를 콜백 함수에서 필요로 하는 경우가 종종 있습니다. 이러한 객체를 가져오려면 다음과 같은 편의 함수를 사용하십시오.

  • gcbo — 루트 CallbackObject 속성의 값을 반환합니다. 이 속성에는 콜백이 실행되고 있는 객체의 핸들이 포함됩니다. gcbo는 콜백 객체를 포함하는 Figure의 핸들을 선택적으로 반환합니다.

  • gcbf — 콜백 객체를 포함하는 Figure의 핸들을 반환합니다.

MATLAB은 CallbackObject 속성의 값을 현재 실행 중인 콜백과 동기화된 상태로 유지합니다. 특정 콜백이 실행 중인 콜백을 중단하는 경우 MATLAB은 CallbackObject 속성의 값을 업데이트합니다.

CreateFcn 및 DeleteFcn에 대한 콜백 함수를 작성할 때는 항상 gcbo를 사용하여 콜백 객체를 참조합니다.

콜백 함수를 작성하는 방법에 대한 자세한 내용은 그래픽스 객체에 대한 콜백 만들기 항목을 참조하십시오.