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'功能更快。 –