subset

Создайте новый datastore ансамбля из подмножества существующего datastore ансамбля

Синтаксис

Описание

пример

sens = subset(ens,idx) создает новый datastore ансамбля sens от подмножества существующего datastore ансамбля ens путем извлечения членов ансамбля, которые соответствуют индексам в idx.

Использование subset когда это необходимо, выполнять операции ансамбля на определенном члене ансамбля или группе членов ансамбля, и при использовании последовательности read команды с исходным ансамблем не предоставляют членам ансамбля, которые вы хотите обработать. Например, можно использовать subset к:

  • Извлеките только члены ансамбля с определенным условием отказа.

  • Выполните предварительную обработку и покажите генерацию на меньшем ансамбле, который содержит подобное распределение условий более многочисленному ансамблю.

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

Задайте, какие члены вы хотите извлечь использование вектора индекса idx. Можно затем работать с извлеченным ансамблем, использующим те же методы, которые вы используете для любого ансамбля данных.

Примеры

свернуть все

Извлеките член ансамбля, который вы идентифицируете от datastore ансамбля и используете одну команду чтения, чтобы получить содержимое.

В данном примере используйте следующий код, чтобы создать simulationEnsembleDatastore объект с помощью данных, ранее сгенерированных путем выполнения модели Simulink® в различном отказе значения (см. generateSimulationEnsemble). Ансамбль включает данные моделирования для пяти различных значений параметра модели, ToothFaultGain. Из-за объема данных, unzip операция занимает несколько минут.

unzip simEnsData.zip
ens = simulationEnsembleDatastore(pwd,'logsout')
ens = 
  simulationEnsembleDatastore with properties:

           DataVariables: [5x1 string]
    IndependentVariables: [0x0 string]
      ConditionVariables: [0x0 string]
       SelectedVariables: [5x1 string]
                ReadSize: 1
              NumMembers: 5
          LastMemberRead: [0x0 string]
                   Files: [5x1 string]

ems_nm = ens.NumMembers
ems_nm = 5

Ансамбль содержит пять файлов.

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

idx = 4;
sens = subset(ens,idx);
sens_nm = sens.NumMembers
sens_nm = 1

sens содержит один член. Просмотрите имя файла, чтобы подтвердить индекс члена.

sens.Files
ans = 
"/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp95285298/predmaint-ex43507974/TransmissionCasingSimplified_log_4.mat"

Сбросьте sens первому члену и читают содержимое.

reset(sens)
m4 = read(sens)
m4=1×5 table
    PMSignalLogName           SimulationInput                   SimulationMetadata                   Tacho                Vibration     
    _______________    ______________________________    _________________________________    ___________________    ___________________

      {'logsout'}      {1x1 Simulink.SimulationInput}    {1x1 Simulink.SimulationMetadata}    {20213x1 timetable}    {20213x1 timetable}

m4 содержит данные для извлеченного члена.

Создайте datastore ансамбля симуляции из подмножества существующего datastore ансамбля симуляции.

Создайте simulationEnsembleDatastore объект с помощью данных, ранее сгенерированных путем выполнения модели Simulink® в различных значениях отказа.

unzip simEnsData.zip
ens = simulationEnsembleDatastore(pwd,'logsout');
ens_nm = ens.NumMembers
ens_nm = 5

Ансамбль содержит пять файлов. Просмотрите имена файлов.

ens.Files
ans = 5x1 string
    "/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp95285298/predmaint-ex46856662/TransmissionCasingSimplified_log_1.mat"
    "/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp95285298/predmaint-ex46856662/TransmissionCasingSimplified_log_2.mat"
    "/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp95285298/predmaint-ex46856662/TransmissionCasingSimplified_log_3.mat"
    "/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp95285298/predmaint-ex46856662/TransmissionCasingSimplified_log_4.mat"
    "/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp95285298/predmaint-ex46856662/TransmissionCasingSimplified_log_5.mat"

Извлеките первые, третьи, и пятые файлы в новый ансамбль.

idx = [1 3 5];
sens = subset(ens,idx);
sens_nm = sens.NumMembers
sens_nm = 3

Новый ансамбль содержит три члена. Просмотрите имена файлов.

sens.Files
ans = 3x1 string
    "/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp95285298/predmaint-ex46856662/TransmissionCasingSimplified_log_1.mat"
    "/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp95285298/predmaint-ex46856662/TransmissionCasingSimplified_log_3.mat"
    "/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp95285298/predmaint-ex46856662/TransmissionCasingSimplified_log_5.mat"

Новый ансамбль содержит три файла, которые вы индексировали.

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

свернуть все

Исходный datastore ансамбля, из которого можно извлечь члены в виде fileEnsembleDatastore или simulationEnsembleDatastore объект. Для примера извлечения члена от datastore ансамбля см. Извлечение Определенный член от Datastore Ансамбля.

Индексы исходных членов ансамбля, чтобы извлечь в виде числового вектора, целочисленного вектора или логического вектора. Число элементов в векторе не должно превышать число членов в ens. Для числовых или целочисленных векторов все индексы должны быть положительными. Для логических векторов число элементов должно быть равно количеству членов ансамбля в ens. Для примера создания и использования вектора индекса, смотрите, Создают Подмножество Datastore Ансамбля.

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

свернуть все

Извлеченный datastore ансамбля, возвращенный как fileEnsembleDatastore или simulationEnsembleDatastore объект.

Введенный в R2021a