Hi

Does anyone know how I might pick out diagonal elements of a matrix using a
vector?

If I create a matrix a:

a <- matrix(c(1:16), 4, byrow=TRUE)

and I want to pick out the elements (1,1),(2,2),(3,3), or another arbitrary
diagonal (upper or lower), is there any way I can use a vector to do this?
So if I want a diagonal of size 3, I could create a vector like x <- c(0:2)
and then pick out a[1+x,1+x]? Currently, using a vector in this way gives me
a sub-matrix, as I get the cartesian product of the indexes (which is to be
expected, as I guess I am misusing the vector notion here).

Anyone know how to do this?

Cheers
Rory

	[[alternative HTML version deleted]]

