Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

setLabelValue

ラベル付き信号セットのラベル値の設定

説明

setLabelValue(lss,midx,lblname,val) は、midx で指定されたラベル付き信号セット lss のメンバーの属性ラベル lblname の値を val に設定します。lblname に既定値があり、ラベルをその既定値に設定する場合は、val を省略します。

setLabelValue(lss,midx,lblname,limits,val) は、lblname という名前の ROI ラベルに limits によって区切られた領域を追加します。limits の行数は、追加される領域の数を指定します。

setLabelValue(lss,midx,lblname,locs,val) は、lblname という名前の点ラベルに点を追加します。locs は、追加される点の数と位置を指定します。

setLabelValue(___,'LabelRowIndex',ridx) は、ROI ラベルまたは点ラベルの行インデックス (ridx) を指定します。指定された値により、その行の現在の値が置き換えられます。この引数を省略した場合、この関数は既存のラベル値に ROI または点の値を追加します。

setLabelValue(___,'SublabelRowIndex',sridx) は、ROI サブラベルまたは点サブラベルの行インデックス (sridx) を指定します。指定された値により、そのサブラベルの行の現在の値が置き換えられます。

すべて折りたたむ

クジラの歌の録音を含むラベル付き信号セットを読み込みます。

load whales
lss
lss = 
  labeledSignalSet with properties:

             Source: {2x1 cell}
         NumMembers: 2
    TimeInformation: "sampleRate"
         SampleRate: 4000
             Labels: [2x3 table]
        Description: "Characterize wave song regions"

 Use labelDefinitionsHierarchy to see a list of labels and sublabels.
 Use setLabelValue to add data to the set.

各メンバーの最大値に対応する新しいラベルを信号セットに追加します。

theMax = signalLabelDefinition('Maximum', ...
    'LabelDataType','numeric', ...
    'Description','Maximum value of the signal');
addLabelDefinitions(lss,theMax)

各ラベル付き信号について、新しいラベルの値を信号の最大値に設定します。信号とその最大値をプロットします。

fs = lss.SampleRate;
for k = 1:lss.NumMembers
    sg = getSignal(lss,k);
    [mx,ix] = max(sg);
    
    setLabelValue(lss,k,'Maximum',mx)
    
    subplot(2,1,k)
    plot((0:length(sg)-1)/fs,sg,ix/fs,mx,'*')
end

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 2 contains 2 objects of type line. One or more of the lines displays its values using only markers

セット内のラベルの名前と値を表示します。

lbldefs = getLabelValues(lss)
lbldefs=2×4 table
                 WhaleType    MoanRegions    TrillRegions     Maximum  
                 _________    ___________    ____________    __________

    Member{1}      blue       {3x2 table}    {1x3 table}     {[0.2850]}
    Member{2}      blue       {3x2 table}    {1x3 table}     {[0.3791]}

信号の最大値は、属性として表すよりも点ラベルとして表す方が良いと判断します。数値の定義を削除し、最大値を再定義します。

removeLabelDefinition(lss,'Maximum')
theMax = signalLabelDefinition('Maximum', ...
    'LabelType','point','LabelDataType','numeric', ...
    'Description','Maximum value of the signal');
addLabelDefinitions(lss,theMax)

各ラベル付き信号について、新しいラベルの値を信号の最大値に設定します。

for k = 1:lss.NumMembers
    sg = getSignal(lss,k);
    [mx,ix] = max(sg);
    setLabelValue(lss,k,'Maximum',ix/fs,mx)
end

信号とその最大値をプロットします。

for k = 1:lss.NumMembers
    subplot(2,1,k)
    sg = getSignal(lss,k);
    peaks = getLabelValues(lss,k,'Maximum');
    plot((0:length(sg)-1)/fs,sg, ...
        peaks.Location,cell2mat(peaks.Value),'*')
end

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 2 contains 2 objects of type line. One or more of the lines displays its values using only markers

入力引数

すべて折りたたむ

ラベル付き信号セット。labeledSignalSet オブジェクトとして指定します。

