toeplitz矩阵即托普利兹矩阵。
托普利兹矩阵的主对角线上的元素相等,平行于主对角线的线上的元素也相等;矩阵中的各元素关于次对角线对称,即T型矩阵为次对称矩阵。在数学软件MATLAB中,生成托普利兹矩阵的函数是:toeplitz(x,y)。它生成一个以 x 为第一列,y 为第一行的托普利兹矩阵,这里x, y均为向量,两者不必等长。
查看MATLAB生成托普利兹矩阵的函数toeplitz.m源代码文件请点击这里。
我将根据其源代码逻辑,写成Python生成toeplitz矩阵的代码,首先注意下面的函数只针对:
- 参数c与r都是由数字组成的二维数组,若要生成同一个二维数组的toeplitz矩阵,则需要输入该数组两次。
- c与r二者左上角的那一个元素尽量要相同,尽管在不同时生成的矩阵也是toeplitz矩阵,但是参数r的第一个元素可能就不被包含在生成的toeplitz矩阵中了。
- 数字为浮点型或者整型都可以
- 若c与r为一维行向量或者列向量,则需要将其维数转换为1×N或者N×1的二维数组
示例1(两个输入参数为一维数组时,要在外层再加一层括号,使其变成二维的;这里c与r二者左上角的那一个元素不同,但是生成的矩阵仍是toeplitz矩阵,此时参数r的第一个元素就不被包含在生成的toeplitz矩阵中了):
输出如下:
示例2(若要生成同一个二维数组的toeplitz矩阵,则需要输入该数组两次):
输出如下:
示例3:
输出如下: