findobj

Найдите графические объекты с определенными свойствами

Синтаксис

findobj
h = findobj
h = findobj ('PropertyName', PropertyValue...)
h = findobj ('PropertyName', PropertyValue, '-logicaloperator', 'PropertyName', PropertyValue...)
h = findobj ('-regexp', 'PropertyName', 'regexp'...)
h = findobj ('-свойство', 'PropertyName')
h = findobj (objhandles...)
h = findobj (objhandles, '-глубина', d...)
h = findobj (objhandles, 'плоский', 'PropertyName', PropertyValue...)

Описание

findobj возвращает указатели корневого объекта и всех его потомков, не присваивая результат переменной.

h = findobj возвращает указатели корневого объекта и всех его потомков.

h = findobj('PropertyName',PropertyValue,...) возвращает указатели всех графических объектов, имеющих свойство PropertyName, набор к значению PropertyValue. Можно задать больше чем одну пару свойства/значения, в этом случае, findobj возвращает только те объекты, имеющие все заданные значения.

h = findobj('PropertyName',PropertyValue,'-logicaloperator', 'PropertyName',PropertyValue,...) применяет логический оператор к соответствию значения свойства. Возможные значения для-logicaloperator:

  • -and

  • -or

  • xor

  • -not

Для получения дополнительной информации о логических операторах смотрите Логические операции.

h = findobj('-regexp','PropertyName','regexp',...) совпадает с объектами с помощью регулярных выражений, как будто значение вас передало свойство PropertyName функции regexp как

regexp(PropertyValue,'regexp')
Если соответствие происходит, findobj возвращает указатель на объект. Смотрите, что regexp функционирует для получения информации о том, как MATLAB использует регулярные выражения. Опция '-regexp' не работает на все типы свойств.

h = findobj('-property','PropertyName') находит все объекты, имеющие заданное свойство.

h = findobj(objhandles,...) ограничивает поиск объектами, перечисленными в objhandles и их потомках.

h = findobj(objhandles,'-depth',d,...) задает глубину поиска. Аргумент d глубины управляет сколько уровней под указателями в objhandles пересечения MATLAB. Задайте d как inf, чтобы получить поведение по умолчанию всех уровней. Задайте d как 0, чтобы получить то же поведение как использование аргумента flat.

h = findobj(objhandles,'flat','PropertyName',PropertyValue,...) ограничивает поиск теми объектами, перечисленными в objhandles, и не ищет потомков.

findobj возвращает ошибку, если указатель относится к несуществующему графическому объекту.

findobj правильно совпадает с любым легальным значением свойства. Например,

findobj('Color','r')
находит все объекты, имеющие набор свойств Color к red, r или [1 0 0].

Когда графический объект является потомком больше чем одного объекта, идентифицированного в objhandles, MATLAB ищет объект каждый раз, когда findobj сталкивается со своим указателем. Поэтому неявные ссылки на графический объект могут привести к нескольким возвратам его указателя.

Примечание

findobj не возвращает графические объекты, которые имеют набор свойств HandleVisibility к 'off'. Для получения дополнительной информации см. описание свойства HandleVisibility.

Примеры

Найдите все объекты линии в текущей системе координат:

h = findobj(gca,'Type','line')

Найдите все объекты, устанавливающие Label на 'foo' и набор свойств String к 'bar':

h = findobj('Label','foo','-and','String','bar');

Найдите все объекты, свойство String которых не является 'foo' и не является 'bar':

h = findobj('-not','String','foo','-not','String','bar');

Найдите все объекты, имеющие набор свойств String к 'foo' и набор свойств Tag к 'button one' и чьим свойством Color не является 'red' или 'blue':

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

Найдите все объекты, для которых вы присвоили значение свойству Tag (то есть, значение не является пустым символьным вектором ''):

h = findobj('-regexp','Tag','[^'']')

Найдите все дочерние элементы текущей фигуры, которые имеют их набор свойств BackgroundColor к определенному оттенку серого ([.7 .7 .7]). Этот оператор также ищет текущую фигуру для соответствующей пары значения свойства.

h = findobj(gcf,'-depth',1,'BackgroundColor',[.7 .7 .7])

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

Была ли эта тема полезной?