Задайте опции для нахождения блоков в моделях и подсистемах
Simulink.FindOptions
объекты позволяют вам ограничивать поиск с Simulink.findBlocks
и Simulink.findBlocksOfType
функции.
создает f
= Simulink.FindOptionsFindOptions
возразите, что использует параметры поиска по умолчанию.
CaseSensitive
— Опция, чтобы совпадать со случаем при поискеtrue
(значение по умолчанию) | false
Опция, чтобы совпадать со случаем при поиске в виде true
для поиска с учетом регистра или false
для поиска без учета регистра.
Типы данных: логический
FollowLinks
— Опция для поиска, чтобы перейти по ссылкам библиотекиfalse
(значение по умолчанию) | true
Опция для поиска, чтобы перейти по ссылкам библиотеки в виде true
или false
. Если true
, поиск переходит по ссылкам в библиотечные блоки.
Типы данных: логический
IncludeCommented
— Опция для поиска, чтобы включать прокомментированные блокиtrue
(значение по умолчанию) | false
Опция для поиска, чтобы включать прокомментированные блоки в виде true
или false
.
Типы данных: логический
LookUnderMasks
— Опции, чтобы искать маскированные блоки'all'
(значение по умолчанию) | 'none'
| 'functional'
| 'graphical'
Опции, чтобы искать маскированные блоки в виде:
'all'
— Поиск во всех маскированных блоках.
'none'
— Предотвратите поиск в системах маскированных.
'functional'
— Включайте замаскированные подсистемы, которые не имеют диалоговых окон.
'graphical'
— Включайте замаскированные подсистемы, которые не имеют рабочих областей или диалоговых окон.
Типы данных: char |
string
Variants
— Опции, чтобы искать различные подсистемы'AllVariants'
(значение по умолчанию) | 'ActiveVariants'
| 'ActivePlusCodeVariants'
Примечание
Variants
аргумент будет удален. Используйте MatchFilter
вместо этого. Для получения дополнительной информации см. Вопросы совместимости.
Опции, чтобы искать различные подсистемы в виде:
'AllVariants'
— Ищите все варианты.
'ActiveVariants'
— Ищите только активные варианты.
'ActivePlusCodeVariants'
— Ищите все варианты в Variant Subsystem, которые активны в симуляции, и часть сгенерированного кода.
Это поисковое ограничение применяется только к блокам Variant Subsystem, которым установили Variant control mode на expression
или label
. Используйте Simulink.FindOptions
объект с MatchFilter
опция, чтобы работать со всеми типами различных блоков.
Типы данных: char |
string
MatchFilter
— Указатель на функцию, чтобы совпадать с элементамиУказатель на функцию, чтобы совпадать с элементами в поиске, такими как блоки, система, линии, порты и аннотации. Используйте MatchFilter
определить, должны ли элементы быть включены или пропущены в поиске.
Именованная функция должна быть задана в MATLAB® программный файл. Функция берет указатель элемента, как введено и возвращает два выходных параметра.
function [match, prune] = func(element)
Вход element
указатель обрабатываемого блока.
Первый выход, match
, логическое значение. Если false
, ищите пропускает элемент.
Второй выход, prune
, дополнительное логическое значение, которое только применяется когда element
подсистема. Значением по умолчанию является false
. Если это значение установлено к true
, целая подсистема не использована от поиска.
Пример: используйте MatchFilter
найти весь Gain блокируется в модели vdp
со значением усиления между 1
и 10
.
function match = gainOneToTen(blk) match = false; if strcmp(get_param(blk,'Type'),'block') ... && strcmp(get_param(blk,'BlockType'),'Gain') gainValue = str2double(get_param(blk, 'Gain')); match = gainValue >= 1 && gainValue <= 10; end end
load_system('vdp'); findOptObj = Simulink.FindOptions('MatchFilter', @gainOneToTen); blks=getfullname((Simulink.findBlocks('vdp',findOptObj)));
Варианты: Simulink обеспечивает Simulink.match.activeVariants
и Simulink.match.codeCompileVariants
совпадайте с функциями filter для различных блоков, которые можно использовать, чтобы найти, что активные варианты или код компилируют различные блоки. Для этого скомпилируйте модель и примените соответствующий MatchFilter
опции:
Simulink.match.activeVariants
- Блоки соответствий, которые активны в симуляции после компиляции модели
Simulink.match.codeCompileVariants
- Блоки соответствий, которые являются частью сгенерированного кода после компиляции модели
Пример: используйте Simulink.match.activeVariants
опция, чтобы найти активные варианты в модели:
addpath(fullfile(matlabroot,'examples','simulink_variants','main')); model='sldemo_variant_subsystems'; load_system(model); assignin('base','VSS_MODE',2); set_param(model, 'SimulationCommand', 'update'); findOptObj= Simulink.FindOptions('MatchFilter', @Simulink.match.activeVariants); blks=getfullname((Simulink.findBlocks(model,findOptObj)))
Пример: используйте Simulink.match.codeCompileVariants
опция, чтобы найти варианты, которые являются частью сгенерированного кода C:
addpath(fullfile(matlabroot,'examples','simulink_variants','main')); load_system('sldemo_variant_subsystems'); assignin('base','VSS_MODE',2); sldemo_variant_subsystems([], [], [], 'compileForCodegen'); findOptObj = Simulink.FindOptions('MatchFilter', @Simulink.match.codeCompileVariants); blks=getfullname((Simulink.findBlocks('sldemo_variant_subsystems',findOptObj))); sldemo_variant_subsystems([], [], [], 'term');
RegExp
— Опция, чтобы обработать искомый текст как регулярное выражениеfalse
(значение по умолчанию) | true
Опция, чтобы обработать искомый текст как регулярное выражение в виде true
или false
. Чтобы узнать больше о регулярных выражениях MATLAB, смотрите Регулярные выражения.
Типы данных: логический
SearchDepth
— Уровни в модели, чтобы искать
(значение по умолчанию) | положительное целое числоУровни в модели, чтобы искать в виде положительного целого числа. Значение по умолчанию (-1
) должен искать все уровни. Задайте:
1 — Поиск в системе верхнего уровня.
2 — Ищите систему верхнего уровня и ее дочерние элементы,
3
искать дополнительный уровень, и так далее.
Типы данных: int32
Создайте Simulink.FindOptions
объект, который задает поисковую глубину 1
.
f = Simulink.FindOptions('SearchDepth',1);
Используя FindOptions
объект, ищите все блоки в подсистеме под названием Unlocked
, но не в любом из его дочерних элементов.
openExample('sldemo_clutch'); bh = Simulink.findBlocks('sldemo_clutch/Unlocked',f);
Simulink.findBlocks
функция возвращает указатели блока.
Чтобы получить блок path, используйте getfullname
функция.
bp = getfullname(bh)
bp = 20×1 cell array {'sldemo_clutch/Unlocked/Tfmaxk' } {'sldemo_clutch/Unlocked/Tin' } {'sldemo_clutch/Unlocked/Enable' } {'sldemo_clutch/Unlocked/E_Sum' } {'sldemo_clutch/Unlocked/Engine↵Damping' } {'sldemo_clutch/Unlocked/Engine↵Inertia' } {'sldemo_clutch/Unlocked/Engine↵Integrator' } {'sldemo_clutch/Unlocked/Goto' } {'sldemo_clutch/Unlocked/Goto1' } {'sldemo_clutch/Unlocked/Max↵Dynamic↵Friction↵Torque'} {'sldemo_clutch/Unlocked/V_Sum' } {'sldemo_clutch/Unlocked/Vehicle↵Damping' } {'sldemo_clutch/Unlocked/Vehicle↵Inertia' } {'sldemo_clutch/Unlocked/Vehicle↵Integrator' } {'sldemo_clutch/Unlocked/W_Slip' } {'sldemo_clutch/Unlocked/slip direction' } {'sldemo_clutch/Unlocked/w0' } {'sldemo_clutch/Unlocked/w0 ' } {'sldemo_clutch/Unlocked/we' } {'sldemo_clutch/Unlocked/wv' }
Variants
аргумент будет удаленПредупреждает запуск в R2021a
Variants
опция будет удалена из Simulink.FindOptions
в будущем релизе. Скрипты, которые используют Variants
опция продолжает работать с предупреждением.
Найти вариант блокируется в модели, которые активны в процессе моделирования или генерация кода, можно скомпилировать модель и использовать Simulink.FindOptions
объект с MatchFilter
опция.
Simulink.FindOptions
не поддерживает использование MatchFilter
наряду с Variants
опция.
Эта команда производит ошибку:
f = Simulink.FindOptions('MatchFilter',... @Simulink.match.activeVariants, 'Variants', 'ActiveVariants'); blocks=Simulink.findBlocks('sldemo_variant_subsystems',f)
Simulink.findBlocksOfType
| Simulink.findBlocks
| Simulink.allBlockDiagrams
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.