sbioselect

Ищите объекты с заданными ограничениями

Синтаксис

Out = sbioselect('PropertyName', PropertyValue)
Out = sbioselect('Where', 'PropertyName', 'Condition', PropertyValue)
Out = sbioselect(Obj, 'PropertyName', PropertyValue)
Out = sbioselect(Obj, 'Type', 'TypeValue', 'PropertyName', PropertyValue)
Out = sbioselect(Obj, 'Where', 'PropertyName', 'Condition', PropertyValue)
Out = sbioselect(Obj, 'Where', 'PropertyNameCondition', 'PropertyNamePattern', 'Condition', PropertyValue)
Out = sbioselect(Obj, 'Where', 'PropertyName1', 'Condition1', PropertyValue1, 'Where', 'PropertyName2', 'Condition2', PropertyValue2,...)
Out = sbioselect(Obj, 'Where', 'PropertyName1', 'Condition1', PropertyValue1,Bool_Operator, 'Where', 'PropertyName2', 'Condition2', PropertyValue2,...)
Out = sbioselect(Obj, 'Depth', DepthValue,...)

Аргументы

OutОбъект или массив объектов, возвращенных sbioselect функция. Out может содержать смесь типов объектов (например, разновидности и параметры), в зависимости от выбора, который вы задаете.

Если PropertyValue массив ячеек, затем функция возвращает все объекты со свойством 'PropertyName' это совпадает с любым элементом PropertyValue.

ObjSimBiology® объект или массив объектов искать. Если объект не задан, sbioselect ищет корень.
PropertyNameЛюбое свойство объекта ищется.
PropertyValueЗадайте PropertyValue включать в критерии выбора.
TypeValueТип объекта включать в выбор, например, sbiomodel, species, reaction, или kineticlaw.
ConditionУсловие поиска. См. таблицу в соответствии с Описанием для списка условий.
PropertyNameConditionУсловие поиска, которое применяется только к свойству имени. См., что таблица перечисляет “Условия для Имен” ниже.
PropertyNamePatternВектор символов или строка раньше выбирали имя свойства согласно условию, наложенному PropertyNameCondition.
DepthValueЗадайте номер глубины, чтобы искать. Верные номера являются положительными целочисленными значениями и inf. Если DepthValue isinf, sbioselect поисковые запросы Obj и все его дочерние элементы. Если DepthValue 1, sbioselect только поисковые запросы Obj и не его дочерние элементы. По умолчанию, DepthValue isinf.

Описание

sbioselect поиски объектов с заданными ограничениями.

Out = sbioselect('PropertyName', PropertyValue) ищет корневой объект (включая все объекты модели, содержавшие полностью, возражают), и возвращает объекты с именем свойства (PropertyName) и значение свойства (PropertyValue) содержавший полностью возражают.

Out = sbioselect('Where', 'PropertyName', 'Condition', PropertyValue) ищет корневой объект и находит объекты, которые имеют имя свойства (PropertyName) и значение (PropertyValue) это совпадает с условием (Condition).

Out = sbioselect(Obj, 'PropertyName', PropertyValue) возвращает объекты с именем свойства (PropertyName) и значение свойства (PropertyValue) найденный в любом объекте (Obj). Если имя свойства в паре значения свойства содержит любого '?' или '*', затем имя автоматически интерпретировано как выражение с подстановочными знаками, эквивалентное где пункт ('Where', 'wildcard', 'PropertyName', '==', PropertyValue).

Out = sbioselect(Obj, 'Type', 'TypeValue', 'PropertyName', PropertyValue) находит объекты типа (TypeValue), с именем свойства (PropertyName) и значение свойства (PropertyValue) найденный в любом объекте (Obj). TypeValue тип объекта SimBiology, который будет включен в выбор, например, species, reaction, или kineticlaw.

