Поиск объектов с заданными ограничениями
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
,...)
| Объект или массив объектов, возвращенных sbioselect функция. может содержать смесь типов объектов (для примера, видов и параметров), в зависимости от выбранной вами выборки. Если |
| SimBiology® объект или массив объектов для поиска. Если объект не задан, sbioselect выполняет поиск по корню. |
| Любое свойство объекта, в котором выполняется поиск. |
| Задайте для включения в критерии выбора. |
| Тип объекта для включения в выбор, например sbiomodel , species , reaction , или kineticlaw . |
| Условие поиска. Список условий см. в таблице Описание (Description). |
PropertyNameCondition | Условие поиска, которое применяется только к свойству name. См. таблицу «Условия для имен» ниже. |
PropertyNamePattern | Вектор символов или строка, используемая для выбора имени свойства в соответствии с условием, накладываемым PropertyNameCondition . |
| Укажите номер глубины для поиска. Допустимые числа являются положительными целыми значениями и inf . Если является inf , sbioselect выполняет поиск и всех его детей. Если является 1 , sbioselect выполняет только поиск а не его детей. По умолчанию является 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
- тип объекта SimBiology, включаемый в выбор, например TypeValue
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
). Используйте этот синтаксис, когда вы хотите условия поиска как для имен свойства, так и для значений свойств.
Условия с примерами имен свойства и соответствующими примерами значений свойств, которые можно использовать, перечислены в следующих таблицах. В этой таблице показаны условия для числовых свойств.
Условия для числовых свойств | Синтаксис примера |
---|---|
== | Поиск в объекте модели ( parameterObj = sbioselect (modelObj,... 'Where', 'Value', '==', 0.5) == , это эквивалентно исключению условия как показано:parameterObj = sbioselect (modelObj,... 'Value', 0.5) Поиск в объекте модели ( parameterObj = sbioselect (modelObj,... 'Where', 'ConstantValue', '==', false) |
~= | Поиск в объекте модели (modelObj ) и возвращают объекты параметров, которые не имеют Value равно 0.5 .parameterObj = sbioselect (modelObj,... 'Where', 'Value', '~=', 0.5) |
> ,< ,>= ,<= | Поиск в объекте модели ( speciesObj = sbioselect (modelObj, ... 'Where', 'InitialAmount', '>', 50) Поиск в объекте модели ( speciesObj = sbioselect (modelObj,... 'Where', 'InitialAmount', '<=', 50) |
between | Поиск в объекте модели ( 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 | Подобно == , но в сложение требуется, чтобы значение свойства было того же типа. Поиск в объекте модели ( zeroObj = sbioselect(modelObj, ... 'Where', '*', 'equal_and_same_type', 0); |
unequal_and_same_type | Подобно ~= , но в сложение требуется, чтобы значение свойства было того же типа. Выберите все объекты, содержащие свойство type double и значение, не равное 0. (Использование nonzeroObj = sbioselect(modelObj, ... 'Where', '*', 'unequal_and_same_type', 0); |
В следующей таблице показаны условия для свойства name или свойств, значения которых являются векторами символов.
Условия для имен | Синтаксис примера |
---|---|
== | Поиск в объекте модели ( speciesObj = sbioselect (modelObj,... 'Type', 'species', 'Where',... 'Name', '==', 'Glucose') |
~= | Поиск в объекте модели ( speciesObj = sbioselect (modelObj,... 'Type', 'species', 'Where',... 'Name', '~=', 'Glucose') |
==i | То же, что и |
~=i |
Поиск в объекте модели ( speciesObj = sbioselect (modelObj,... 'Type', 'species', 'Where',... 'Name', '~=i', 'glucose') |
regexp . Поддерживает выражения, поддерживаемые функциями regexp и regexpi . | Поиск в объекте модели ( Obj = sbioselect (modelObj, 'Where',... 'Name', 'regexp', '[ea]se') Поиск в корне и возврат объектов, имеющих Obj = sbioselect ('Where',... 'Name', 'regexp', 'kinase') |
regexpi | То же, что и |
~regexp | Поиск в объекте модели ( Obj = sbioselect (modelObj, 'Where',... 'Name', '~regexp', 'kinase') |
~regexpi | То же, что и |
wildcard | Поддерживает |
wildcardi | То же, что и |
~wildcard | Поиск в объекте модели ( Obj = sbioselect (modelObj, 'Where',... 'Name', '~wildcard', 'kin*') |
~wildcardi | То же, что и |
Используйте вид условия function
для любого свойства. Заданное значение должно быть указателем на функцию, который при применении к значению свойства возвращает логическое значение, указывающее, существует ли соответствие. Следующая таблица показывает пример использования function
.
Состояние | Синтаксис примера |
---|---|
'function' |
Поиск в объекте модели и возврат объектов реакции, чьи 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' | Поиск в объекте модели и возврат объектов реакции, чьи 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 if ('Where' , 'PropertyName1' , 'Condition1' , PropertyValue1 ) и ('Where' , 'PropertyName2' , 'Condition2' , PropertyValue2 ) оба верны. |
'or' | True, если либо ('Where' , 'PropertyName1' , 'Condition1' , PropertyValue1 ) или ('Where' , 'PropertyName2' , 'Condition2' , PropertyValue2 ) верно. |
'xor' | True, если только один из ('Where' , 'PropertyName1' , 'Condition1' , PropertyValue1 ) или ('Where' , 'PropertyName2' , 'Condition2' , PropertyValue2 ) верно. |
'not' | True if ('Where' , 'PropertyName1' , 'Condition1' , PropertyValue1 ) верно и ('Where' , 'PropertyName2' , 'Condition2' , PropertyValue2 ) не соответствует истине. |
Поддерживаются составные выражения с несколькими логическими операторами. Приоритет операторов следует порядку операций для логической алгебры not
–> and
–> xor
–> or
.
находит объекты с помощью модели search depth of Out
= sbioselect(Obj
,
'Depth', DepthValue
,...)
. DepthValue
Примечание
Порядок результатов из sbioselect
не гарантируется. Следовательно, не рекомендуется зависеть от порядка результатов.