Поиск объектов с заданными ограничениями
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, включаемый в выбор, например TypeValuespecies, 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 не гарантируется. Следовательно, не рекомендуется зависеть от порядка результатов.