马尔可夫链从一阶延伸到二阶?

时间:2014-11-11 13:40:39

标签: matlab markov-chains

下面是我的matlab代码片段,用于生成一阶马尔可夫链。我在扩展到二阶马尔可夫链时遇到了麻烦。有人可以帮我这样做吗?任何建议,提示,链接,伪代码,算法,python或matlab片段都会有所帮助。

cdist是我的27个符号的累积分布向量(大小为28 * 1)。我正在将输出写入名为chain的文件。pq是统一的随机数。 CTRANS是与我的第一个转换矩阵TRANS对应的累积矩阵(此处未显示,其大小为729 * 27)。 CTRANS除了作为累积版本之外,还在顶部附加了一个零向量,以便于编程。 cols的列大小为CTRANS

%generate sequence according to distribution and transition matrix
fileID = fopen('chain','w');
for k=1:10000
    p=rand;
    for l=2:numel(cdist)%2 to 28
        if ((p >= cdist(l-1)) && (p <= cdist(l)))
            fprintf(fileID,'%s\n',num2str(l-1));
            q=rand;
            for m=2:cols%2 to 28
                if ((q >= CTRANS(l,m-1)) && (q <= CTRANS(l,m)))
                    fprintf(fileID,'%s\n',num2str(m-1));
                end
            end
        end
    end
end
fclose(fileID);

我正在努力处理二阶案。如果需要,我可以提供更多细节。我从中提取统计数据的输入数据是长度约为4000个字符的英文文本。我删除了标点符号并将大写字母转换为小写字母,所以现在有27个符号,其中数字1代表&#39; a&#39;直到26代表&#39; z&#39;和27为空间。我也为二阶情形创建了二元分布向量。

0 个答案:

没有答案