Construct a neighbour-matrix from a graph and disaply it

inla.matrix2graph(graph, ...)

inla.graph2matrix(graph, ...)

inla.spy(graph, ..., reordering = NULL)

Arguments

graph

An inla.graph-object, a (sparse) symmetric matrix, a filename containing the graph, or a list or collection of characters and/or numbers defining the graph.

...

Additional arguments to inla.read.graph()

reordering

A possible reordering. Typical the one obtained from a inla-call, result$misc$reordering, or the result of inla.qreordering.

Value

inla.graph2matrix returns a sparse symmetric matrix where the non-zero pattern is defined by the graph. The inla.spy function, plots the associated sparse matrix defined by the graph. The reordering argument is typically the reordering found by inla.qreordering().

Author

Havard Rue hrue@r-inla.org

Examples


n = 50
Q = matrix(0, n, n)
idx = sample(1:n, 2*n, replace=TRUE)
Q[idx, idx] = 1
diag(Q) = 1
g = inla.read.graph(Q)
QQ = inla.graph2matrix(g)
inla.spy(QQ)

print(all.equal(as.matrix(Q), as.matrix(QQ)))
#> [1] TRUE

g.file = inla.write.graph(g, filename = tempfile())
inla.dev.new()
inla.spy(g.file)
inla.spy(g.file,  reordering = inla.qreordering(g))

g = inla.read.graph(g.file)
inla.dev.new()
inla.spy(g)

## Old examples that don't work with the inla.spy call syntax:
# inla.dev.new()
# inla.spy(3, 1, "1 2 2 1 1 3 0")
# inla.dev.new()
# inla.spy(3, 1, "1 2 2 1 1 3 0", reordering = 3:1)