exponenta event banner

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.

ObjОбъект SimBiology ® или массив объектов для поиска. Если объект не указан ,sbioselect выполняет поиск в корне.
PropertyNameЛюбое свойство искомого объекта.
PropertyValueОпределить PropertyValue для включения в критерии выбора.
TypeValueТип объекта для включения в выделенный фрагмент, например: sbiomodel, species, reaction, или kineticlaw.
ConditionУсловие поиска. Список условий см. в таблице в разделе Описание.
PropertyNameConditionУсловие поиска, применяемое только к свойству name. См. таблицу «Условия для имен» ниже.
PropertyNamePatternСимвольный вектор или строка, используемая для выбора имени свойства в соответствии с условием PropertyNameCondition.
DepthValueУкажите номер глубины для поиска. Допустимыми числами являются положительные целочисленные значения и inf. Если DepthValue является inf, sbioselect поиски Obj и всех его детей. Если DepthValue является 1, sbioselect только поиск Obj а не его детей. По умолчанию DepthValue является inf.

Описание

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 ('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. (Использование '==' также выбирает объекты, содержащие свойство со значением false.)

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

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

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

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

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

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

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

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

~=

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

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

==i

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

~=i

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

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 для любого свойства. Указанное значение должно быть дескриптором функции, который при применении к значению свойства возвращает логическое значение, указывающее, существует ли совпадение. В следующей таблице показан пример использования 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'True, если ( 'Where', 'PropertyName1','Condition1',PropertyValue1) и ( 'Where', 'PropertyName2','Condition2',PropertyValue2) являются истинными.
'or'True, если ( 'Where', 'PropertyName1','Condition1',PropertyValue1) или ( 'Where', 'PropertyName2','Condition2',PropertyValue2) имеет значение true.
'xor'True, если точно один из ( 'Where', 'PropertyName1','Condition1',PropertyValue1) или ( 'Where', 'PropertyName2','Condition2',PropertyValue2) имеет значение true.
'not'True, если ( 'Where', 'PropertyName1','Condition1',PropertyValue1) имеет значение true и ( '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