Main Content

findobj

특정 속성을 가진 그래픽스 객체 찾기

설명

예제

h = findobj는 그래픽스 root 객체와 그래픽스 root 객체의 모든 후손을 반환합니다.

예제

h = findobj(prop,value)는 계층 구조에서 속성 propvalue로 설정된 모든 객체를 반환합니다.

예제

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 all
plot(rand(5))

Figure contains an axes object. The axes object contains 5 objects of type line.

그래픽스 root 객체와 그래픽스 root 객체의 모든 후손을 반환합니다.

h = findobj
h = 
  8x1 graphics array:

  Root
  Figure    (1)
  Axes
  Line
  Line
  Line
  Line
  Line

모든 기존 Figure를 삭제한 다음 여러 선으로 구성된 플롯을 만듭니다.

close all
plot(magic(4))

Figure contains an axes object. The axes object contains 4 objects of type line.

모든 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)';
end
plot(x,y)

colororder({'red','green','blue'})
ax = gca;
ax.LineStyleOrder = {'-','--',':'};

Figure contains an axes object. The axes object contains 9 objects of type line.

빨간색 실선을 반환합니다. 그런 다음 선의 두께를 변경합니다.

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;

Figure contains an axes object. The axes object contains 9 objects of type line.

여러 선으로 구성된 플롯을 만듭니다. 각 플롯에 대해 식별자를 지정합니다.

x = linspace(-1,1);
y1 = x;
plot(x,y1,'Tag','linear')
hold on
y2 = 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

Figure contains an axes object. The axes object contains 4 objects of type line.

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 on
y2 = x.^2;
plot(x,y2,'Tag','Quadratic')
y3 = exp(x);
plot(x,y3,'Tag','Exponential')
hold off

Figure contains an axes object. The axes object contains 3 objects of type line.

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)

Figure contains 3 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type area. Axes object 3 contains an object of type bar.

BaseValue 속성을 갖는 모든 객체를 반환합니다.

h = findobj('-property','BaseValue')
h = 
  2x1 graphics array:

  Bar
  Area

난수 값의 플롯을 만든 다음 현재 좌표축에 있는 모든 line 객체를 반환합니다.

plot(rand(5))

Figure contains an axes object. The axes object contains 5 objects of type line.

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

2개의 탭이 있는 Figure를 만듭니다. 탭마다 부모 컨테이너를 지정하여 각 탭에 좌표축을 추가합니다. 첫 번째 탭에 선을 플로팅하고 두 번째 탭에 곡면을 표시합니다.

figure
tab1 = uitab('Title','Tab1');
ax1 = axes(tab1);
plot(ax1,1:10)

tab2 = uitab('Title','Tab2');
ax2 = axes(tab2);
surf(ax2,peaks)

Figure contains 2 axes objects and another object of type uitabgroup. Axes object 1 contains an object of type surface. Axes object 2 contains an object of type line.

현재 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 contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

현재 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

입력 인수

모두 축소

속성 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 자세한 내용은 그래픽스 객체 속성 항목을 참조하십시오.

예: 'Tag'

예: 'Type'

속성값으로, 스칼라 또는 배열로 지정됩니다.

논리 연산자로, '-and', '-or' 또는 '-xor'로 지정됩니다. 논리 연산자 우선 순위는 MATLAB® 우선 순위 규칙을 따릅니다. 자세한 내용은 연산자 우선 순위 항목을 참조하십시오.

연산자 우선 순위를 제어하려면 prop,value 쌍을 셀형 배열 내에서 그룹화하십시오. 예를 들어, Tag 속성이 'button one'으로 설정되었고 Color 속성이 'red' 또는 'blue'가 아닌 값으로 설정된 객체를 모두 찾습니다.

h = findobj('Tag','button one','-and', ...
    '-not',{'Color','red','-or','Color','blue'})

정규 표현식으로, string형 배열, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. expr은 속성값에서 일치 여부를 확인할 패턴을 지정하는 문자, 메타문자, 연산자, 토큰 및 플래그를 포함할 수 있습니다. expr은 속성값이 string형 또는 문자형 벡터인 경우에만 사용할 수 있습니다. 정규 표현식에 대한 자세한 내용은 regexp를 참조하십시오.

검색될 객체로, 그래픽스 객체로 구성된 배열로 지정됩니다. '-depth' 또는 'flat' 옵션을 지정하지 않으면 findobj는 입력 배열 objhandles에 있는 객체와 그래픽스 객체 계층 구조의 모든 후손을 검색합니다.

검색 심도로, 입력 배열 objhandles에 지정된 객체 이하 어느 정도 수준으로 검색할지를 나타내는 음이 아닌 정수로 지정됩니다.

  • d = nobjhandles의 각 객체가 속한 계층 수준 이하 n개 수준에서 검색합니다.

  • d = 0objhandles의 객체가 속한 계층 수준에서만 검색합니다. 이는 'flat' 옵션을 지정하는 것과 동일합니다.

  • d = infobjhandles의 객체가 속한 계층 수준 이하 모든 수준에서 검색합니다. 이는 '-depth' 또는 'flat' 옵션을 지정하지 않은 디폴트 검색과 동일합니다.

  • 객체의 HandleVisibility 속성이 'off'로 설정되면 findobj는 해당 그래픽스 객체나 그 후손 어떤 것도 반환하지 않습니다. 숨겨진 객체를 포함하여 계층 구조에 있는 모든 객체를 반환하려면 findall 함수를 사용하십시오.

  • findobj는 모든 올바른 속성값과 정확히 일치하는 객체를 검색합니다. 예를 들어, 다음 구문은 Color 속성이 red, r 또는 [1 0 0]으로 설정된 객체를 모두 찾습니다.

    findobj('Color','r')

  • 그래픽스 객체가 objhandles에서 식별된 여러 객체의 후손인 경우 MATLAB은 findobj가 해당 핸들을 발견할 때마다 이 그래픽스 객체를 검색합니다. 따라서 그래픽스 객체에 대한 암묵적 참조로 해당 객체가 여러 번 반환될 수 있습니다.

버전 내역

R2006a 이전에 개발됨