Out = sbioselect(Obj, 'Where', 'PropertyName', 'Condition', PropertyValue) находит объекты, которые имеют имя свойства (PropertyName) и значение (PropertyValue) то соответствие условие (Condition).

Если вы ищете значение свойства вектора символов, не задавая условие, необходимо использовать тот же формат в качестве get возвращается. Например, если get возвращает Name как 'MyObject', sbioselect не найдет объект с Name значение свойства 'myobject'. Поэтому для этого примера, необходимо задать:

modelObj = sbioselect ('Name', 'MyObject')

Вместо этого если вы используете условие, можно задать:

modelObj = sbioselect ('Where', 'Name', '==i', 'myobject')
Таким образом условия позволяют вам управлять спецификой своего выбора.

sbioselect поиски объектов модели на корне в обоих случаях.

Out = sbioselect(Obj, 'Where', 'PropertyNameCondition', 'PropertyNamePattern', 'Condition', PropertyValue) находит объекты с именем свойства, которое совпадает с шаблоном в (PropertyNamePattern) с условием (PropertyNameCondition) и совпадает со значением (PropertyValue) с условием (Condition). Используйте этот синтаксис, когда это необходимо, условия поиска и на именах свойства и на значениях свойств.

Условия, с примерами имен свойства и соответствующими примерами значений свойств, которые можно использовать, перечислены в следующих таблицах. Эта таблица показывает вас условия для числовых свойств.

Условия для числовых свойствСинтаксис в качестве примера
==

Поиск в объекте модели (modelObj), и объекты возвращаемого параметра, которые имеют Value равняйтесь 0.5. sbioselect возвращает объекты параметра, потому что только объекты параметра имеют свойство под названием Value.

parameterObj = sbioselect (modelObj,...
 'Where', 'Value', '==', 0.5)
В случае ==, это эквивалентно исключению условия как показано:
parameterObj = sbioselect (modelObj,...
'Value', 0.5)

Поиск в объекте модели (modelObj), и объекты возвращаемого параметра, которые имеют ConstantValue false (непостоянные параметры).

parameterObj = sbioselect (modelObj,...
 'Where', 'ConstantValue', '==', false)

~=Поиск в объекте модели (modelObj), и объекты возвращаемого параметра, которые не имеют Value равняйтесь 0.5.
parameterObj = sbioselect (modelObj,...
 'Where', 'Value', '~=', 0.5)
>,<,>=,<=

Поиск в объекте модели (modelObj), и возвратите объекты разновидностей, которые имеют начальную сумму (InitialAmount) больше, чем 50.

speciesObj = sbioselect (modelObj, ...
 'Where', 'InitialAmount', '>', 50)

Поиск в объекте модели (modelObj), и возвратите объекты разновидностей, которые имеют начальную сумму (InitialAmount) меньше чем или равный 50.

speciesObj = sbioselect (modelObj,...
 'Where', 'InitialAmount', '<=', 50)

between

Поиск в объекте модели (modelObj), и возвратите объекты разновидностей, которые имеют начальную сумму (InitialAmount) между 200 и 300.

speciesObj = sbioselect (modelObj,...
 'Where', 'InitialAmount',...
 'between', [200 300])

~betweenПоиск в объекте модели (modelObj), и возвратите объекты разновидностей, которые имеют начальную сумму (InitialAmount) это не между 200 и 300.
speciesObj = sbioselect (modelObj,...
 'Where', 'InitialAmount',...
 '~between', [200 300])
equal_and_same_type
Подобно ==, но кроме того требует, чтобы значение свойства имело тот же тип.

Поиск в объекте модели (modelObj), и возвратите все объекты, содержащие свойство типа double и значение равняется 0. (Используя '==' также выбрал бы объекты, содержащие свойство со значением лжи.)

zeroObj = sbioselect(modelObj, ...
 'Where', '*', 'equal_and_same_type', 0);

unequal_and_same_type
Подобно ~=, но кроме того требует, чтобы значение свойства имело тот же тип.

