classmarkov recurrent and transient classes of Markov matrix

## Syntax

    [perm,rec,tr,indsRec,indsT]=classmarkov(M)

## Arguments

M

  real N x N Markov matrix. Sum of entries in each row should add to one.

perm

  integer permutation vector.

rec, tr

  integer vector, number (number of states in each recurrent classes, number of transient states).

indsRec,indsT

  integer vectors. (Indexes of recurrent and transient states).

## Description

Returns a permutation vector `perm` such that

    M(perm,perm) = [M11 0 0 0 0   0]
                   [0 M22 0 0     0]
                   [0 0 M33       0]
                   [      ...      ]
                   [0 0       Mrr 0]
                   [* *        *  Q]

Each `Mii` is a Markov matrix of dimension `rec(i) i=1,..,r`. `Q` is sub-Markov matrix of dimension `tr`. States 1 to sum(rec) are recurrent and states from r+1 to n are transient. One has `perm=[indsRec,indsT]` where indsRec is a vector of size sum(rec) and indsT is a vector of size tr.

## Examples

    //P has two recurrent classes (with 2 and 1 states) 2 transient states
    P=genmarkov([2,1],2,'perm')
    [perm,rec,tr,indsRec,indsT]=classmarkov(P);
    P(perm,perm)

## See also

- genmarkov
- eigenmarkov