Basic Matrix Algebra in STATA

General Comments:

* * * * * *

Creating Matrices in STATA

There are two ways to create matrices within STATA. Using the matrix command (which is shorthand for "matrix define"), a matrix may be input element by element. Alternatively, the mkmat command can be used to create a matrix from the variables of an existing data set by concatenating (joining) columns.

I. matrix name = (elements)

To input a matrix, enclose the elements of the matrix within parentheses with commas to separate elements and backslashes (\) to separate rows. (The number of columns is implied by the number of elements in each row.) . Thus (2,4,3,7\1,5,3,1) is a 2x4 matrix that looks like

2 4 3 7

1 5 3 1

and is created by the command "matrix A =(2,4,3,7\1,5,3,1)".

Row and column vectors are created with the same commands. The command "matrix A=(2,1,4,3)" creates a 1x4 row vector while the command "matrix A=(2\1\4\3)" creates a 4x1 column vector.

II. mkmat variable names, matrix(matrix name)

Matrices can also be created from the variables of an existing STATA data set using the mkmat command. The following command will concatenate the variables V1, V2 and V3 into a new matrix A composed of N rows (where N is the number of cases in the data set) and 3 columns, 1 for each variable:

mkmat V1, V2, V3, matrix (A)

Manipulating Matrices

matrix C = A,B Join matrices A and B columns by row. (A & B must have the same # of rows.)

matrix C = A\B Join matrices A and B rows by column. (A & B must have the same # of columns.)

matrix A = J (#1, #2, #3) Create a #1 by #2 rectangular matrix with value #3 in all elements.

matrix I = I (#1) Create a square identity matrix with #1 rows/columns.

matrix A = DIAG (V) Create square matrix with values of vector V as main diagonal, elsewhere 0

matrix NR = ROWSOF (A) Finds # of rows in A.

matrix NC = COLSOF (A) Finds # of columns in A.

Key Matrix Operators

matrix C = A + B Add matrices A and B.

matrix C = A - B Subtract matrices A and B.

matrix C = A * B Multiply matrices A and B.

matrix AT = A' Find the transpose of A.

matrix INVA = INV (A) Calculate the inverse of A.

matrix DETA = DET (A) Calculate the determinant of A.

matrix DIAGA = VECDIAG (A) Create a column vector from the diagonal of matrix A.


	matrix 	LIST A	  		Displays dimensions and elements of A