G
Guest
excel 2003 or 2007 beta 2
How can I get the diagonal of a matrix returned as a single column vector?
How can I get the diagonal of a matrix returned as a single column vector?
JoeNiner said:How can I get the diagonal of a matrix returned as a single column vector?
Max said:One try ..
Assuming a 4 x 4 grid in B2:E5 (top left cell is B2)
Perhaps this expression:
=OFFSET(B2,ROW(INDIRECT("1:4"))-1,ROW(INDIRECT("1:4"))-1)
Or maybe this expression below,
array-entered into a 4 cell columnar range, say into B20:B23 :
=INDEX(B2:E5,ROW(INDIRECT("1:4")),ROW(INDIRECT("1:4")))
---
....One try ..
Assuming a 4 x 4 grid in B2:E5 (top left cell is B2)
Perhaps this expression:
=OFFSET(B2,ROW(INDIRECT("1:4"))-1,ROW(INDIRECT("1:4"))-1)
Harlan Grove said:FWIW, can't use the expression above as a term in an array formula.
It's need to be
N(OFFSET(B2,ROW(INDIRECT("1:4"))-1,ROW(INDIRECT("1:4"))-1))
This can be done without volatile functions. As a column vector,
=MMULT((ROW(M)-MIN(ROW(M))=COLUMN(M)-MIN(COLUMN(M)))*M,
TRANSPOSE(COLUMN(M))^0)
Thanks for correction, Harlan.
I suppose M is a defined range referring to the matrix,
eg to the 4 x 4 grid in B2:E5
Correct.
Does the N(..) need to be likewise applied here ?