## TOEPLITZ Function

**generates a Toeplitz or block-Toeplitz matrix**
**TOEPLITZ(** *a***)**

where *a* is either a vector or a numeric matrix.

The TOEPLITZ function generates a Toeplitz matrix from
a vector, or a block Toeplitz matrix from a matrix.
A block Toeplitz matrix has the property that
all matrices on the diagonals are the same.
The argument *a* is an (*np*) ×*p* or *p* ×(*np*)
matrix; the value returned is the (*np*) ×(*np*) result.

The TOEPLITZ function uses the first *p* ×*p*
submatrix, **A**_{1}, of the argument
matrix as the blocks of the main diagonal.
The second *p* ×*p* submatrix, **A**_{2}, of
the argument matrix forms one secondary diagonal, with
the transpose **A**_{2}' forming the other.
The remaining diagonals are formed accordingly.
If the first *p* ×*p* submatrix of the argument
matrix is symmetric, the result is also symmetric.
If **A** is (*np*) ×*p*, the first *p* columns of the
returned matrix, **R**, will be the same as **A**.
If **A** is *p* ×(*np*), the first *p*
rows of **R** will be the same as **A**.
The TOEPLITZ function is especially useful in
time-series applications, where the covariance matrix
of a set of variables with its lagged set of variables
is often assumed to be a block Toeplitz matrix.

If

and if **R** is the matrix formed
by the TOEPLITZ function, then

If

and if **R** is the matrix formed
by the TOEPLITZ function, then

Three examples follow.
r=toeplitz(1:5);

R 5 rows 5 cols (numeric)
1 2 3 4 5
2 1 2 3 4
3 2 1 2 3
4 3 2 1 2
5 4 3 2 1
r=toeplitz({1 2 ,
3 4 ,
5 6 ,
7 8});
R 4 rows 4 cols (numeric)
1 2 5 7
3 4 6 8
5 6 1 2
7 8 3 4
r=toeplitz({1 2 3 4 ,
5 6 7 8});
R 4 rows 4 cols (numeric)
1 2 3 4
5 6 7 8
3 7 1 2
4 8 5 6

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.