특정 속성을 가진 그래픽스 객체 찾기
페이지 내 모두 축소
구문
h = findobj
h = findobj(prop,value)
h = findobj('-not',prop,value)
h = findobj(prop1,value1,oper,prop2,value2)
h = findobj('-regexp',prop,expr)
h = findobj('-property',prop)
h = findobj(prop1,value1,...,propN,valueN)
h = findobj(objhandles,___)
h = findobj(objhandles,'-depth',d,___)
h = findobj(objhandles,'flat',___)
설명
h = findobj
는 그래픽스 root 객체와 그래픽스 root 객체의 모든 후손을 반환합니다.
예제
h = findobj(prop,value)
는 계층 구조에서 속성 prop
가 value
로 설정된 모든 객체를 반환합니다.
예제
h = findobj('-not',prop,value)
는 지정된 속성이 지정된 값으로 설정되지 않은 모든 객체를 반환합니다.
예제
h = findobj(prop1,value1,oper,prop2,value2)
는 prop,value
쌍에 논리 연산자 oper
을 적용합니다. 예를 들어, h = findobj('LineStyle','--','-and','Marker','o')
는 파선 스타일을 가지면서 원형 마커를 갖는 객체를 모두 반환합니다.
예제
h = findobj('-regexp',prop,expr)
은 정규 표현식을 사용하여 특정 속성값을 갖는 객체를 찾습니다. 해당 정규 표현식을 충족하는 속성값을 가진 객체가 반환됩니다.
예제
h = findobj('-property',prop)
는 지정된 속성을 갖는 모든 객체를 반환합니다.
예제
h = findobj(prop1,value1,...,propN,valueN)
은 계층 구조에서 지정된 속성이 지정된 값으로 설정된 모든 객체를 반환합니다. prop,value
쌍을 위에 열거된 구문의 다른 입력 인수 조합으로 바꿀 수 있습니다. 예를 들어, h = findobj(prop1,value1,'-not',prop2,value2,'-property',prop3)
은 다음 세 가지 조건을 충족하는 모든 객체를 반환합니다.
객체의
prop1
속성값이value1
로 설정됨.객체의
prop2
속성값이value2
로 설정되지 않음.객체가
prop3
속성을 가짐.
예제
h = findobj(objhandles,___)
는 objhandles
에 나열된 객체와 각 객체의 모든 후손으로 검색을 제한합니다. 위에 열거된 모든 구문에 대해 검색을 제한할 수 있습니다.
예제
h = findobj(objhandles,'-depth',d,___)
는 objhandles
에 나열된 객체이고 그래픽스 객체 계층 구조에서 최대 d
수준까지의 후손 객체로 검색을 제한합니다.
예제
h = findobj(objhandles,'flat',___)
은 objhandles
에 나열된 객체로 검색을 제한합니다. 후손 객체는 검색하지 않습니다. 'flat'
옵션을 사용하는 것은 '-depth'
옵션을 d = 0
과 함께 사용하는 것과 동일합니다.
예제
예제
모두 축소
모든 그래픽스 객체 찾기
라이브 스크립트 열기
모든 기존 Figure를 삭제한 다음 임의 난수 값의 플롯을 만듭니다.
close allplot(rand(5))
그래픽스 root 객체와 그래픽스 root 객체의 모든 후손을 반환합니다.
h = findobj
h = 8x1 graphics array: Root Figure (1) Axes Line Line Line Line Line
모든 line 객체 찾기
라이브 스크립트 열기
모든 기존 Figure를 삭제한 다음 여러 선으로 구성된 플롯을 만듭니다.
close allplot(magic(4))
모든 line 객체를 반환합니다.
h = findobj('Type','line')
h = 4x1 Line array: Line Line Line Line
지정된 속성값을 가지는 객체 찾기
라이브 스크립트 열기
사용자 지정 색과 선 스타일을 갖는 9개의 사인파를 플로팅합니다.
x = linspace(0,7);y = ones(length(x),9);for i = 1:9 y(:,i) = sin(x-i/5)';endplot(x,y)colororder({'red','green','blue'})ax = gca;ax.LineStyleOrder = {'-','--',':'};
빨간색 실선을 반환합니다. 그런 다음 선의 두께를 변경합니다.
h = findobj('Color','red','LineStyle','-')
h = Line with properties: Color: [1 0 0] LineStyle: '-' LineWidth: 0.5000 Marker: 'none' MarkerSize: 6 MarkerFaceColor: 'none' XData: [0 0.0707 0.1414 0.2121 0.2828 0.3535 0.4242 0.4949 0.5657 0.6364 0.7071 0.7778 0.8485 0.9192 0.9899 1.0606 1.1313 1.2020 1.2727 1.3434 1.4141 1.4848 1.5556 1.6263 1.6970 1.7677 1.8384 1.9091 1.9798 2.0505 2.1212 ... ] (1x100 double) YData: [-0.1987 -0.1289 -0.0586 0.0121 0.0827 0.1529 0.2224 0.2907 0.3576 0.4226 0.4856 0.5462 0.6040 0.6588 0.7103 0.7582 0.8024 0.8426 0.8785 0.9101 0.9371 0.9594 0.9769 0.9896 0.9973 1.0000 0.9977 0.9905 0.9782 0.9611 ... ] (1x100 double) Use GET to show all properties
h.LineWidth = 2;
논리식을 사용하여 객체 찾기
라이브 스크립트 열기
여러 선으로 구성된 플롯을 만듭니다. 각 플롯에 대해 식별자를 지정합니다.
x = linspace(-1,1);y1 = x;plot(x,y1,'Tag','linear')hold ony2 = x.^2;plot(x,y2,'Tag','quadratic')y3 = exp(x);plot(x,y3,'Tag','exponential')y4 = sin(x);plot(x,y4,'Tag','sinusoidal')hold off
Tag
속성이 'linear'
로 설정되지 않은 모든 객체를 찾습니다.
h1 = findobj('-not','Tag','linear')
h1 = 6x1 graphics array: Root Figure (1) Axes Line (sinusoidal) Line (exponential) Line (quadratic)
Tag
속성이 'linear'
또는 'quadratic'
으로 설정되지 않은 모든 객체를 찾습니다.
h2 = findobj('-not',{'Tag','linear','-or','Tag','quadratic'})
h2 = 5x1 graphics array: Root Figure (1) Axes Line (sinusoidal) Line (exponential)
Tag
속성이 'linear'
또는 'quadratic'
으로 설정되지 않은 모든 line 객체를 찾습니다.
h3 = findobj('Type','line','-not',{'Tag','linear','-or','Tag','quadratic'})
h3 = 2x1 Line array: Line (sinusoidal) Line (exponential)
'-and'
와 중괄호를 사용하여 위 명령문의 가독성을 높입니다.
h4 = findobj({'Type','line'},'-and',{'-not',{'Tag','linear','-or','Tag','quadratic'}})
h4 = 2x1 Line array: Line (sinusoidal) Line (exponential)
정규 표현식을 사용하여 객체 찾기
라이브 스크립트 열기
3개의 선 플롯을 만들고 2개의 플롯에 식별자를 할당합니다.
x = linspace(-1,1);y1 = x;plot(x,y1)hold ony2 = x.^2;plot(x,y2,'Tag','Quadratic')y3 = exp(x);plot(x,y3,'Tag','Exponential')hold off
Tag
속성이 비어 있지 않은 모든 객체를 찾습니다.
h = findobj('-regexp','Tag','[^'']')
h = 2x1 Line array: Line (Exponential) Line (Quadratic)
지정된 속성을 갖는 모든 객체 찾기
라이브 스크립트 열기
4개의 값으로 구성된 벡터를 만듭니다. 선 플롯, 영역 플롯 및 막대 그래프를 사용하여 값을 표시합니다.
y = [1 5 6 3];subplot(3,1,1)plot(y)subplot(3,1,2)area(y)subplot(3,1,3)bar(y)
BaseValue
속성을 갖는 모든 객체를 반환합니다.
h = findobj('-property','BaseValue')
h = 2x1 graphics array: Bar Area
현재 좌표축에 있는 모든 line 객체 찾기
라이브 스크립트 열기
난수 값의 플롯을 만든 다음 현재 좌표축에 있는 모든 line 객체를 반환합니다.
plot(rand(5))
h = findobj(gca,'Type','line')
h = 5x1 Line array: Line Line Line Line Line
h
를 사용하여 첫 번째 Line
객체의 y 값을 쿼리합니다.
values = h(1).YData
values = 1×5 0.6557 0.0357 0.8491 0.9340 0.6787
현재 Figure에 있는 모든 객체 찾기
라이브 스크립트 열기
2개의 탭이 있는 Figure를 만듭니다. 탭마다 부모 컨테이너를 지정하여 각 탭에 좌표축을 추가합니다. 첫 번째 탭에 선을 플로팅하고 두 번째 탭에 곡면을 표시합니다.
figuretab1 = uitab('Title','Tab1');ax1 = axes(tab1);plot(ax1,1:10)tab2 = uitab('Title','Tab2');ax2 = axes(tab2);surf(ax2,peaks)
현재 Figure에 있는 모든 객체와 그 후손을 반환합니다.
h = findobj(gcf)
h = 8x1 graphics array: Figure (1) TabGroup Tab (Tab1) Tab (Tab2) Axes Axes Line Surface
검색 심도 제한하기
라이브 스크립트 열기
2개의 누적 서브플롯이 있는 Figure를 만듭니다.
subplot(2,1,1)x = linspace(0,10);y1 = sin(x);plot(x,y1)subplot(2,1,2)y2 = sin(5*x);plot(x,y2)
현재 Figure에 있는 모든 객체와 그 자식을 찾습니다.
h1 = findobj(gcf,'-depth',1)
h1 = 3x1 graphics array: Figure (1) Axes Axes
현재 Figure에 있는 모든 객체와 그래픽스 객체 계층 구조에서 최대 두 수준까지의 후손 객체를 찾습니다.
h2 = findobj(gcf,'-depth',2)
h2 = 5x1 graphics array: Figure (1) Axes Axes Line Line
'flat'
옵션을 사용하여 현재 Figure와 현재 좌표축으로 검색을 제한합니다.
h3 = findobj([gcf,gca],'flat')
h3 = 2x1 graphics array: Figure (1) Axes
입력 인수
모두 축소
prop
— 속성 이름
문자형 벡터 | string형 스칼라
속성 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 자세한 내용은 그래픽스 객체 속성 항목을 참조하십시오.
예: 'Tag'
예: 'Type'
value
— 속성값
스칼라 | 배열
속성값으로, 스칼라 또는 배열로 지정됩니다.
oper
— 논리 연산자
'-and'
(디폴트 값) | '-or'
| '-xor'
논리 연산자로, '-and'
, '-or'
또는 '-xor'
로 지정됩니다. 논리 연산자 우선 순위는 MATLAB® 우선 순위 규칙을 따릅니다. 자세한 내용은 연산자 우선 순위 항목을 참조하십시오.
연산자 우선 순위를 제어하려면 prop,value 쌍을 셀형 배열 내에서 그룹화하십시오. 예를 들어, Tag
속성이 'button one'
으로 설정되었고 Color
속성이 'red'
또는 'blue'
가 아닌 값으로 설정된 객체를 모두 찾습니다.
h = findobj('Tag','button one','-and', ... '-not',{'Color','red','-or','Color','blue'})
expr
— 정규 표현식
string형 배열 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열
정규 표현식으로, string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. expr
은 속성값에서 일치 여부를 확인할 패턴을 지정하는 문자, 메타문자, 연산자, 토큰 및 플래그를 포함할 수 있습니다. expr
은 속성값이 string형 또는 문자형 벡터인 경우에만 사용할 수 있습니다. 정규 표현식에 대한 자세한 내용은 regexp를 참조하십시오.
objhandles
— 검색될 객체
그래픽스 객체로 구성된 배열
검색될 객체로, 그래픽스 객체로 구성된 배열로 지정됩니다. '-depth'
또는 'flat'
옵션을 지정하지 않으면 findobj
는 입력 배열 objhandles
에 있는 객체와 그래픽스 객체 계층 구조의 모든 후손을 검색합니다.
d
— 검색 심도
음이 아닌 정수
검색 심도로, 입력 배열 objhandles에 지정된 객체 이하 어느 정도 수준으로 검색할지를 나타내는 음이 아닌 정수로 지정됩니다.
d = n
—objhandles
의 각 객체가 속한 계층 수준 이하n
개 수준에서 검색합니다.d = 0
—objhandles
의 객체가 속한 계층 수준에서만 검색합니다. 이는'flat'
옵션을 지정하는 것과 동일합니다.d = inf
—objhandles
의 객체가 속한 계층 수준 이하 모든 수준에서 검색합니다. 이는'-depth'
또는'flat'
옵션을 지정하지 않은 디폴트 검색과 동일합니다.
팁
객체의
HandleVisibility
속성이'off'
로 설정되면findobj
는 해당 그래픽스 객체나 그 후손 어떤 것도 반환하지 않습니다. 숨겨진 객체를 포함하여 계층 구조에 있는 모든 객체를 반환하려면 findall 함수를 사용하십시오.findobj
는 모든 올바른 속성값과 정확히 일치하는 객체를 검색합니다. 예를 들어, 다음 구문은Color
속성이red
,r
또는[1 0 0]
으로 설정된 객체를 모두 찾습니다.findobj('Color','r')
그래픽스 객체가 objhandles에서 식별된 여러 객체의 후손인 경우 MATLAB은
findobj
가 해당 핸들을 발견할 때마다 이 그래픽스 객체를 검색합니다. 따라서 그래픽스 객체에 대한 묵시적 참조로 해당 객체가 여러 번 반환될 수 있습니다.
버전 내역
R2006a 이전에 개발됨
참고 항목
copyobj | findall | findobj | gcf | gca | gcbo | gco | get | regexp | set | groot
도움말 항목
- 객체 찾기
- 그래픽스 객체 계층 구조
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom (English)
Contact your local office