vech#
Purpose#
Vectorizes a symmetric matrix by retaining only the lower triangular portion of the matrix.
Format#
- v = vech(x)#
- Parameters:
x (NxN symmetric matrix) – data
- Returns:
v ((N*(N+1)/2)x1 vector) – the lower triangular portion of the matrix x.
Examples#
// Add a 3x1 column vector containing 10, 20, 30 to a 1x3
// row vector containing 1, 2, 3, to create a 3x3 matrix
x = seqa(10, 10, 3) + seqa(1, 1, 3)';
// Turn the lower triangular portion of 'x' into a column
// vector in 'v'
v = vech(x);
// Expand the vector 'v' into a symmetric matrix in 'sx'
sx = xpnd(v);
After the code above:
11
11 12 13 21 11 21 31
x = 21 22 23 v = 22 sx = 21 22 32
31 32 33 31 31 32 33
32
33
Remarks#
As you can see from the example below, vech()
will not check to see if x
is symmetric. It just packs the lower triangular portion of the matrix
into a column vector in row-wise order.
See also
Functions xpnd()