【发布时间】:2019-09-21 08:30:58
【问题描述】:
我想要一个到处都是 0 的矩阵,对角线和对角线 +1 有 0.5 个值。
我使用以下代码创建矩阵:
n = 10
transProbs = matrix(0, nrow = n, ncol = n)
然后,用以下内容填充对角线:
diag(transProbs) = 0.5
矩阵现在如下所示:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
[2,] 0.0 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
[3,] 0.0 0.0 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0
[4,] 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.0 0.0 0.0
[5,] 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.0 0.0
[6,] 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0 0.0
[7,] 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0 0.0
[8,] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.0 0.0
[9,] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.0
[10,] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5
但是,我希望它是:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0.5 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
[2,] 0.0 0.5 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0
[3,] 0.0 0.0 0.5 0.5 0.0 0.0 0.0 0.0 0.0 0.0
[4,] 0.0 0.0 0.0 0.5 0.5 0.0 0.0 0.0 0.0 0.0
[5,] 0.0 0.0 0.0 0.0 0.5 0.5 0.0 0.0 0.0 0.0
[6,] 0.0 0.0 0.0 0.0 0.0 0.5 0.5 0.0 0.0 0.0
[7,] 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.5 0.0 0.0
[8,] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.5 0.0
[9,] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0.5
[10,] 0.5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5
编辑:
此矩阵将在library(HMM)、initHMM 中用作transProbs 矩阵。
emissionProbs 我想要的输出是:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0.2 0.2 0.2 0.0 0.0 0.0 0.0 0.0 0.2 0.2
[2,] 0.2 0.2 0.2 0.2 0.0 0.0 0.0 0.0 0.0 0.2
[3,] 0.2 0.2 0.2 0.2 0.2 0.0 0.0 0.0 0.0 0.0
[4,] 0.0 0.2 0.2 0.2 0.2 0.2 0.0 0.0 0.0 0.0
[5,] 0.0 0.0 0.2 0.2 0.2 0.2 0.2 0.0 0.0 0.0
[6,] 0.0 0.0 0.0 0.2 0.2 0.2 0.2 0.2 0.0 0.0
[7,] 0.0 0.0 0.0 0.0 0.2 0.2 0.2 0.2 0.2 0.0
[8,] 0.0 0.0 0.0 0.0 0.0 0.2 0.2 0.2 0.2 0.2
[9,] 0.2 0.0 0.0 0.0 0.0 0.0 0.2 0.2 0.2 0.2
[10,] 0.2 0.2 0.0 0.0 0.0 0.0 0.0 0.2 0.2 0.2
请注意,用 0.2 填充的是 diag +/-2。在第一个矩阵中,diag +1 用 0.5 填充。这意味着最终,概率可能会“重叠”并进入左下角。
【问题讨论】:
-
我相信diag的第二个参数是k,你可以用它来做非对角线
-
@MichaelChirico 不幸的是……