catmask
構文
説明
例
指定した長さをもつ categorical マスク
2 ~ 30 の番号が付けられたサンプルを含む 4 つの関心領域をもつ関心領域 (ROI) table のマスクについて考えます。カテゴリ ラベルを A
および B
として指定します。このマスクを使用して、signalMask
オブジェクトを作成します。
roiTbl = table([2 5; 7 10; 15 25; 28 30],["A","B","B","A"]'); m = signalMask(roiTbl);
シーケンス長に 35 を指定し、このオブジェクトから categorical マスクを抽出します。30 番目より先のサンプルは、<undefined>
として返されます。
catSeq = catmask(m,35); catSeq(max(roiTbl.Var1(end)):end)
ans = 6x1 categorical
A
<undefined>
<undefined>
<undefined>
<undefined>
<undefined>
categorical マスクを再度抽出します。ただし、今度はシーケンス長に 8 を指定します。8 番目より先のサンプルは削除されます。
catSeq = catmask(m,8)
catSeq = 8x1 categorical
<undefined>
A
A
A
A
<undefined>
B
B
オーバーラップするバイナリ シーケンスからの categorical マスク
バイナリ シーケンスの 18 行 2 列のマスクについて考えます。このマスクを使用して、signalMask
オブジェクトを作成します。カテゴリに A
と B
のラベルをこの順序で付けます。
binSeqs = logical([ ... 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1; 1 1 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0]'); m = signalMask(binSeqs); m.Categories = ["A" "B"];
このオブジェクトから categorical マスクを抽出します。カテゴリ間のオーバーラップを処理するために、2 つのカテゴリで共有されているサンプルをリスト内の最初のカテゴリである A
に割り当てます。
seqA = catmask(m,'OverlapAction','PrioritizeByList'); seqA(binSeqs(:,1) & binSeqs(:,2))
ans = 4x1 categorical
A
A
A
A
categorical マスクを再度抽出します。ただし、今度は共有されているサンプルを明示的な優先度リストに基づいて B
に割り当て、カテゴリ間のオーバーラップを処理します。
seqB = catmask(m,'OverlapAction','PrioritizeByList', ... 'PriorityList',[2 1]); seqB(binSeqs(:,1) & binSeqs(:,2))
ans = 4x1 categorical
B
B
B
B
サンプルが 3 個未満の領域を削除してオーバーラップを処理します。その結果として変更されたバイナリシーケンス マスクを表示します。
m.MinLength = 3; binmask(m)'
ans = 2x18 logical array
0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0
0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0
以前に共有されていたサンプルは、残りの領域のカテゴリに割り当てられます。
seqM = catmask(m); seqM(binSeqs(:,1) & binSeqs(:,2))
ans = 4x1 categorical
B
B
A
A
入力引数
msk
— 信号マスク
signalMask
オブジェクト
信号マスク。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
を使用して信号マスクを指定します。
len
— 出力シーケンス長
整数スカラー
出力シーケンス長。整数スカラーとして指定します。len
を超える領域は無視されます。次の場合、出力 categorical シーケンス seq
は <missing>
の値でパディングされます。
SourceType
が'categoricalSequence'
または'binarySequences'
で、len
がソース シーケンスの長さより大きい。SourceType
が'roiTable'
で、len
が領域の最大インデックスより大きい。
RightExtension
が非ゼロで、SourceType
が 'categoricalSequence'
または 'binarySequences'
の場合、catmask
によって領域が拡張され (シーケンス長を超えて拡張される場合があります)、LeftExtension
、LeftShortening
、RightShortening
、MergeDistance
、MinLength
に基づいて他のすべての変更が適用されてから、元のシーケンス長または len
で指定された長さになるように変更適用後のシーケンスが打ち切られます。
最後に、引数 'OverlapAction'
が指定されている場合、この引数に設定された値に基づいて、catmask
がオーバーラップを処理します。
出力の長さの詳細については、領域範囲の変更を参照してください。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
action
— オーバーラップを処理する方法
'error'
(既定値) | 'prioritizeByList'
オーバーラップを処理する方法。'error'
または 'prioritizeByList'
として指定します。
'error'
— 異なるカテゴリをもつ領域がオーバーラップしている場合、catmask
がエラーをスローします。'prioritizeByList'
—catmask
は、idxlist
で指定された優先順位のリストを使用し、異なるカテゴリをもつ領域のオーバーラップを処理します。リストの先頭にあるカテゴリの優先順位が最も高く、オーバーラップが存在する場合、そのカテゴリのサンプルはすべて保持されます。リスト内の 2 番目のカテゴリはその次に優先順位が高く、オーバーラップが存在する場合、そのカテゴリのサンプルのうち解決済みでないサンプルが保持されます。idxlist
が指定されていない場合、catmask
は、msk
のCategories
プロパティに表れるのと同じ順序でカテゴリの優先順位を決定します。
データ型: char
| string
idxlist
— オーバーラップが存在する場合のカテゴリの優先順位
msk
の Categories
リスト (既定値) | 整数のベクトル
オーバーラップが存在する場合の優先順位。整数のベクトルとして指定します。idxlist
のインデックスは、msk
の Categories
のエントリに対応し、異なるカテゴリ値をもつ領域がオーバーラップする場合には、それらのエントリを処理する優先度の順に並べられます。idxlist
には、Categories
のすべての要素に対するインデックスが含まれていなければなりません。リストの先頭にあるカテゴリの優先順位が最も高くなります。これは、異なるカテゴリをもつ領域がオーバーラップする場合、優先順位が最も高いカテゴリの値がすべて保持されることを意味します。続いて、オーバーラップしていない残りのサンプルのうち、次に優先順位の高い値が保持され、以下同様に処理されます。
idxlist
が指定されていない場合、catmask
は、msk
の Categories
プロパティに表れるのと同じ順序でカテゴリの優先順位を決定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
出力引数
seq
— categorical シーケンス マスク
categorical 配列
categorical シーケンス マスク。categorical 配列として返されます。関心領域に属さず、ラベル値をもたない seq
のサンプルは、欠損値を表す categorical 値に設定され、<undefined>
と表示されます。詳細については、categorical
を参照してください。
SourceType
が'categoricalSequence'
または'binarySequences'
で、len
が指定されていない場合、seqs
はソース マスク シーケンスと同じ長さになります。SourceType
が'roiTable'
の場合、len
を指定しなければなりません。
numroi
— 領域の数
整数のベクトル
cats
の各カテゴリで見つかった領域の数。整数のベクトルとして返されます。
cats
— カテゴリ リスト
string のベクトル
カテゴリ リスト。string のベクトルとして返されます。
バージョン履歴
R2020b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)