Discrete Spectral Distance (DSD) is defined as the Euclidean distance between the spectra of various matrices, such as adjacency matrix A("Adj"), (unnormalized) Laplacian matrix L=D−A("Lap"), signless Laplacian matrix ∣L∣=D+A("SLap"), or normalized Laplacian matrix L~=D−1/2LD−1/2.
nd.dsd(A, out.dist =TRUE, type = c("Lap","SLap","NLap","Adj"))
Arguments
A: a list of length N containing (M×M) adjacency matrices.
out.dist: a logical; TRUE for computed distance matrix as a dist object.
type: type of target structure. One of "Lap","SLap","NLap","Adj" as defined above.
Returns
a named list containing
D: an (N×N) matrix or dist object containing pairwise distance measures.
spectra: an (N×M−1) matrix where each row is top-M−1 vibrational spectra.
Examples
## load example data and extract only a fewdata(graph20)gr.small = graph20[c(1:5,11:15)]## compute distance matrixoutput <- nd.dsd(gr.small, out.dist=FALSE)## visualizeopar <- par(no.readonly=TRUE)par(pty="s")image(output$D[,10:1], main="two group case", axes=FALSE, col=gray(0:32/32))par(opar)