copyobj
그래픽스 객체(Graphics Object)와 그 후손(Descendant) 복사
구문
new_handle = copyobj(h,p)
copyobj(___,'legacy')
설명
copyobj
는 그래픽스 객체의 복사본을 만들고 객체를 새 부모에 할당합니다.
새 부모는 복사된 객체에 적합해야 합니다. 예를 들어, axes는 Figure나 uipanel로만 복사될 수 있습니다. copyobj
는 자식도 복사합니다.
new_handle = copyobj(h,p)
는 h
가 식별하는 하나 이상의 그래픽스 객체를 복사하고 새 객체의 핸들 또는 새 객체로 구성된 배열을 반환합니다. 새 그래픽스 객체는 p
로 지정된 그래픽스 객체의 자식이 됩니다.
copyobj(___,'legacy')
는 객체 콜백 속성과 객체 응용 프로그램 데이터를 복사합니다. 이 동작은 MATLAB® 릴리스 R2014b 전의 copyobj
버전과 일치합니다.
복사되지 않는 항목
copyobj
는 제대로 동작하기 위해 원래 컨텍스트를 따르는 속성이나 객체는 복사하지 않습니다. 디폴트 상황별 메뉴가 있는 객체(예: legend, colorbar)는 새 객체에 대해 상황별 메뉴를 새로 만듭니다. Figure는 새 Figure에 대해 도구 모음과 메뉴를 새로 만듭니다.
copyobj
는 다음 항목을 복사하지 않습니다.
콜백 속성(
legacy
옵션을 사용할 경우 제외).객체에 대한 응용 프로그램 데이터(
legacy
옵션을 사용할 경우 제외).디폴트 상황별 메뉴를 정의하는 legend 객체, colorbar 객체, 기타 객체의 상황별 메뉴
디폴트 Figure 도구 모음과 메뉴.
yyaxis
함수와 함께 사용되는 axes 객체.axes 객체의
Interactions
속성.DataTipTemplate
속성을 갖는 객체(예:Line
객체,Scatter
객체,Surface
객체)의 이 속성.copyobj
에 대한 단일 호출에서 동일한 객체를 동일한 부모로 두 번 이상 복사할 수 없습니다.
MATLAB은 Parent
속성을 새 부모로 변경하고 새 객체에 새 핸들을 할당합니다.
예제
곡면을 다른 Figure에 있는 새 좌표축에 복사합니다.
h = surf(peaks);
colormap hsv
대상 Figure와 좌표축을 만듭니다.
fig = figure; ax = axes;
곡면을 새 좌표축에 복사하고 surface 속성이 아닌 속성을 설정합니다.
new_handle = copyobj(h,ax);
colormap(fig,hsv)
view(ax,3)
grid(ax,'on')
참고로, 곡면을 복사할 때 colormap
, view
, grid
는 복사되지 않습니다.
팁
h
와 p
는 스칼라 또는 벡터일 수 있습니다. 둘이 모두 벡터인 경우 길이가 같아야 하고, 출력 인수 new_handle
은 길이가 동일한 벡터여야 합니다. 이 경우 new_handle(i)
는 Parent
속성이 p(i)
로 설정된 h(i)
의 복사본입니다.
h
가 스칼라이고 p
가 벡터인 경우 h
는 p
의 요소인 각 부모에 한 번씩 복사됩니다. new_handle(i)
는 Parent
속성이 p(i)
로 설정된 h
의 복사본이며 length(new_handle)
은 length(p)
와 같습니다.
h
가 벡터이고 p
가 스칼라인 경우 각 new_handle(i)
는 Parent
속성이 p
로 설정된 h(i)
의 복사본입니다. new_handle
의 길이는 length(h)
와 같습니다.
참고
Legend나 colorbar를 복사할 때는 연관 좌표축을 복사해야 합니다.
UI를 프로그래밍할 때 CreateFcn
내에서 copyobj
또는 (copyobj
를 호출하는) textwrap
을 호출해서는 안 됩니다. uicontrol 객체 복사는 CreateFcn
을 반복적으로 발생시켜 재귀 제한 초과 후에 일련의 오류 메시지를 발생시킵니다.
버전 내역
R2006a 이전에 개발됨