MATLAB如何使用hankel函数创建Hankel(汉克尔)矩阵
【语法说明】
Y=hankel(c,r):矩阵Y的第一列元素为向量c,最后一行元素为向量r,如果c的最后一个元素与r的第一个元素不同,则交叉位置元素取c的最后一个元素。其余位置的元素Y(i,j)等于该位置左下角处的元素值 Y(i+1, j−1)。也可以用另一种形式表达:P=[c, r(2:end)],Y(i, j)=P(i+j−1)。
Y=hankel(c):相当于 Y=hankel(c,zeros(1,length(c)))。由此形成的矩阵Y次对角线以下元素均为零。
【功能介绍】生成Hankel矩阵,该矩阵中的元素等于其左下方位置的元素值。
【实例】给定向量 c=[2,1,4],r=[4,3],分别生成 3×3和3×2大小的Hankel矩阵。
>> c=[2,1,4]; % 第一列
>> r=[4,3]; % 第一行
>> a=hankel(c,r) % 用c和r生成hankel矩阵
a =
2 1
1 4
4 3
>> a=hankel(c,fliplr(r)) % 将r变为[3,4],此时c的最后一个元素与r的第一个元素不相等
Warning: Last element of input column does not match first element of input row.
Column wins anti-diagonal conflict.
> In hankel at 27
a =
2 1
1 4
4 4
>> a=hankel(c) % hankel(c)将生成3*3大小的hankel矩阵
a =
2 1 4
1 4 0
4 0 0
【实例讲解】当c的最后一个元素与r的第一个元素不相等时,系统会忽略r的第一个元素,并给出一条警告。