Main Content

hankel

汉克尔矩阵

说明

示例

H = hankel(c) 返回正方形 汉克尔矩阵,其中 c 定义矩阵的第一列,主反对角线以下的元素为零。

示例

H = hankel(c,r) 返回汉克尔矩阵,第一列为 c,最后一行为 r。如果 c 的最后一个元素不同于 r 的第一个元素,则 hankel 会发出警告,并对反对角线使用 c 的最后一个元素。

示例

全部折叠

创建一个对称汉克尔矩阵。

c = [1 2 3 4];
hankel(c)
ans = 4×4

     1     2     3     4
     2     3     4     0
     3     4     0     0
     4     0     0     0

用指定的列和行向量创建一个非对称汉克尔矩阵。

c = [2 4 6];
r = [6 5 4 3 2 1];
hankel(c,r)
ans = 3×6

     2     4     6     5     4     3
     4     6     5     4     3     2
     6     5     4     3     2     1

创建另一个非对称汉克尔矩阵。如果列向量的最后一个元素与行向量的第一个元素不匹配,则 hankel 会发出警告,并将列的最后一个元素用作反对角线元素。

c = [1 2 3];
r = [4 5 7 9];
hankel(c,r)
Warning: Last element of input column does not match first element of input row. 
         Column wins anti-diagonal conflict.
ans = 3×4

     1     2     3     5
     2     3     5     7
     3     5     7     9

用复数行向量和列向量创建一个汉克尔矩阵。

c = [1+2i 2-4i -1+3i];
r = [-1+3i 3-1i 1-2i];
hankel(c,r)
ans = 3×3 complex

   1.0000 + 2.0000i   2.0000 - 4.0000i  -1.0000 + 3.0000i
   2.0000 - 4.0000i  -1.0000 + 3.0000i   3.0000 - 1.0000i
  -1.0000 + 3.0000i   3.0000 - 1.0000i   1.0000 - 2.0000i

输入参数

全部折叠

汉克尔矩阵的第一列,指定为标量或向量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
复数支持:

汉克尔矩阵的最后一行,指定为标量或向量。如果 c 的最后一个元素不同于 r 的第一个元素,则 hankel 对反对角线使用 c 的最后一个元素。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
复数支持:

详细信息

全部折叠

汉克尔矩阵

在汉克尔矩阵中,沿每个反对角线的元素相等:

H=[c1c2c3c2c3c3cm1cmr2rn2cm1cmr2rn2rn1cmr2rn2rn1rn].

如果 c 是汉克尔矩阵的第一列,r 是汉克尔矩阵的最后一行,则 p = [c r(2:end)] 使用映射 Hi,j = pi+j-1 来完整确定汉克尔矩阵的所有元素。所有正方形汉克尔矩阵都是对称的。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

| |