ラベル付き信号セットの確認
信号属性、関心領域、および点のラベル付けの例で作成した MAT ファイルを MATLAB® ワークスペースに読み込みます。ラベル付き信号セットに信号ラベラーを使用して追加した定義が含まれていることを確認します。
load Whale_Songs
labelDefinitionsSummary(whalesongs)ans=3×9 table
LabelName LabelType LabelDataType Categories ValidationFunction DefaultValue Sublabels Tag Description
______________ ___________ _____________ ____________ __________________ ____________ ___________________________ ___ ____________________________
"WhaleType" "attribute" "categorical" {3×1 string} {["N/A" ]} {0×0 double} {0×0 double } "" "Whale type"
"MoanRegions" "roi" "logical" {["N/A" ]} {0×0 double} {0×0 double} {0×0 double } "" "Regions where moans occur"
"TrillRegions" "roi" "logical" {["N/A" ]} {0×0 double} {0×0 double} {1×1 signalLabelDefinition} "" "Regions where trills occur"
TrillPeaks が TrillRegions のサブラベルであることを確認します。
labelDefinitionsHierarchy(whalesongs)
ans =
'WhaleType
Sublabels: []
MoanRegions
Sublabels: []
TrillRegions
Sublabels: TrillPeaks
'
セットの 2 番目のメンバーを取得します。timetable 変数の名前を取得します。
song = getSignal(whalesongs,2); summary(song)
song: 76579×1 timetable
Row Times:
Time: duration
Variables:
whale2: double
Statistics for applicable variables and row times:
NumMissing Min Median Max Mean Std
Time 0 0 sec 9.5722 sec 19.144 sec 9.5722 sec 5.5266 sec
whale2 0 -0.3733 0 0.3791 8.1118e-05 0.0392
信号をプロットします。
t = song.Time; sng = song.whale2; plot(t,sng)

ラベル付けされた領域の可視化
signalMaskオブジェクトを使用して、ラベル付けした関心領域を表示および特定します。より見やすくなるように、ラベル値を logical から categorical に変更します。
mvals = getLabelValues(whalesongs,2,'MoanRegions'); mvals.Value = categorical(repmat("moan",size(mvals,1),1)); tvals = getLabelValues(whalesongs,2,'TrillRegions'); tvals.Value = categorical(repmat("trill",size(tvals,1),1)); msk = signalMask([mvals;tvals],'SampleRate',1/seconds(t(2)-t(1))); plotsigroi(msk,sng)

ラベル付けされた点の可視化
ラベル付けしたふるえ声のピークを表示および特定します。
pk = getLabelValues(whalesongs,2,{'TrillRegions','TrillPeaks'});
locs = zeros(size(pk,1),1);
for kj = 1:length(locs)
locs(kj) = find(seconds(t) == pk.Location(kj));
end
hold on
plot(seconds(t(locs)),sng(locs)+0.01,'v')
text(seconds(t(locs))+0.2,sng(locs)+0.05,int2str(cell2mat(pk.Value)))
hold off