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