поиск

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

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

Синтаксис

[datasetOut,retIndex]=find(datasetIn,Name,Value,…)
[datasetOut,retIndex]=find(datasetIn,Name,Value,'-logicaloperator',…Name,Value,…)
[datasetOut,retIndex]=find(datasetIn,'-regexp',Name,Value,…)

Описание

пример

[datasetOut,retIndex]=find(datasetIn,Name,Value,…) возвращает объект Simulink.SimulationData.Dataset и индексы элементов, значения свойств которых совпадают с заданными именами свойства и значениями. Задайте дополнительные пары, разделенные запятой свойств Name,Value. Name является именем свойства, и Value является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' '). Можно задать несколько свойств пары "имя-значение" в любом порядке как 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 с одним блоком path

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

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

Объект SimulationData.Dataset, в котором можно искать соответствие с элементами.

Имя свойства найти в элементе.

Значение свойства найти в элементе.

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

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

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

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

Примеры

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

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

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