期待大家都来扩展北太天元的功能,举例北太天元实现构造汉克尔矩阵(hankel m

% 构造汉克尔矩阵(hankel matrix)
% 汉克尔矩阵 (Hankel Matrix) 是指每一条副对角线上的元素都相等的矩阵,
% 在数字信号处理、数值计算、系统控制等领域均有广泛的应用
% 例如
% h = [ 1 2 3 ;
% 2 3 4 ;
% 3 4 5 ];
% 使用方法:
% hankel(c)
% hankel(c,r)
% H = hankel(c) 返回其第一列是 c 并且其第一个反对角线下方的元素为零的 Hankel 方阵。
% H = hankel(c,r) 返回其第一列是 c 并且其最后一行是 r 的 Hankel 矩阵。如果 c 的最后一个元素与 r 的第一个元素不同,则 c 的最后一个元素优先。
% 例如:
% C = [1;2;3]; % 第一列
% R = [ 3, 4, 5 6]; %最后一行
% h = hankel(C,R)
% 输出
% h = [ 1 2 3 4
% 2 3 4 5
% 3 4 5 6 ]
function 返回值 = hankel (c, r)
if (nargin < 1)
help hankel
return;
end
if (nargin == 1)
if (~isvector (c))
error ("hankel: C 必须是一个向量");
end
nr = length (c);
nc = nr;
data = [c(:) ; zeros(nr, 1)];
else
if (~(isvector (c) && isvector (r)))
error ("hankel: C 和 R 都必须是向量");
elseif (r(1) != c(end))
warning ("hankel: C的最后一个元素和R的第一个元素不同,优先使用C的最后一个元素");
end
nr = length (c);
nc = length (r);
r2 = r(2:end);
data = [c(:) ; r2(:)]
end
返回值 = zeros(nr,nc);
for i=1:nc
返回值(:,i) = data(i : i+nr-1)
end
end