Выберите все объекты, содержащие свойство, типа double и значение, не равное 0. (Используя '~=' также выбрал бы объекты, содержащие свойство со значением истины.)

nonzeroObj = sbioselect(modelObj, ...
'Where', '*', 'unequal_and_same_type', 0);

Следующая таблица показывает вам условия для свойства имени или для свойств, значения которых являются векторами символов.

Условия для именСинтаксис в качестве примера
==

Поиск в объекте модели (modelObj), и возвратите объекты разновидностей, названные 'Glucose'.

speciesObj = sbioselect (modelObj,...
 'Type', 'species', 'Where',...
 'Name', '==', 'Glucose')

~=

Поиск в объекте модели (modelObj), и возвратите объекты разновидностей, которые не называют 'Glucose'.

speciesObj = sbioselect (modelObj,...
 'Type', 'species', 'Where',...
 'Name', '~=', 'Glucose')

==i

То же самое как ==; кроме того, это является нечувствительным к регистру.

~=i

Поиск в объекте модели (modelObj), и возвратите объекты разновидностей, которые не называют 'Glucose''IgnoringCase' .

speciesObj = sbioselect (modelObj,...
 'Type', 'species', 'Where',...
 'Name', '~=i', 'glucose')

regexp. Выражения поддержек, поддержанные функциями regexp и regexpi.

Поиск в объекте модели (modelObj), и возвратите объекты, которые имеют 'ese' или 'ase' где угодно в имени.

Obj = sbioselect (modelObj, 'Where',...
 'Name', 'regexp', '[ea]se')

Поиск в корне, и возвращает объекты, которые имеют kinase где угодно в имени.

Obj = sbioselect ('Where',...
 'Name', 'regexp', 'kinase')
Обратите внимание на то, что этот запрос мог привести к смеси типов объектов (например, разновидности и параметры).

regexpi

То же самое как regexp; кроме того, это является нечувствительным к регистру.

~regexp

Поиск в объекте модели (modelObj), и возвратите объекты, которые не имеют kinase где угодно в имени.

Obj = sbioselect (modelObj, 'Where',...
 'Name', '~regexp', 'kinase')

~regexpi

То же самое как ~regexp; кроме того, это является нечувствительным к регистру.

wildcard

Поддержки DOS-style подстановочные знаки ('?'соответствия любой отдельный символ, '*'соответствия любое количество символов и шаблон должны совпадать с целым вектором символов). Смотрите regexptranslate для получения дополнительной информации.

wildcardi

То же самое как wildcard; кроме того, это является нечувствительным к регистру.

~wildcard

Поиск в объекте модели (modelObj), и возвратите объекты, которые имеют имена, которые не начинаются с kin*.

Obj = sbioselect (modelObj, 'Where',...
 'Name', '~wildcard', 'kin*')

~wildcardi

То же самое как ~wildcard; кроме того, это является нечувствительным к регистру.

Используйте тип условия function для любого свойства. Заданное значение должно быть указателем на функцию, который, когда применено значение свойства, возвращает boolean, указывающий, существует ли соответствие. Следующая таблица показывает пример использования function.

УсловиеСинтаксис в качестве примера
'function'

Поиск в объекте модели и возвращает объекты реакции чей Stoichiometry свойство содержит заданную стехиометрию.

Out = sbioselect(modelObj, 'Where',...
'Stoichiometry', 'function',...
 @(x)any(x>2))
Выберите все объекты с числовым значением, которое является четным.
iseven = @(x) isnumeric(x)...
 && isvector(x) && mod(x, 2) == 0; 
evenValuedObj = sbioselect(modelObj, ...
'where', 'Value', 'function', iseven); 

Условие 'contains' может использоваться только для тех свойств, значения которых являются массивом объектов SimBiology. Следующая таблица показывает пример использования contains.

