Найдите системы, блоки, линии, порты и аннотации
возвращает загруженные системы и объекты в тех системах, которые соответствуют критериям, заданным одним или несколькими Objects
= find_system(Name,Value
)Name,Value
парные аргументы. Можно использовать этот синтаксис, чтобы задать поисковые ограничения и искать определенные значения параметров. Задайте поисковые ограничения перед парами значения и параметром.
возвращает объекты в заданной системе, которые соответствуют заданным критериям.Objects
= find_system(System
,Name,Value
)
Возвратите имена всех загруженных систем и их блоков.
load_system('vdp')
find_system
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' }
Возвращает загруженные системы и библиотеки, включая 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, которые являются дочерними элементами Разблокированной подсистемы в 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'}
Copyright 2020 The MathWorks, Inc.
Поиск в vdp
система и возвращает имена всех блоков Усиления, значение Усиления которых установлено к 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.0043
33.0043
32.0043
31.0043
30.0043
29.0043
28.0043
27.0043
26.0043
25.0043
⋮
A = find_system('vdp','FindAll','on','type','annotation')
A = 2×1
36.0043
35.0043
Найдите любые параметры диалогового окна блока со значением 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'}
Когда вы ищете регулярные выражения использования, можно задать часть вектора символов, с которым вы хотите совпадать, чтобы возвратить все объекты, которые содержат тот вектор символов. Найдите весь импорт и блоки выходного порта в 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
для того же блока, затем с помощью указателя блока более эффективно, чем определение полного блока path как вектор символов.
load_system('vdp'); sys = get_param('vdp','Handle'); find_system(sys,'BlockDialogParams','0')
ans = 8×1
3.0045
4.0045
8.0045
13.0045
14.0045
14.0045
15.0045
15.0045
System
— Система, чтобы искатьСистема, чтобы искать в виде полного системного пути, массива ячеек системных путей, указателя или вектора из указателей.
Пример: 'MyModel/Subsystem1'
Пример: {'vdp','ex_sldemo_clutch'}
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'SearchDepth','0','LookUnderMasks','none','BlockType','Goto'
поисковые запросы в загруженных системах, исключая подсистемы маскированные, для блоков Goto.Когда вы используете find_system
функция, Name,Value
парные аргументы могут включать поисковые ограничения и пары значения и название параметра. Можно задать поисковые ограничения в любом порядке, но они должны предшествовать пары значения и название параметра.
Смотрите Специфичные для блока Параметры для списка параметров блоков.
BlockDialogParams
— Опция, чтобы искать параметры диалогового окна блока заданное значениеОпция, чтобы искать параметры диалогового окна блока заданное значение в виде разделенной запятой пары, состоящей из 'BlockDialogParams'
и вектор символов или строковый скаляр. Эта пара должна следовать за другими поисковыми ограничительными парами.
CaseSensitive
— Опция, чтобы рассмотреть случай при соответствии'on'
(значение по умолчанию) | 'off'
Опция, чтобы рассмотреть случай при соответствии в виде разделенной запятой пары, состоящей из 'CaseSensitive'
и 'on'
для чувствительного к регистру поиска или 'off'
.
FindAll
— Опция, чтобы включать линии, порты и аннотации в системах'off'
(значение по умолчанию) | 'on'
Опция, чтобы включать линии, порты и аннотации в системах в поиске в виде разделенной запятой пары, состоящей из 'FindAll'
и 'on'
или 'off'
.When эта опция установлен в '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
аргумент будет удален. Используйте MatchFilter
вместо этого. Для получения дополнительной информации см. Вопросы совместимости.
Опции для поиска вариантов в виде разделенной запятой пары, состоящей из '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 обеспечивает эти встроенные функции filter соответствия, чтобы найти различные блоки, которые активны в симуляции или части сгенерированного кода.
Simulink.match.activeVariants
— Функция filter, чтобы найти блоки, которые активны в симуляции после компиляции модели.
Simulink.match.codeCompileVariants
— Функция filter, чтобы найти блоки, которые являются частью сгенерированного кода после компиляции модели.
Пример: используйте Simulink.match.activeVariants
отфильтруйте, чтобы найти активные варианты в модели.
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.
load_system('sldemo_variant_subsystems'); assignin('base','VSS_MODE',2); sldemo_variant_subsystems([], [], [], 'compileForCodegen'); activeBlks= find_system('sldemo_variant_subsystems', 'MatchFilter', @Simulink.match.codeCompileVariants); sldemo_variant_subsystems([], [], [], 'term');
Objects
— Соответствующие объектыНайденные соответствующие объекты, возвратились как:
Массив ячеек путей, если вы задали System
как путь или массив ячеек путей, или если вы не задавали систему
Вектор из указателей, если вы задали System
как указатель или вектор из указателей
Variants
аргумент будет удаленПредупреждает запуск в R2021a
Variants
опция будет удалена из find_system
в будущем релизе. Скрипты, которые используют Variants
опция продолжает работать с предупреждением.
Найти вариант блокируется в модели, которые активны в процессе моделирования или генерация кода, компилируют модель и используют find_system
функция с MatchFilter
опция.
find_system
с Variants
и MatchFilter
опции в модели с различными блокамиПоведение изменяется в R2021a
Variants
: Используя 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');
Simulink.findBlocksOfType
| Simulink.findBlocks
| Simulink.allBlockDiagrams
| find_mdlrefs
| get_param
| getSimulinkBlockHandle
| set_param
| Model Explorer | Редактор Simulink
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.