Let G be a graph of order n, with vertex set V = {v 1 , . . . , v n } and adjacency matrix A. For a non-empty set S of vertices let e = (x 1 , . . . , x n ) T be the characteristic vector of S, that is, x = 1 if v ∈ S and x = 0 otherwise. Then the n × n matrix W S := e, Ae, A 2 e, . . . , A n−1 e is the walk matrix of G for S. This term refers to the fact that in W S the kth entry in the row corresponding to v is the number of walks of length k − 1 from v to some vertex in S. Let μ 1 , . . . , μ s be the distinct eigenvalues of A. For given S and characteristic vector e, we re-arrange these eigenvalues in such a way that SD(S) : e = e 1 + e 2 + • • • + e r(1)for a certain r ≤ s, where the e i are eigenvectors of A for eigenvalue μ i , for all 1 ≤ i ≤ r . We refer to (1) as the spectral decomposition of S, or more properly, of its characteristic vector e. We show that the walk matrix W S determines the spectral decomposition of S and vice versa. Explicit algorithms are given which establish this correspondence. In particular, we show that the number r of distinct eigenvectors that appear in (1) is equal to the rank of W S . Various results can be derived from this theorem. We show that W S determines the adjacency matrix of G if W S has rank ≥ n − 1. Another application is that if W S has rank ≥ n − 1, then another graph G *