Поиск систем, блоков, линий, портов и аннотаций
Variants опция будет удаляема. Использование MatchFilter вместо этого. Для получения дополнительной информации см. раздел Вопросов совместимости.
возвращает загруженные системы и объекты в тех системах, которые удовлетворяют критериям, заданным одной или несколькими Objects = find_system(Name,Value)Name,Value аргументы в виде пар. Можно использовать этот синтаксис, чтобы задать ограничения поиска и найти конкретные значения параметров. Задайте ограничения поиска перед парами параметров и значений.
возвращает объекты в указанной системе, удовлетворяющие заданным критериям.Objects = find_system(System,Name,Value)
Возвращает имена всех загруженных систем и их блоков.
load_system('vdp')
find_systemans = 15x1 cell
{'vdp' }
{'vdp/Constant' }
{'vdp/More Info' }
{'vdp/More Info/Model Info'}
{'vdp/Mu' }
{'vdp/Mux' }
{'vdp/Product' }
{'vdp/Scope' }
{'vdp/Square' }
{'vdp/Sum' }
{'vdp/Sum1' }
{'vdp/x1' }
{'vdp/x2' }
{'vdp/Out1' }
{'vdp/Out2' }
Возвращает загруженные системы и библиотеки, включая vdp.
Возврат vdp система и ее блоки.
load_system({'vdp','ex_sldemo_clutch'})
find_system('vdp')ans = 15x1 cell
{'vdp' }
{'vdp/Constant' }
{'vdp/More Info' }
{'vdp/More Info/Model Info'}
{'vdp/Mu' }
{'vdp/Mux' }
{'vdp/Product' }
{'vdp/Scope' }
{'vdp/Square' }
{'vdp/Sum' }
{'vdp/Sum1' }
{'vdp/x1' }
{'vdp/x2' }
{'vdp/Out1' }
{'vdp/Out2' }
Возвращает имена загруженных моделей, подсистем и библиотек. Имя подсистемы возвращается только в том случае, если подсистема может быть загружена независимо.
load_system('vdp'); find_system('type','block_diagram')
ans = 1x1 cell array
{'vdp'}
Верните имена всех блоков Goto, которые являются дочерними элементами подсистемы Unlocked в ex_sldemo_clutch система.
load_system('ex_sldemo_clutch'); find_system('ex_sldemo_clutch/Unlocked','SearchDepth',1,'BlockType','Goto')
ans = 2x1 cell
{'ex_sldemo_clutch/Unlocked/Goto' }
{'ex_sldemo_clutch/Unlocked/Goto1'}
Копирайт 2020 The MathWorks, Inc.
Поиск в vdp и возвращает имена всех блоков Gain, значение Gain которых установлено в 1.
load_system('vdp'); find_system('vdp','BlockType','Gain','Gain','1')
ans = 1x1 cell array
{'vdp/Mu'}
Получаем указатели на все линии и аннотации в vdp система. С 'FindAll'функция возвращает указатели независимо от того, как вы задаете систему для поиска.
load_system('vdp'); L = find_system('vdp','FindAll','on','type','line')
L = 19×1
34.0044
33.0044
32.0044
31.0044
30.0044
29.0044
28.0044
27.0044
26.0044
25.0044
⋮
A = find_system('vdp','FindAll','on','type','annotation')
A = 2×1
36.0044
35.0044
Найдите любые параметры диалогового окна блока со значением 0 в vdp и ex_sldemo_clutch систем.
load_system({'vdp','f14'})
find_system({'vdp','f14'},'BlockDialogParams','0')ans =
32×1 cell array
{'vdp/More Info' }
{'vdp/More Info/Model Info' }
{'vdp/Scope' }
{'vdp/x2' }
{'vdp/Out1' }
{'vdp/Out1' }
{'vdp/Out2' }
{'vdp/Out2' }
{'f14/Aircraft↵Dynamics↵Model' }
{'f14/Aircraft↵Dynamics↵Model/Vertical Velocity↵w (ft//sec)'}
{'f14/Aircraft↵Dynamics↵Model/Vertical Velocity↵w (ft//sec)'}
{'f14/Aircraft↵Dynamics↵Model/Pitch Rate↵q (rad//sec)' }
{'f14/Aircraft↵Dynamics↵Model/Pitch Rate↵q (rad//sec)' }
.
.
.Найдите все блоки на верхнем уровне загруженных в настоящее время систем со значением параметров диалога блоков, которое начинается с 3.
load_system({'ex_sldemo_clutch','vdp'});
find_system('SearchDepth','1','regexp','on','BlockDialogParams','^3')ans = 4x1 cell
{'vdp/Scope' }
{'vdp/Scope' }
{'vdp/Square' }
{'ex_sldemo_clutch/w'}
При поиске с помощью регулярных выражений можно задать часть вектора символов, которая должна совпадать, чтобы вернуть все объекты, которые содержат этот вектор символов. Найдите все блоки inport и outport в ex_sldemo_clutch модель.
load_system('ex_sldemo_clutch'); find_system('ex_sldemo_clutch','regexp','on','blocktype','port')
ans = 39x1 cell
{'ex_sldemo_clutch/Friction...' }
{'ex_sldemo_clutch/Friction...' }
{'ex_sldemo_clutch/Friction...' }
{'ex_sldemo_clutch/Friction Mode Logic/Tin' }
{'ex_sldemo_clutch/Friction Mode Logic/Tfmaxs' }
{'ex_sldemo_clutch/Friction Mode Logic/Break Apart...' }
{'ex_sldemo_clutch/Friction Mode Logic/Break Apart...' }
{'ex_sldemo_clutch/Friction Mode Logic/Break Apart...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/lock' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/unlock' }
{'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/locked' }
{'ex_sldemo_clutch/Friction Mode Logic/Requisite Friction/Tin'}
{'ex_sldemo_clutch/Friction Mode Logic/Requisite Friction/Tf' }
{'ex_sldemo_clutch/Friction Mode Logic/locked' }
{'ex_sldemo_clutch/Friction Mode Logic/lock' }
{'ex_sldemo_clutch/Friction Mode Logic/unlock' }
{'ex_sldemo_clutch/Friction Mode Logic/Tf' }
{'ex_sldemo_clutch/Locked/Tin' }
{'ex_sldemo_clutch/Locked/w' }
{'ex_sldemo_clutch/Unlocked/Tfmaxk' }
{'ex_sldemo_clutch/Unlocked/Tin' }
{'ex_sldemo_clutch/Unlocked/we' }
⋮
В этом примере myModel содержит одну подсистему, которая является библиотечной ссылкой. После последнего открытия модели к соответствующей подсистеме в библиотеке был добавлен Gain блок.
Откройте модель. Использовать find_system с 'FollowLinks' установлено на 'off'. Команда не следует по библиотечным ссылкам в подсистему и возвращает только подсистему на верхнем уровне.
open_system('myModel') find_system(bdroot,'LookUnderMasks','on','FollowLinks', 'off')
ans =
'myModel'
'myModel/Subsystem'
Использовать find_system с 'FollowLinks' установлено на 'on'. find_system обновляет библиотечные ссылки и возвращает блок в подсистеме.
find_system(bdroot,'LookUnderMasks','on','FollowLinks','on')
Updating Link: myModel/Subsystem/Gain
Updating Link: myModel/Subsystem/Gain
ans =
'myModel'
'myModel/Subsystem'
'myModel/Subsystem/Gain'
Предоставьте систему, чтобы find_system как указатель. Поиск параметров диалогового окна блока со значением 0. Если вы совершаете несколько вызовов в get_param для того же блока использование указателя на блок более эффективно, чем указание полного пути к блоку в качестве вектора символов.
load_system('vdp'); sys = get_param('vdp','Handle'); find_system(sys,'BlockDialogParams','0')
ans = 8×1
3.0046
4.0046
8.0046
13.0046
14.0046
14.0046
15.0046
15.0046
System - Система поискаСистема для поиска, заданная как полное имя системного пути, массив ячеек с именами системных путей, указатель или вектор указателей.
Пример: 'MyModel/Subsystem1'
Пример: {'vdp','ex_sldemo_clutch'}
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
'SearchDepth','0','LookUnderMasks','none','BlockType','Goto' поиск в загруженных системах, исключая маскированные подсистемы, блоков Гото.Когда вы используете find_system функция, Name,Value аргументы в виде пар могут включать ограничения поиска и пары имя и значение параметра. Можно задать ограничения поиска в любом порядке, но они должны предшествовать парам имя и значение параметра.
Список параметров блоков см. в разделе «Специфичные для блоков параметры».
'BlockDialogParams' - Опция поиска параметров диалогового окна блока для заданного значенияОпция поиска параметров диалогового окна блока для заданного значения, заданная как разделенная разделенными запятой парами, состоящая из 'BlockDialogParams' и вектор символов или строковый скаляр. Эта пара должна следовать другим парам ограничений поиска.
'CaseSensitive' - Опция для рассмотрения случая при совпадении'on' (по умолчанию) | 'off'Опция для рассмотрения случая при совпадении, заданная как разделенная разделенными запятой парами, состоящая из 'CaseSensitive' и 'on' для чувствительного к регистру поиска или 'off'.
'FindAll' - Опция включения линий, портов и аннотаций в системы'off' (по умолчанию) | 'on'Опция включения в поиск линий, портов и аннотаций в системах, заданная как разделенная разделенными запятой парами, состоящая из 'FindAll' и 'on' или 'off'.Если для этой опции задано значение 'on', find_system возвращает вектор указателей независимо от того, как вы задаете System аргумент.
'FirstResultOnly' - Опция возврата только первого результата'off' (по умолчанию) | 'on'Опция, чтобы вернуть только первый результат и затем остановить поиск, заданная как разделенная разделенными запятой парами, состоящая из 'FirstResultOnly' и 'on' или 'off'.
'LookInsideSubsystemReference' - Опция для поиска в подсистеме-ссылке'on' (по умолчанию) | 'off'Опция, чтобы заглянуть внутрь подсистемы-ссылки в модели и перечислить дочерние блоки, заданные как разделенная разделенными запятой парами, состоящая из 'LookInsideSubsystemReference' и 'on' или 'off'.
'FollowLinks' - Опция перехода по ссылкам в блоки библиотек'off' (по умолчанию) | 'on'Опция перехода по ссылкам на библиотечные блоки, заданная как разделенная запятой пара, состоящая из 'FollowLinks' и 'on' или 'off'. Если вы не задаете систему для поиска, find_system включает загруженные библиотеки в результаты, заданные пользователем 'FollowLinks' на 'on' или 'off'. Можно использовать 'FollowLinks' с 'LookUnderMasks' для обновления библиотечных ссылок в подсистемах. См. раздел «Обновление библиотечных ссылок в подсистеме».
'IncludeCommented' - Опция включения комментируемых блоков'off' (по умолчанию) | 'on'Опция включения комментируемых блоков в поиск, заданная как разделенная разделенными запятой парами, состоящая из 'IncludeCommented' и 'on' или 'off'.
'LoadFullyIfNeeded' - Опция загрузки любых частично загруженных моделей'on' (по умолчанию) | 'off'Опция для загрузки любых частично загруженных моделей, заданная как разделенная разделенными запятой парами 'LoadFullyIfNeeded' и 'on' для загрузки моделей или 'off' чтобы отключить загрузку. Используйте эту опцию, для примера, чтобы предотвратить предупреждения загрузки.
'LookUnderMasks' - Опции для поиска в масках'graphical' (по умолчанию) | 'none' | 'functional' | 'all' | 'on' | 'off'Опции для поиска в масках, заданные как разделенная разделенными запятой парами, состоящая из 'LookUnderMasks' и один из следующих опций:
'graphical' - Поиск включает маскированные подсистемы, которые не имеют рабочих областей и диалоговых окон.
'none' - Поиск пропускает маскированные подсистемы.
'functional' - Поиск включает маскированные подсистемы, которые не имеют диалоговых окон.
'all' - Поиск включает все маскированные подсистемы.
'on' - Поиск включает все маскированные подсистемы.
'off' - Поиск пропускает маскированную подсистему.
'RegExp' - Опция для обработки выражений поиска как регулярных выражений'off' (по умолчанию) | 'on'Опция для обработки выражений поиска как регулярных выражений, заданных как разделенная разделенными запятой парами, состоящая из 'RegExp' и 'on' для обработки выражений поиска как регулярных выражений или 'off'. Чтобы узнать больше о MATLAB® регулярные выражения, см. Регулярные выражения.
'SearchDepth' - Опция ограничения глубины поискаОпция ограничения глубины поиска заданным уровнем, заданная как разделенная разделенными запятой парами, состоящая из 'SearchDepth' и положительный целочисленный вектор символов или строковый скаляр. Для примера задайте '0' для поиска только загруженных систем, '1' для блоков и подсистем системы верхнего уровня, '2' для системы верхнего уровня и ее дочерних элементов и т.д. По умолчанию выполняется поиск по всем уровням.
'Variants' - Опции для поиска вариантов'ActiveVariants' (по умолчанию) | 'AllVariants' | 'ActivePlusCodeVariants'Опции для поиска вариантов, заданные как разделенная разделенными запятой парами, состоящая из 'Variants' и один из следующих опций:
'ActiveVariants' - Поиск только активного варианта выбора в Variant Subsystem.
'AllVariants' - Поиск всех вариантов в Variant Subsystem.
'ActivePlusCodeVariants' - Поиск всех вариантов вариантов в Variant Subsystem, которые активны в симуляции и являются частью сгенерированного кода.
Примечание
Это ограничение поиска применяется только к Variant Subsystem блокам, для которых установлено Variant control mode expression или label. Используйте find_system функция со MatchFilter опция для работы со всеми типами вариантов блоков.
'MatchFilter' - Указатель на функцию, чтобы соответствовать элементамУказатель на функцию, соответствующий элементам поиска, таким как блоки, система, линии, порты и аннотации. Использование MatchFilter чтобы определить, должны ли элементы быть включены или пропущены в поиск.
Именованная функция должна быть определена в программном файле MATLAB. Функция принимает указатель на элемент как вход и возвращает два выхода.
function [match, prune] = func(element)
Область входа element - указатель на обрабатываемый блок.
Первый выход, match, является логическим значением. Если falseпоиск пропускает элемент.
Второй выход, prune, является необязательным логическим значением, которое применяется только тогда, когда element является подсистемой. Значение по умолчанию false. Если для этого значения задано значение trueвся подсистема опущена из поиска.
Пример: Используйте MatchFilter чтобы найти все блоки, не Inport и Outport в модели, используя свою собственную определенную функцию filter, nonInOutBlocks:
function match = nonInOutBlocks(handle) match = true; if strcmp(get_param(handle, 'Type'), 'block') blockType = get_param(handle, 'BlockType'); if strcmp(blockType, 'Inport') || ... strcmp(blockType, 'Outport') match = false; end end end
load_system('vdp'); blks = find_system('vdp', 'MatchFilter', @nonInOutBlocks)
Варианты: 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'); activeBlks = find_system(model, 'MatchFilter', @Simulink.match.activeVariants);
Пример: Используйте Simulink.match.codeCompileVariants опция для поиска вариантов, являющихся частью сгенерированного кода C:
addpath(fullfile(matlabroot,'examples','simulink_variants','main')); load_system('sldemo_variant_subsystems'); assignin('base','VSS_MODE',2); sldemo_variant_subsystems([], [], [], 'compileForRTW'); activeBlks= find_system('sldemo_variant_subsystems', 'MatchFilter', @Simulink.match.codeCompileVariants); sldemo_variant_subsystems([], [], [], 'term');
Objects - Соответствие объектовНайдены соответствующие объекты, возвращенные как:
Массив ячеек с именами путей, если вы задали System как имя пути или массив ячеек с именами путей, или если вы не задали систему
Вектор указателей, если вы задали System как указатель или вектор указателей
Variants будет удаленоПредупреждает, начиная с R2021a
The Variants опция будет удаляема из find_system в будущем релизе. Скрипты, которые используют Variants опция продолжает работать с предупреждением.
Чтобы найти блоки вариантов в модели, которые активны во время симуляции или генерации кода, скомпилируйте модель и используйте find_system функция со MatchFilter опция.
find_system с Variants и MatchFilter опции в модели с вариантными блокамиПоведение изменено в R2021a
Варианты: Использование find_system функция без Variants опция по умолчанию включает только активный вариант в поиске.
Рассмотрим модель с Variant Subsystem, которая имеет два варианта выбора, Linear Controller и Non-Linear Controller.
Эта команда возвращает только активные блоки Add в модели.
add_blocks=find_system('sldemo_variant_subsystems/Controller',... 'BlockType','Sum')
add_blocks =
1×1 cell array
{'sldemo_variant_subsystems/Controller/Nonlinear Controller/Add'}MatchFilter: Использование find_system функция со MatchFilter опция применяет фильтры для активных и неактивных вариантов по умолчанию.
Рассмотрим модель с Variant Subsystem, которая имеет два варианта выбора, Linear Controller и Non-Linear Controller. Область функции filter findAddBlocks находит все блоки Add в модели.
function match = findAddBlocks(handle) match = strcmp(get_param(handle, 'Type'), 'block') &&... strcmp(get_param(handle, 'BlockType'), 'Sum'); end
Эта команда возвращает как активные, так и неактивные блоки Add в модели.
add_blocks=find_system('sldemo_variant_subsystems','MatchFilter',... @findAddBlocks)
add_blocks =
2×1 cell array
{'sldemo_variant_subsystems/Controller/Linear Controller/Add' }
{'sldemo_variant_subsystems/Controller/Nonlinear Controller/Add'}
find_system не поддерживает использование MatchFilter наряду со Variants опция.
Эта команда приводит к ошибке:
find_system(bdroot,'MatchFilter',@Simulink.match.activeVariants,... 'Variants','ActiveVariants');
find_mdlrefs | get_param | getSimulinkBlockHandle | Model Explorer | set_param | Редактор Simulink | Simulink.allBlockDiagrams | Simulink.findBlocks | Simulink.findBlocksOfType
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.