このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
カスタムラベル付け関数
信号ラベラを使用すると,自動ラベル付けタスクを実行できます。[ピ,クラベラ,]以外にも,[ラベル]タブの[値の自動処理]ギャラリ,には,自動的に信号にラベル付けするために使用できる関数が含まれています。
カスタムラベル付け関数の作成
すべてのカスタム自動ラベル付け関数の最初の行は,次の形式の定義ステ,トメントで構成されています。
函数[labelVals,labelLocs] = fx(x,t,parentLabelVal,parentLabelLoc,varargin)
最初の入力引数
x
は,入力信号です。関数を記述する場合、x
は各列にチャネルに対応するデ,タが含まれる行列であると想定します。チャネルの長さが異なる場合,x
は列ベクトルのcell配列であると想定します。2番目の入力引数
t
は,時間値を格納します。関数を記述する場合,t
は各列にチャネルに対応する時間情報が含まれる行列であると想定します。チャネルの長さが異なる場合,t
は列ベクトルのcell配列であると想定します。メモ
単一チャネルメンバーの場合,カスタム自動ラベル付け関数は,データと時間値を倍精度のベクトルとして取得します。
マルチチャネルメンバーの場合,カスタム自動ラベル付け関数は,データと時間値を行列または细胞配列として取得します。
カスタム自動ラベル付け関数は,メンバーのすべてのチャネルを入力として取得しますが,すべてを処理する必要はありません。関数が処理するチャネルを選択できます。
3番目の入力引数
parentLabelVal
は,出力サブラベルに関連付けられた親ラベル値であり,数値,逻辑,または字符串スカラーが含まれます。この引数は,サブラベルのラベル付けを自動化する関数にのみ渡されます。関数が親ラベル用の場合は,parentLabelVal
は空であると想定します。4番目の入力引数
parentLabelLoc
には,以下が含まれます。親ラベルが属性の場合は,空のベクトル
親ラベルが関心領域(roi)の場合は,roi範囲の2要素の数値行ベクトル
親ラベルが点の場合は,点の位置を表す数値スカラ
この引数は,サブラベルのラベル付けを自動化する関数にのみ渡されます。関数が親ラベル用の場合は,
parentLabelLoc
は空であると想定します。メモ
親ラベルの場合,選択された各メンバ,に対して自動ラベル付け関数が実行されます。
サブラベルの場合,選択されたそれぞれのメンバーについて,一度に1つの親ラベルのインスタンスに対して,自動ラベル付け関数が実行されます。
追加の入力引数を指定するには,
变长度输入宗量
を使用します。追加の入力引数がない場合は,变长度输入宗量
を省略できます。追加の引数は,[自動ラベル付け]ボタンをクリックすると表示されるダイアログボックスに順序付きのコンマ区切りリストとして入力します。最初の出力引数
labelVals
には,ラベル値が含まれます。labelVals
は以下でなければなりません。出力ラベルが属性の場合,数値,逻辑,または字符串スカラ
出力ラベルがROIまたは点の場合,数値,逻辑,または字符串値を持つ列ベクトル
2番目の出力引数
labelLocs
には,ラベルの位置が含まれます。labelLocs
は以下でなければなりません。出力ラベルが属性の場合は,空のベクトル
出力ラベルがROIの場合は,ROI範囲の2列の行列
出力ラベルが点の場合は,点の位置の列ベクトル
アルゴリズムを実装するために,matlab®またはシステムにンストルされているいずれかのルボックスの関数を使用できます。
詳細にいては,カスタム関数を使用した信号のラベル付けの自動化および外部APIを使用したオ,ディオ信号の発声された単語のラベル付けを参照してください。
例:平均RMS値
この関数は信号の平均RMS値を計算し,数値属性としてこの値を使用して信号にラベル付けします。メンバ,に複数のチャネルがある場合,この関数は各チャネルのRMS値を計算し,値を平均します。チャネルは異なる長さをもことができます。
函数[labelVals,labelLocs] = meanms (x,t,parentLabelVal,parentLabelLoc,varargin)用信号的均方根值作为属性标记信号如果iscell(x) labelVals = mean(cellfun(@rms,x))其他的labelVals = mean(rms(x));结束labelLocs = [];结束
例:ゼロクロッシング
この関数は,信号のゼロクロッシングを検出し,立上がり遷移の場合は“上升”
,立下がり遷移の場合は“下降”
としてラベル付けします。
函数[labelVals,labelLocs] = transitions(x,t,parentLabelVal,parentLabelLoc,varargin)%将过零点标记为“上升”或“下降”Nchan = size(x,2);Tt = t(:,1);labelVals = cell(nchan,1);labelLocs = cell(nchan,1);为kj = 1:nchan [rate,count,indices] = zerocssrate (x,TransitionEdge=“上升”);Rloc = tt(指数== 1);Rval = repmat(“上升”长度(rloc) 1);[rate,count,indices] = zerocrossrate(x,TransitionEdge=“下降”);Floc = tt(指数== 1);Fval = repmat(“下降”长度(絮状物),1);labelLocs{kj} = [rloc;floc];labelVals{kj} = [rval;fval];结束labelVals = cat(1,labelVals{:});labelLocs = cell2mat(labelLocs);结束
例:マルチチャネルラベル付け
この論理関数は,次のようなマルチチャネル信号の領域を真としてラベル付けします。
最初のチャネルの振幅が負である。
3番目のチャネルの振幅が,ユザ指定の値
mx
よりも大きい。mx
を指定しない場合は,既定値の0.1が使用されます。
函数[labelVals,labelLocs] = greaterThan(x,t,parentLabelVal,parentLabelLoc,varargin)标记负第一通道和第三通道大于给定值的区域如果Nargin <5 mx = 0.1;其他的Mx = varargin{1};结束Xr = x(:,1);Xx = x(:,3);Tt = t(:,1);ss = signalMask(xr < 0 & xx >= mx);X = roimask(ss);labelLocs = tt(x.ROILimits);labelVals = logical(double(x.Value));结束
ギャラリ,へのカスタムラベル付け関数の追加
カスタム自動ラベル付け関数を追加するには,[値の自動処理]ギャラリ,の隣にある矢印をクリックして,[カスタム関数の追加]を選択します。ダ@ @アログボックスで,以下のフィ@ @ルドを指定します。
名前-追加する関数の名前を指定します。
説明—関数の機能の簡単な説明を追加し,オプションの入力引数にいて説明します。
ラベルタ@ @プ-関数が生成するラベルのタie浏览器プを指定します。
[属性]
(既定の設定),(ROI)
,または[点]
を選択します。メモ
指定した[ラベルタ电子邮箱プ]に基づいて,信号ラベラが[値の自動処理]ギャラリ,の適切なカテゴリに関数を配置します。ラベル定義を選択すると,ギャラリ,では,その定義タ,プで使用できる関数のみが有効になります。
関数を書き込み済みでその関数が現在のフォルダまたはmatlabパスにある場合,[信号ラベラ]はその関数をギャラリ,に組み込みます。関数をまだ書き込んでいない場合,[信号ラベラ]はエディタ,で空白のテンプレ,トを開きます。
ギャラリ,でのカスタムラベル付け関数の管理
必要に応じて,[値の自動処理]ギャラリ,の[カスタム関数の管理]オプションを使用して,関数の編集,関数の説明の編集,または関数の削除ができます
メモ
[カスタム関数の管理]オプションを使用すると,[値の自動処理]ギャラリ,に表示される関数の説明のみが変更されます。関数を含むファイル内の説明を変更する場合は、ファイルを編集しなければなりません。