exponenta event banner

найти

Класс: Simulink. SimulationData. Набор данных
Пакет: Simulink. SimulationData

Получение элемента или коллекции элементов из набора данных

Описание

пример

[datasetOut,retIndex]=find(datasetIn,Name,Value,…) возвращает Simulink.SimulationData.Dataset объект и индексы элементов, значения свойств которых совпадают с указанными именами и значениями свойств. Укажите дополнительные пары, разделенные запятыми Name,Value свойства. Name - имя свойства и Value - соответствующее значение. Name должно отображаться внутри отдельных кавычек (' '). Можно указать несколько свойств пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN.

пример

[datasetOut,retIndex]=find(datasetIn,Name,Value,'-logicaloperator',…Name,Value,…) применяет логический оператор к соответствующему значению свойства. Можно объединить несколько логических операторов. Логический оператор может быть одним из следующих:

  • -or

  • -and

Если операция не указана, метод предполагает -and.

пример

[datasetOut,retIndex]=find(datasetIn,'-regexp',Name,Value,…) сопоставляет элементы с помощью регулярных выражений, как если бы значение свойства было передано regexp функция как:

regexp(element.Name,Value)
Метод применяет регулярное сопоставление выражений к парам имя-значение, которые появляются после -regexp. Если нет -regexp, метод соответствует элементам, как если бы значение свойства передавалось как:

isequal(element.Name,Value)

Для получения дополнительной информации о -regexp, см. раздел -regexp с несколькими контурами блоков.

-regexp С несколькими контурами блоков

-regexp работает со свойствами типа char. Для задания нескольких контуров блоков можно использовать Simulink.SimulationData.BlockPath и Simulink.BlockPath. Например, при регистрации сигнала в ссылочной модели можно использовать Simulink.SimulationData.BlockPath для указания нескольких контуров блоков.

Метод возвращает элементы, содержащие свойство BlockPath, в которых один или несколько отдельных путей блоков соответствуют указанному Value путь при использовании:

  • -regexp с помощью BlockPath Name собственность.

  • Value как вектор символов или скалярный объект типа Simulink.SimulationData.BlockPath с одним контуром блока

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

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

SimulationData.Dataset объект, в котором выполняется поиск соответствующих элементов.

Имя свойства, которое будет найдено в элементе.

Значение свойства, которое будет найдено в элементе.

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

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

SimulationData.Dataset объект, содержащий элементы, соответствующие указанным критериям. Если совпадение отсутствует SimulationData.Dataset объект, возвращенный SimulationData.Dataset объект не содержит элементов.

Индексы элементов datasetIn , которые соответствуют указанным критериям.

Примеры

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

Найдите определенный путь к блоку (заданный символьным вектором) и индекс порта.

dsOut = find(dsIn, 'BlockPath', 'vdp/x1', 'PortIndex', 1)

Поиск элементов, которые имеют либо имя, либо распространенное имя как InValve.

dsOut = find(dsIn, 'Name', 'InValve', '-or', 'PropagatedName', 'InValve')
dsOut = find(dsIn, '-regex','Name', 'In*', '-or', …
                   '-regex','PropagatedName', 'In*')

Поиск и замена всех элементов, содержащих specified_name с new_name.

[dsOut,idxInDs] = find(ds, 'specified_name');
for idx=1: length(idxInDs)
  % process each element
   elm = get(dsOut, idx);
   elm.Name= 'New_Name'
   dsIn = setElement(dsIn, idxInDs(idx), elm);
end

Поиск всех сигналов, зарегистрированных в subSys использование -regexp.

dsOut = find(dsIn, '-regexp', 'BlockPath', 'mdl/subSys/.*')

Найдите все сигналы, зарегистрированные в блоке Model.

dsOut = find(dsIn, '-regexp', 'BlockPath', 'refmdl/ModelBlk')

Альтернатива

Фигурные скобки можно использовать для оптимизации синтаксиса индексирования для получения элемента в наборе данных вместо использования find. Индекс должен быть скаляром, не превышающим число элементов в переменной. Например, получить второй элемент logsout набор данных.

logsout{2}

Кроме того, можно использовать get способ получения элемента или коллекции элементов из набора данных.

Представлен в R2015b