hmmgenerate
隠れマルコフ モデルの状態と出力
構文
[seq,states] = hmmgenerate(len,TRANS,EMIS)
hmmgenerate(...,'Symbols',SYMBOLS)
hmmgenerate(...,'Statenames',STATENAMES)
説明
[seq,states] = hmmgenerate(len,TRANS,EMIS)
は、遷移確率行列 TRANS
および出力確率行列 EMIS
によって指定された既知のマルコフ モデルを使用して、以下を生成します。
ランダムな出力シンボル系列
seq
ランダムな状態系列
states
seq
と states
の長さは、いずれも len
です。TRANS(i,j)
は、状態 i
から状態 j
までの遷移確率です。EMIS(k,l)
は、シンボル l
が状態 k
から出力される確率です。
メモ:
関数 hmmgenerate
は、最初の出力の前の、ステップ 0 で状態 1 にあるモデルから開始します。モデルは、その後、確率 T1i1 で状態 i1 に遷移し、確率 Ei1k11 で出力 ak1 を生成します。hmmgenerate
は、states
の最初のエントリとして i1 を、seq
の最初のエントリとして ak1 をそれぞれ返します。
hmmgenerate(...,'Symbols',SYMBOLS)
は、出力されるシンボルを指定します。SYMBOLS
には、数値配列、string 配列、または文字ベクトルの cell 配列を指定できます。既定の設定のシンボルは、1
~ N
の整数です。ここで、N
は、可能な出力数です。
hmmgenerate(...,'Statenames',STATENAMES)
は、状態の名前を指定します。STATENAMES
には、数値配列、string 配列、または文字ベクトルの cell 配列を指定できます。既定の設定の状態名は、1
~ M
です。ここで、M
は、状態の数です。
モデルは、遷移確率が TRANS
の最初の行にある状態 1 から常に開始するため、次の例の出力 states
の最初のエントリは、確率 0.95 で 1 と確率 0.05 で 2 になります。
例
trans = [0.95,0.05; 0.10,0.90]; emis = [1/6 1/6 1/6 1/6 1/6 1/6; 1/10 1/10 1/10 1/10 1/10 1/2]; [seq,states] = hmmgenerate(100,trans,emis) [seq,states] = hmmgenerate(100,trans,emis,... 'Symbols',{'one','two','three','four','five','six'},... 'Statenames',{'fair';'loaded'})
バージョン履歴
R2006a より前に導入