Main Content

extractsigroi

信号マスクに基づく関心領域の抽出

R2020b 以降

説明

sigroi = extractsigroi(msk,x) は、msk のソースとプロパティに基づいて、入力信号ベクトル x の関心領域を抽出します。

sigroi = extractsigroi(msk,x,Name,Value) は、名前と値の引数を使用して追加オプションを指定します。抽出した領域を連結することができます。また、カテゴリごとに抽出する領域の数を選択することができます。

[sigroi,limits] = extractsigroi(___) は、抽出した領域の端点の場所が格納された配列を返します。

[sigroi,limits,numroi,cats] = extractsigroi(___) は、cats にリストされた各カテゴリで見つかった領域の数が格納されたベクトル numroi も返します。

すべて折りたたむ

A というラベルが付けられた 3 つの領域、および B というラベルが付けられた 2 つの領域をもつ関心領域 (ROI) table について考えます。このテーブルを使用して、signalMask オブジェクトを作成します。

roiTbl = table([2 5; 7 10; 12 13; 15 25; 28 30],["A","B","A","B","A"]');

m = signalMask(roiTbl);

150 未満の素数が格納された配列を生成します。signalMask オブジェクトを使用して、ROI table で指定された素数を抽出します。A の素数の最初の集合と、B の素数の最初の集合を表示します。

prm = primes(150);

rgs = extractsigroi(m,prm);

AB = [rgs{1}{1} rgs{2}{1}]
AB = 4×2

     3    17
     5    19
     7    23
    11    29

同じ操作を繰り返します。ただし、今度はカテゴリごとに関心領域を連結します。A の最初の 6 個の素数と、B の最後の 6 個の素数を表示します。

rgs = extractsigroi(m,prm,'ConcatenateRegions',true);

AB = [rgs{1}(1:6) rgs{2}(end-5:end)]
AB = 6×2

     3    71
     5    73
     7    79
    11    83
    37    89
    41    97

同じ操作を繰り返します。ただし、今度はサンプルが 2 個以下の領域を無視します。A の最初の 6 個の素数と、B の最後の 6 個の素数を表示します。

m.MinLength = 3;

rgs = extractsigroi(m,prm,'ConcatenateRegions',true);

AB = [rgs{1}(1:6) rgs{2}(end-5:end)]
AB = 6×2

     3    71
     5    73
     7    79
    11    83
   107    89
   109    97

入力引数

すべて折りたたむ

信号マスク。signalMask オブジェクトとして指定します。

例: signalMask(table([2 4;6 7],["male" "female"]')) は、3 つのサンプルをもつ領域 male と 2 つのサンプルをもつ領域 female を使用して信号マスクを指定します。

例: signalMask(categorical(["" "male" "male" "male" "" "female" "female" ""]',["male" "female"])) は、3 つのサンプルをもつ領域 male と 2 つのサンプルをもつ領域 female を使用して信号マスクを指定します。

例: signalMask([0 1 1 1 0 0 0 0;0 0 0 0 0 1 1 0]','Categories',["male" "female"]) は、3 つのサンプルをもつ領域 male と 2 つのサンプルをもつ領域 female を使用して信号マスクを指定します。

入力信号。ベクトルで指定します。

例: chirp(0:1/1e3:1,25,1,50) は、1 kHz でサンプリングされたチャープを指定します。

データ型: single | double
複素数のサポート: あり

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: 'ConcatenateRegions',true,'SelectedRegions',[2 4] は、この関数が各カテゴリの 2 番目と 4 番目の領域を抽出して連結するように指定します。

抽出した信号領域を連結するオプション。logical 値として指定します。

  • この引数が false に設定されている場合、sigroi の各セルは各信号領域に対応した cell 配列になります。

  • この引数が true に設定されている場合、sigroi の各セルは、msk に含まれる各カテゴリについて抽出された信号領域を連結したベクトルになります。

データ型: logical

抽出対象として選択された領域。整数のベクトルとして指定します。

  • この引数が 1 に設定されている場合、extractsigroi は、各カテゴリの最初の領域のみを抽出して、sigroi に返します。

  • この引数が [i j k ...] に設定されている場合、extractsigroi は、各カテゴリの i 番目、j 番目、k 番目、およびそれに続く領域を抽出して、sigroi に返します。

この関数は、所与のカテゴリに属する領域の数より大きいインデックスを無視します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

信号の関心領域。cell 配列として返されます。sigroi の各セルには、msk に含まれる各カテゴリについて抽出された信号領域をもつ cell 配列が格納されます。

  • ConcatenateRegionsfalse に設定されている場合、sigroi の各セルは各信号領域に対応した cell 配列になります。

  • ConcatenateRegionstrue に設定されている場合、sigroi の各セルは、msk に含まれる各カテゴリについて抽出された信号領域を連結したベクトルになります。

抽出された領域の範囲。2 列の行列の cell 配列として返されます。mskSampleRate が指定されている場合、領域範囲は秒単位で表されます。msk でサンプル レートが指定されていない場合、領域範囲は信号サンプルのインデックスに対応する整数値となります。

cats の各カテゴリで見つかった領域の数。整数のベクトルとして返されます。

カテゴリ リスト。string のベクトルとして返されます。

バージョン履歴

R2020b で導入