Main Content

subset

既存のアンサンブル データストアのサブセットから新しいアンサンブル データストアを作成

R2021a 以降

説明

sens = subset(ens,idx) は、idx のインデックスに対応するアンサンブル メンバーを抽出して、既存のアンサンブル データストア ens のサブセットから新しいアンサンブル データストア sens を作成します。

subset は、特定のアンサンブル メンバーまたはアンサンブル メンバーのグループに対してアンサンブルの操作を実行する際に、処理するアンサンブル メンバーが read コマンドとソース アンサンブルのシーケンスを使用して得られない場合に使用します。たとえば、subset を使用して次のことが可能です。

  • 特定の故障状態のアンサンブル メンバーのみを抽出する。

  • より大規模なアンサンブルと分布状況が似ている小規模なアンサンブルで事前の処理と特徴生成を実行する。

  • 特定の特性をもつ単一のアンサンブル メンバーを抽出し、メンバーの動作を分離して調べる。

抽出するメンバーをインデックス ベクトル idx を使用して指定します。その後、任意のデータ アンサンブルに使用する手法と同じ手法を使用して、抽出されたアンサンブルを操作できます。

すべて折りたたむ

アンサンブル データストアから識別するアンサンブル メンバーを抽出し、単一の read コマンドを使用して内容を取得します。

この例では、次のコードを使用して、前に Simulink® モデルをさまざまな故障値で実行して生成されたデータを使って simulationEnsembleDatastore オブジェクトを作成します (generateSimulationEnsembleを参照)。アンサンブルには、モデル パラメーター ToothFaultGain の 5 つの異なる値についてのシミュレーション データが含まれます。データのボリュームにより、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

アンサンブルには 5 つのファイルが含まれています。

4 番目のアンサンブル メンバーを新しい単一メンバーのアンサンブル sens に抽出します。

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

1 つのメンバーが sens に含まれています。ファイル名を表示してメンバー インデックスを確認します。

sens.Files
ans = 
"/tmp/Bdoc23b_2395265_1654580/tpdbf4da40/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 に含まれています。

既存のシミュレーション アンサンブル データストアのサブセットからシミュレーション アンサンブル データストアを作成します。

前に Simulink® モデルをさまざまな故障値で実行して生成されたデータを使って simulationEnsembleDatastore オブジェクトを作成します。

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

アンサンブルには 5 つのファイルが含まれています。ファイル名を表示します。

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

1 番目、3 番目、および 5 番目のファイルを新しいアンサンブルに抽出します。

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

3 つのメンバーが新しいアンサンブルに含まれています。ファイル名を表示します。

sens.Files
ans = 3x1 string
    "/tmp/Bdoc23b_2395265_1653469/tp06d81236/predmaint-ex46856662/TransmissionCasingSimplified_log_1.mat"
    "/tmp/Bdoc23b_2395265_1653469/tp06d81236/predmaint-ex46856662/TransmissionCasingSimplified_log_3.mat"
    "/tmp/Bdoc23b_2395265_1653469/tp06d81236/predmaint-ex46856662/TransmissionCasingSimplified_log_5.mat"

インデックスを指定した 3 つのファイルが新しいアンサンブルに含まれています。

入力引数

すべて折りたたむ

メンバーを抽出するソース アンサンブル データストア。fileEnsembleDatastore オブジェクトまたは simulationEnsembleDatastore オブジェクトとして指定します。アンサンブル データストアからメンバーを抽出する例については、アンサンブル データストアからの特定のメンバーの抽出を参照してください。

抽出するソース アンサンブル メンバーのインデックス。数値ベクトル、整数ベクトル、または logical ベクトルとして指定します。ベクトルの要素の数が ens のメンバーの数を超えてはなりません。数値ベクトルまたは整数ベクトルの場合、すべてのインデックスが正でなければなりません。logical ベクトルの場合、要素の数は ens のアンサンブル メンバーの数と等しくなければなりません。インデックス ベクトルの作成と使用の例については、アンサンブル データストアのサブセットの作成を参照してください。

出力引数

すべて折りたたむ

抽出されたアンサンブル データストア。fileEnsembleDatastore オブジェクトまたは simulationEnsembleDatastore オブジェクトとして返されます。

バージョン履歴

R2021a で導入