File: extractMatrices.R

package info (click to toggle)
r-cran-markovchain 0.10.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,864 kB
  • sloc: cpp: 2,847; sh: 13; makefile: 2
file content (26 lines) | stat: -rw-r--r-- 743 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#function to extract matrices 
extractMatrices <- function(mcObj) {
  require(matlab)
  mcObj <- canonicForm(object = mcObj)
  #get the indices of transient and absorbing
  transIdx <- which(states(mcObj) %in% transientStates(mcObj))
  absIdx <- which(states(mcObj) %in% absorbingStates(mcObj))
  #get Q, R and I
  Q <- as.matrix(mcObj@transitionMatrix[transIdx,transIdx])
  R <- as.matrix(mcObj@transitionMatrix[transIdx,absIdx])
  I <- as.matrix(mcObj@transitionMatrix[absIdx, absIdx])
  #get fundamental matrix
  N <- solve(eye(size(Q)) - Q)
  #final absorbion probabilities
  NR <- N %*% R
  #return
  out <- list(
    canonicalForm = mcObj,
    Q = Q,
    R = R,
    I = I, 
    N=N,
    NR=NR
  )
  return(out)
}