0
我试图让命令rows_equal工作,但没有管理这样做。矩阵中的所有行等于
矩阵中的问题是:
P <- matrix(c(0, 0, 0, 0.5, 0, 0.5, 0.1, 0.1, 0, 0.4, 0, 0.4, 0, 0.2, 0.2, 0.3, 0, 0.3, 0, 0, 0.3, 0.5, 0, 0.2, 0, 0, 0, 0.4, 0.6, 0, 0, 0, 0, 0, 0.4, 0.6), nrow = 6, ncol = 6, byrow = TRUE)
我试图找出是多么大的“n”必须是P中n次方,这将使在矩阵的所有行相同。
mpow <- function(P, n) {if (n == 0) {return(diag(nrow(P)))} else if
(n == 1) {return(P)} else {
return(P %*% mpow(P, n - 1))} }
rows_equal <- function(P, d = 4) {P_new <- trunc(P * 10^d)
for (k in 2:nrow(P_new)) {if
(!all(P_new[1, ] == P_new[k, ])) {
return(FALSE)} }
return(TRUE) }
这就是我进入Rstudio的,但是,我没有看到我做错了什么。是不是命令rows_equal假设给我们假或真?
感谢您阅读我的问题/ 困惑的学生头痛很大。
修改标题,表示您的产品名称 – dbmitch
的'%^%'在包'expm'功能更快。 –