exponenta event banner

подмножество

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

Описание

пример

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

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

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

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

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

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

Примеры

свернуть все

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

В этом примере используйте следующий код для создания 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 содержит данные для извлеченного элемента.

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

Создать 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"

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

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

свернуть все

Хранилище данных исходного ансамбля для извлечения элементов, указанное как fileEnsembleDatastore или simulationEnsembleDatastore объект. Пример извлечения участника из хранилища данных ансамбля см. в разделе Извлечение конкретного участника из хранилища данных ансамбля.

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

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

свернуть все

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

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