subset

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

Синтаксис

Описание

пример

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

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

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

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

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

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

Примеры

свернуть все

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

В данном примере используйте следующий код для создания 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/BR2021ad_1657350_6935/mlx_to_docbook1/tp1132b914/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/BR2021ad_1657350_6935/mlx_to_docbook1/tp1132b914/predmaint-ex46856662/TransmissionCasingSimplified_log_1.mat"
    "/tmp/BR2021ad_1657350_6935/mlx_to_docbook1/tp1132b914/predmaint-ex46856662/TransmissionCasingSimplified_log_2.mat"
    "/tmp/BR2021ad_1657350_6935/mlx_to_docbook1/tp1132b914/predmaint-ex46856662/TransmissionCasingSimplified_log_3.mat"
    "/tmp/BR2021ad_1657350_6935/mlx_to_docbook1/tp1132b914/predmaint-ex46856662/TransmissionCasingSimplified_log_4.mat"
    "/tmp/BR2021ad_1657350_6935/mlx_to_docbook1/tp1132b914/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/BR2021ad_1657350_6935/mlx_to_docbook1/tp1132b914/predmaint-ex46856662/TransmissionCasingSimplified_log_1.mat"
    "/tmp/BR2021ad_1657350_6935/mlx_to_docbook1/tp1132b914/predmaint-ex46856662/TransmissionCasingSimplified_log_3.mat"
    "/tmp/BR2021ad_1657350_6935/mlx_to_docbook1/tp1132b914/predmaint-ex46856662/TransmissionCasingSimplified_log_5.mat"

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

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

свернуть все

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

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

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

свернуть все

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

Введенный в R2021a