Assuming C is not too large, you can add up its elements like this:
matrix D=diag(vec(C))
local sum=(trace(D)-trace(C))/2
or if D would be too large for your Stata matsize, you can use:
matrix A=J(colsof(C), 1, 1)
matrix B=A'*C*A
local sum=(B[1,1]-trace(C))/2
See help matrix functions.
Jamie Griffin
>>> redeho@hotmail.com 11/08/05 2:47 pm >>>
Statalist,
Is there a way to to get a scalar containing the sum of the
off-diagonal
elements of a pre-defined matrix?
For instance, define matrix C as a correlation matrix. I want to know
what
is the sum of correlations between the various elements in C. Therefore
I
need the sum of all elements in C minus the sum of the diagonal
elements
(-trace(C)-) and finally divide it by 2 (I am assuming matric C is
symetric).
Many thanks,
Rafa
________________________
R.E. De Hoyos
Faculty of Economics
University of Cambridge
CB3 9DE, UK
www.econ.cam.ac.uk/phd/red29/
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/