УсловиеСинтаксис в качестве примера
'contains'

Поиск в объекте модели и возвращает объекты реакции чей Reactant свойство содержит заданные разновидности.

Out = sbioselect(modelObj, 'Where',...
'Reactants', 'contains',...
 modelObj.Species(1))

Out = sbioselect(Obj, 'Where', 'PropertyName1', 'Condition1', PropertyValue1, 'Where', 'PropertyName2', 'Condition2', PropertyValue2,...) находит объекты содержавшими в Obj это совпадает со всеми заданными условиями.

Можно объединить любое количество имени свойства / пары значения свойства и условия в sbioselect команда.

Out = sbioselect(Obj, 'Where', 'PropertyName1', 'Condition1', PropertyValue1,Bool_Operator, 'Where', 'PropertyName2', 'Condition2', PropertyValue2,...) находит объекты содержавшими в Obj это совпадает со всеми заданными условиями. Векторы поддерживаемого символа для Bool_Operator следующие.

'and'Верный, если ('Where', 'PropertyName1', 'Condition1', PropertyValue1) и ('Where', 'PropertyName2', 'Condition2', PropertyValue2) оба верны.
'or'Верный, если любой ('Where', 'PropertyName1', 'Condition1', PropertyValue1) или ('Where', 'PropertyName2', 'Condition2', PropertyValue2) верно.
'xor'Верный, если точно один из ('Where', 'PropertyName1', 'Condition1', PropertyValue1) или ('Where', 'PropertyName2', 'Condition2', PropertyValue2) верно.
'not'Верный, если ('Where', 'PropertyName1', 'Condition1', PropertyValue1) верно и ('Where', 'PropertyName2', 'Condition2', PropertyValue2) не верно.

Поддерживаются составные выражения с несколькими булевыми операторами. Приоритет операторов выполняет приказ операций для булевой алгебры not –> and –> xor –> or.

Out = sbioselect(Obj, 'Depth', DepthValue,...) находит объекты с помощью поисковой глубины модели DepthValue.

Примечание

Порядок результатов sbioselect не гарантируется. Следовательно, не рекомендуется зависеть от порядка результатов.

Примеры

свернуть все

Импортируйте модель.

modelObj = sbmlimport('oscillator');

Найдите и возвратите объект под названием pA.

pA = sbioselect(modelObj, 'Name', 'pA')
pA = 
   SimBiology Species Array

   Index:    Compartment:    Name:    Value:    Units:
   1         unnamed         pA       100             

Найдите и возвратите объекты разновидностей чей Name запускается с p и имейте A или B как следующая буква на имя.

speciesObjs = sbioselect(modelObj, 'Type', 'species', 'Where',...
                        'Name', 'regexp', '^p[AB]')
speciesObjs = 
   SimBiology Species Array

   Index:    Compartment:    Name:        Value:    Units:
   1         unnamed         pA           100             
   2         unnamed         pB           0               
   3         unnamed         pA_OpB1      0               
   4         unnamed         pB_OpC1      0               
   5         unnamed         pA_OpB_pA    20              
   6         unnamed         pA_OpB2      0               
   7         unnamed         pB_OpC2      0               
   8         unnamed         pB_OpC_pB    0               

Найдите массив ячеек. Отметьте, как значения массива ячеек должны быть заданы в другом массиве ячеек.

modelObj.Species(2).UserData = {'a' 'b'}; 
Obj = sbioselect(modelObj, 'UserData', {{'a' 'b'}})
Obj = 
   SimBiology Species Array

   Index:    Compartment:    Name:    Value:    Units:
   1         unnamed         pB       0               

Найдите и возвратите объекты, которым не установили их модули.

unitlessObj = sbioselect(modelObj, 'Where', 'wildcard', '*Units', '==', '');

В качестве альтернативы можно сделать следующее.

unitlessObj = sbioselect(modelObj, '*Units', '');

Смотрите также

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