find_mdlrefs

Найдите модели, на которые ссылаются, и блоки Model в иерархии модели

Описание

пример

[models,blocks] = find_mdlrefs(system) находит все модели, на которые ссылаются, и блоки Model в иерархии модели ниже заданной системы. find_mdlrefs функционируйте временно загружает модели.

пример

[models,blocks] = find_mdlrefs(system,Name,Value) предоставляет дополнительные возможности поиска с помощью одной или нескольких пар "имя-значение". Например, чтобы сохранить модели загруженными вместо того, чтобы временно загрузить их, установите KeepModelsLoaded к true.

Примеры

свернуть все

Найдите модели, на которые ссылаются, и блоки Model для всех моделей ссылаемыми заданной моделью.

load_system('sldemo_mdlref_basic');
[myModels,myModelBlks] = find_mdlrefs('sldemo_mdlref_basic')
myModels = 2x1 cell
    {'sldemo_mdlref_counter'}
    {'sldemo_mdlref_basic'  }

myModelBlks = 3x1 cell
    {'sldemo_mdlref_basic/CounterA'}
    {'sldemo_mdlref_basic/CounterB'}
    {'sldemo_mdlref_basic/CounterC'}

По умолчанию, find_mdlrefs функционируйте загрузки и затем закрывайте модели, которые уже не загрузились. Чтобы идентифицировать, какие модели загружаются, используйте find_system функция.

find_mdlrefs('sldemo_mdlref_depgraph');
find_system('type','block_diagram')
ans =

  0x1 empty cell array

Чтобы найти и загрузить все модели в иерархии модели, установите KeepModelsLoaded к true.

find_mdlrefs('sldemo_mdlref_depgraph','KeepModelsLoaded',true);
find_system('type','block_diagram')
ans = 7x1 cell
    {'sldemo_mdlref_thermostat'  }
    {'sldemo_mdlref_heater'      }
    {'sldemo_mdlref_F2C'         }
    {'sldemo_mdlref_outdoor_temp'}
    {'sldemo_mdlref_house'       }
    {'sldemo_mdlref_heat2cost'   }
    {'sldemo_mdlref_depgraph'    }

Топ-модель и все модели, на которые ссылаются, остаются загруженными. Если вы открываете sldemo_mdlref_depgraph, можно переместиться по иерархии модели, не ожидая моделей, на которые ссылаются, чтобы загрузить, когда вы открываете их.

Входные параметры

свернуть все

Имя системы, блок path или указатель в виде вектора символов, строкового скаляра или числового скаляра.

Система должна быть файлом SLX, файлом MDL, блоком Model или блоком Subsystem.

Если вы задаете имя файла, не включайте расширение файла.

Типы данных: double | char | string

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: refModels = find_mdlrefs(topmodel,'KeepModelsLoaded',true,'ReturnTopModelAsLastElement',false)

Опция, чтобы сохранить модели загруженными в виде разделенной запятой пары, состоящей из 'KeepModelsLoaded' и числовой или логический 1 TRUE) или 0 ложь).

По умолчанию функциональные загрузки и затем закрывают модели, которые уже не загрузились. Чтобы сохранить модели загруженными, установите этот аргумент на true. Хранение загруженных моделей может быть полезным, если вы планируете взаимодействие с моделями после нахождения их.

Типы данных: логический

Уровни, чтобы искать в виде разделенной запятой пары, состоящей из 'AllLevels' и числовой или логический 1 TRUE) или 0 ложь).

  • true — Ищите все блоки Model в иерархии модели заданного system.

  • false — Ищите только систему верхнего уровня.

Типы данных: логический

Опция, чтобы включать защищенные модели в результаты поиска в виде разделенной запятой пары, состоящей из 'IncludeProtectedModels' и числовой или логический 1 TRUE) или 0 ложь).

Эта установка только влияет на возвращенный список моделей, на которые ссылаются; Это не влияет на возвращенный список блоков Model.

Типы данных: логический

Опция, чтобы включать прокомментированные блоки в результаты поиска в виде разделенной запятой пары, состоящей из 'IncludeCommented' и числовой или логический 1 TRUE) или 0 ложь).

Типы данных: логический

Опция, чтобы совпадать со случаем при поиске в виде true для поиска с учетом регистра или false для поиска без учета регистра.

Типы данных: логический

Опция для поиска, чтобы перейти по ссылкам библиотеки в виде true или false. Если true, поиск переходит по ссылкам в библиотечные блоки.

Типы данных: логический