例: labeledSignalSet({randn(100,1) randn(10,1)},signalLabelDefinition('female')) は、属性 'female' を含むランダム信号の 2 つのメンバーのセットを指定します。

メンバーの行番号。正の整数で指定します。midx は、メンバーの行番号をラベル付き信号セットのLabelsテーブルに表示される行番号として指定します。

ラベル名。文字ベクトルまたは string スカラーとして指定します。

ラベルまたはサブラベル名。ラベルを指定するには、文字ベクトルまたは string スカラーを使用します。サブラベルを指定するには、文字ベクトルの 2 要素 cell 配列または 2 要素 string 配列を使用します。

  • 最初の要素は親ラベルの名前です。

  • 2 番目の要素はサブラベルの名前です。

ROI ラベルまたは点ラベルのサブラベルを対象にする場合は、ラベルを設定する親ラベルの 'LabelRowIndex' も指定しなければなりません。サブラベル値を設定するには、親の行が既に存在していなければなりません。

例: signalLabelDefinition("Asleep",'LabelType','roi') は、臨床試験中に患者が睡眠状態であった信号の領域用に、"Asleep" という名前のラベルを指定します。

例: {'Asleep' 'REM'} または ["Asleep" "REM"] は、患者がレム睡眠状態である信号の領域を指定します。

ラベル値。数値、logical 値、categorical 値、string、table、または timetable として指定します。val は、任意の前述の型の配列にすることもできます。val は、lblname に指定したデータ型でなければなりません。

  • locs を指定する場合は、locs と同じ数の要素を val が持たなければなりません。

  • limits を指定する場合は、limits の行数と同じ数の要素を val が持たなければなりません。

    • limits に複数の行があり、lblname の型が 'numeric' または 'logical' の場合、val はベクトルまたは cell 配列でなければなりません。

    • limits に複数の行があり、lblname の型が 'string' または 'categorical' の場合、val は string 配列または文字ベクトルの cell 配列でなければなりません。

    • limits に複数の行があり、lblname の型が 'table' または 'timetable' の場合、val は table または timetable の cell 配列でなければなりません。

非スカラーのラベル値の代入

非スカラーのラベル値を複数の関心点または関心領域に割り当てるには、cell 配列を使用しなければなりません。たとえば、次のラベル付き信号セットが与えられたとします。

lss = labeledSignalSet(randn(10,1), [...
    signalLabelDefinition('pl','LabelType','point', ...
                               'LabelDataType','numeric') ...
    signalLabelDefinition('rl','LabelType','ROI', ...
                               'LabelDataType','numeric')]);
次のコマンドを見てみましょう。
setLabelValue(lss,1,'pl',5,{[3 4]'})
setLabelValue(lss,1,'rl',[2 3; 8 9],{[2 1]' [6 7]})
5 に列ベクトル [3 4]'2 から 3 の範囲の領域に列ベクトル [2 1]'8 から 9 の範囲の領域に行ベクトル [6 7] のラベルを付けます。

領域の範囲。2 列の行列として指定します。

  • lss に時間情報がない場合は、limits が領域の定義に使用される最小インデックスと最大インデックスを定義します。

  • lss に時間情報がある場合は、limits が領域の定義に使用される最小時点と最大時点を定義します。

limits は、lblname のラベル定義のROILimitsDataTypeプロパティによって指定されたデータ型でなければなりません。

例: seconds([0:3;1:4]')

例: [0:3;1:4]'

点の位置。ベクトルとして指定します。

  • lss に時間情報がない場合は、locs が点の位置に対応するインデックスを定義します。

  • lss に時間情報がある場合は、locs が点の位置に対応する時点を定義します。

locs は、lblname のラベル定義のPointLocationsDataTypeプロパティによって指定されたデータ型でなければなりません。

ラベルの行インデックス。正の整数で指定します。この引数は、ROI と点のラベルにのみ適用されます。

サブラベルの行インデックス。正の整数で指定します。この引数は、lblname でラベルとサブラベルのペアが指定されていて、サブラベルのタイプが ROI または点である場合にのみ適用されます。

バージョン履歴

R2018b で導入