Найдите системы, блоки, линии, порты и аннотации
Variants
опция будет удалена. Используйте MatchFilter
вместо этого. Для получения дополнительной информации см. Вопросы совместимости.
возвращает загруженные системы и объекты в тех системах, которые соответствуют критериям, заданным одним или несколькими 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.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'}
Когда вы ищете регулярные выражения использования, можно задать часть вектора символов, с которым вы хотите совпадать, чтобы возвратить все объекты, которые содержат тот вектор символов. Найдите весь импорт и блоки выходного порта в 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.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'
поисковые запросы в загруженных системах, исключая подсистемы маскированные, для блоков 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'
и одна из этих опций:
'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
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.