Опции, чтобы искать маскированные блоки в виде:

  • 'all' — Поиск во всех маскированных блоках.

  • 'none' — Предотвратите поиск в системах маскированных.

  • 'functional' — Включайте замаскированные подсистемы, которые не имеют диалоговых окон.

  • 'graphical' — Включайте замаскированные подсистемы, которые не имеют рабочих областей или диалоговых окон.

Типы данных: char | string

Указатель на функцию, чтобы совпадать с элементами в поиске, такими как блоки, система, линии, порты и аннотации. Используйте MatchFilter определить, должны ли элементы быть включены или пропущены в поиске.

Именованная функция должна быть задана в MATLAB® программный файл. Функция берет указатель элемента, как введено и возвращает два выходных параметра.

 function [match, prune] = func(element)
  • Вход element указатель обрабатываемого блока.

  • Первый выход, match, логическое значение. Если false, ищите пропускает элемент.

  • Второй выход, prune, дополнительное логическое значение, которое только применяется когда element подсистема. Значением по умолчанию является false. Если это значение установлено к true, целая подсистема не использована от поиска.

Например, используйте MatchFilter найти весь Model блокируется в модели для который InitFcn коллбэк задан с помощью функции filter, initFcnMdlBlocks:

function match = initFcnMdlBlocks(handle)
  match = ~isempty(get_param(handle,'InitFcn'));
end
addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
model='slexVariantMdlRefCondProp';
load_system(model);
[models,blocks] = find_mdlrefs(model,'MatchFilter',@initFcnMdlBlocks)

Варианты: Чтобы найти активные варианты или код компилируют различные блоки, компилируют модель и применяют соответствующую функцию filter соответствия что Simulink® обеспечивает.

  • Simulink.match.activeVariants — Совпадайте с блоками, которые активны в симуляции после компиляции модели.

  • Simulink.match.codeCompileVariants — Совпадайте с блоками, которые являются частью сгенерированного кода после компиляции модели.

Например, используйте Simulink.match.activeVariants опция, чтобы найти активные варианты в модели.

addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
model='slexVariantMdlRefCondProp';
load_system(model);
set_param(model,'SimulationCommand','update');
[models,blocks] = find_mdlrefs(model,'MatchFilter',@Simulink.match.activeVariants);

Например, используйте Simulink.match.codeCompileVariants опция, чтобы найти варианты, которые являются частью сгенерированного кода C.

addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
load_system('slexVariantMdlRefCondProp');
assignin('base','VSS_MODE',2);
slexVariantMdlRefCondProp([],[],[],'compileForCodegen');
[models,blocks] = find_mdlrefs('slexVariantMdlRefCondProp',...
                               'MatchFilter',@Simulink.match.codeCompileVariants);
slexVariantMdlRefCondProp([],[],[],'term');

Примечание

Variants аргумент будет удален. Используйте MatchFilter вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Опция, чтобы включать различные модели в результаты поиска в виде разделенной запятой пары, состоящей из 'Variants' и 'ActivePlusCodeVariants', 'ActiveVariants', или 'AllVariants'.

  • 'ActivePlusCodeVariants' — Включайте все различные модели в Variant Subsystem, которые активны в симуляции, и часть сгенерированного кода.

  • 'ActiveVariants' — Включайте активные различные модели в блок Variant Subsystem.

  • 'AllVariants' — Включайте все различные модели в блок Variant Subsystem.

Это поисковое ограничение применяется только к блокам Variant Subsystem, которым установили Variant control mode на expression или label. Используйте find_mdlrefs функция с MatchFilter опция, чтобы работать со всеми типами различных блоков.

Типы данных: char | string

Опция, чтобы включать заданную систему в результаты поиска в виде разделенной запятой пары, состоящей из 'ReturnTopModelAsLastElement' и числовой или логический 1 TRUE) или 0 ложь).

По умолчанию последним элементом в возвращенном списке моделей, на которые ссылаются, является имя модели, библиотеки или файла подсистемы, который вы задали с system аргумент. Если вы задаете блок, последним элементом является имя файла, который содержит его.

Типы данных: логический

Выходные аргументы

свернуть все

Имена моделей, возвращенных как массив ячеек из символьных векторов.

По умолчанию последним элементом является имя модели, библиотеки или файла подсистемы, который вы задали с system аргумент. Если вы задаете блок, последним элементом является модель, библиотека или файл подсистемы, который содержит его.

Имена блоков Model, возвращенных как массив ячеек из символьных векторов.

Вопросы совместимости

развернуть все

Предупреждает запуск в R2021a

Поведение изменяется в R2021a

Не рекомендуемый запуск в R2020b

Представлено до R2006a