find

Класс: 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
Для просмотра документации необходимо авторизоваться на сайте