function [A,B] = PadeNew( h,M )
% 输入h是一个行向量
% 输入M+1是B的长度
% 输出A,B是列向量
p=length(h); %K是h的长度
N=p-M-1; %N是A的长度
if M>N
error('the M is too big,please be smaller.'); %检测M是否过大,应该满足M<=N
end
% A=zeros(N+1,1);
% B=zeros(M+1+N,1);
BELOW=zeros(N,N+1); %BLOW矩阵用来解A
for i=1:N
for j=1:N+1
BELOW(i,j)=h(M+i+1-j+1);
end
end
ABOVE=zeros(M+1,N+1); %ABOVE矩阵用来解B
for i=1:M+1
for j=1:i
ABOVE(i,j)=h(i-j+1);
end
end
for i=1:N
BELOW(i,1)=-BELOW(i,1); %将第一列作为增扩项而成为增扩矩阵,以用Gauss消元法求解A
end
A=(BELOW(1:N,2:N+1))\BELOW(1:N,1);
%[~,~,~,A]=gaus(BELOW(1:N,2:N+1),BELOW(1:N,1));
BB=ABOVE*[1;A];
B=BB(1:M+1,1);
end