exponenta event banner

findall

Поиск всех графических объектов

Описание

пример

h = findall(objhandles) возвращает графические объекты в objhandles и всех их потомков. В отличие от findobj функция, findall возвращает объекты, даже если HandleVisibility свойство имеет значение 'off'.

пример

h = findall(objhandles,prop1,value1,...,propN,valueN) возвращает дескрипторы всех объектов в иерархии, для которых заданы указанные свойства. Например, h = findall(gcf,'Type','text',Color','r') возвращает все текстовые объекты текущего рисунка, имеющие красный цвет.

Примеры

свернуть все

Создайте три фигуры. Установите HandleVisibility свойство последней фигуры для 'off'.

f1 = figure;
f2 = figure;
f3 = figure('HandleVisibility','off');

Отображение количества видимых или скрытых дескрипторов в иерархии графических объектов. Результат может отличаться от показанного.

h1 = findall(groot);
disp(numel(h1))
     4

Найти все видимые или скрытые фигуры.

h2 = findall(groot,'Type','figure')
h2 = 
  3x1 Figure array:

  Figure    (3)
  Figure    (2)
  Figure    (1)

Если вы пытаетесь найти цифры с помощью findobj функция, MATLAB ® возвращает толькоf1 и f2.

h3 = findobj('Type','figure')
h3 = 
  2x1 Figure array:

  Figure    (2)
  Figure    (1)

Text объекты внутри фигуры имеют скрытые маркеры перемещения. Использовать findall для возврата этих скрытых дескрипторов.

Создайте фигуру с помощью графика. Затем создайте метку для оси X.

plot(1:10)
txt = xlabel('My x-axis label');

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

Убедитесь, что HandleVisibility свойство на txt имеет значение 'off'.

txt.HandleVisibility
ans = 
'off'

Использовать findall для возврата Text объект для метки оси X.

h1 = findall(gcf,'Type','text')
h1 = 
  Text (My x-axis label) with properties:

                 String: 'My x-axis label'
               FontSize: 11
             FontWeight: 'normal'
               FontName: 'Helvetica'
                  Color: [0.1500 0.1500 0.1500]
    HorizontalAlignment: 'center'
               Position: [5.5000 0.5222 -1]
                  Units: 'data'

  Show all properties

Потому что Text объект скрыт, вы не можете найти его с помощью findobj функция.

h2 = findobj(gcf,'Type','text')
h2 = 
  0x0 empty GraphicsPlaceholder array.

Использовать findall чтобы вернуть все Text объекты или Text объекты с определенными свойствами.

Создайте фигуру с помощью графика. Затем промаркируйте оси и добавьте к ним заголовок. Установите синий цвет заголовка.

plot((1:10).^2)
xlabel('x')
ylabel('y')
title('y = x^2','Color','b')

Figure contains an axes. The axes with title y = x^2 contains an object of type line.

Вернуть все Text объекты на текущем рисунке.

h1 = findall(gcf,'Type','text')
h1 = 
  3x1 Text array:

  Text    (y = x^2)
  Text    (x)
  Text    (y)

Теперь верните весь синий Text объекты.

h2 = findall(gcf,'Type','text','Color','b')
h2 = 
  Text (y = x^2) with properties:

                 String: 'y = x^2'
               FontSize: 11
             FontWeight: 'bold'
               FontName: 'Helvetica'
                  Color: [0 0 1]
    HorizontalAlignment: 'center'
               Position: [5.5000 100.8017 1.4211e-14]
                  Units: 'data'

  Show all properties

Входные аргументы

свернуть все

Объекты для поиска, заданные как массив графических объектов. findall поиск объектов во входном массиве objhandles и все их потомки в иерархии графических объектов.

Пример: h = findall(groot) возвращает все видимые и скрытые дескрипторы в иерархии графических объектов.

Имя свойства, указанное как вектор символа или скаляр строки. Дополнительные сведения см. в разделе Свойства графического объекта.

Пример: h = findall(gcf,'Type','text') возвращает все объекты текущего рисунка, Type свойство имеет значение 'text'.

Значение свойства, указанное как скаляр или массив.

Совет

  • Настройка поиска с помощью findall, вы можете использовать objhandles за которыми следуют входные комбинации из findobj функция. Например:

    h = findall(groot,prop1,value1,'-not',prop2,value2,'-property',prop3)
    

Представлен до R2006a