Задайте опции для нахождения блоков в моделях и подсистемах
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'
Опции, чтобы искать различные подсистемы в виде:
'AllVariants'
— Ищите все варианты.
'ActiveVariants'
— Ищите только активные варианты.
'ActivePlusCodeVariants'
— Ищите все варианты с 'Generate preprocessor conditionals'
активный. В противном случае ищите только активные варианты.
Примечание
Это поисковое ограничение применяется только к различным подсистемам. Чтобы работать над всеми другими различными блоками, используйте Варианты опция MatchFilter.
Типы данных: char |
string
MatchFilter
— Указатель на функцию, чтобы совпадать с элементамиУказатель на функцию, чтобы совпадать с элементами в поиске, такими как блоки, система, линии, порты и аннотации. Используйте MatchFilter
определить, должны ли элементы быть выбраны или пропущены в поиске.
Пример: используйте MatchFilter
найти весь Gain блокирует со значением усиления промежуточные 5 - 10.
blks = Simulink.FindOptions('ModelName', 'MatchFilter', @gainFiveToTen)
function match = gainFiveToTen(el) match = false; if strcmp(get_param(el,'Type'),'block') ... && strcmp(get_param(el,'BlockType'),'Gain') gainValue = str2double(get_param(el, 'Gain')); match = gainValue >= 5 && gainValue <= 10; end end end
В этом примере показано, как использовать MatchFilter
со вторым выходным аргументом prune
.
[match, prune] = fcn(element) where element - Handle of the block being processed. match - Logical. If false, skip the element. prune - Optional logical (default false). If true, do not look in subsystems.
Варианты: Simulink обеспечивает Simulink.match.activeVariants
и Simulink.match.codeCompileVariants
совпадайте с функциями filter для различных блоков, которые можно использовать, чтобы найти, что активные варианты или код компилируют различные блоки. Для этого скомпилируйте модель и примените соответствующий MatchFilter
опции:
Simulink.match.activeVariants
- Блоки соответствий, которые активны в симуляции после компиляции модели
Simulink.match.codeCompileVariants
- Блоки соответствий, которые являются частью сгенерированного кода после компиляции модели
Пример: используйте Simulink.match.activeVariants
опция, чтобы найти активные варианты в модели:
set_param(model, 'SimulationCommand', 'update'); activeBlks = simulink.FindOptions(model, 'MatchFilter', @Simulink.match.activeVariants);
Пример: используйте Simulink.match.codeCompileVariants
опция, чтобы найти варианты, которые являются частью сгенерированного кода C:
MODEL([],[],[],'compileForRTW') F = Simulink.FindOptions('MatchFilter', @Simulink.match.codeCompileVariants); Simulink.findBlocks(SYSTEM, F); MODEL([],[],[],'term'))
RegExp
— Опция, чтобы обработать искомый текст как регулярное выражениеfalse
(значение по умолчанию) | true
Опция, чтобы обработать искомый текст как регулярное выражение в виде true
или false
. Чтобы узнать больше о регулярных выражениях MATLAB®, смотрите Регулярные выражения.
Типы данных: логический
SearchDepth
— Уровни в модели, чтобы искать
(значение по умолчанию) | положительное целое числоУровни в модели, чтобы искать в виде положительного целого числа. Значение по умолчанию (-1
) должен искать все уровни. Задайте:
1 — Поиск в системе верхнего уровня.
2 — Ищите систему верхнего уровня и ее дочерние элементы,
3
искать дополнительный уровень, и так далее.
Типы данных: int32
Создайте Simulink.FindOptions
объект, который задает поисковую глубину 1
.
f = Simulink.FindOptions('SearchDepth',1);
Используя FindOptions
объект, ищите все блоки в подсистеме под названием Unlocked
, но не в любом из его дочерних элементов.
load_system('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' }
Simulink.allBlockDiagrams
| Simulink.findBlocks
| Simulink.findBlocksOfType
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.