gusucode.com > symbolic工具箱matlab源码程序 > symbolic/@sym/toeplitz.m
function t = toeplitz(c,varargin) %TOEPLITZ Toeplitz matrix. % TOEPLITZ(C,R) is a non-symmetric Toeplitz matrix having C as its % first column and R as its first row. % % TOEPLITZ(R) is a symmetric Toeplitz matrix for real R. % For a complex vector R with a real first element, T = toeplitz(r) % returns the Hermitian Toeplitz matrix formed from R. When the % first element of R is not real, the resulting matrix is Hermitian % off the main diagonal, i.e., T_{i,j} = conj(T_{j,i}) for i ~= j. % Copyright 2012 The MathWorks, Inc. if nargin > 2 error(message('symbolic:sym:toeplitz:OneOrTwoArgumentsAreExpected')); end if ischar(c) error(message('symbolic:sym:toeplitz:FirstArgumentMustBeAVector')); elseif nargin > 1 && ischar(varargin{1}) error(message('symbolic:sym:toeplitz:SecondArgumentMustBeAVector')); end p = inputParser; p.addRequired('c'); p.addOptional('r',sym([])); p.parse(c,varargin{:}); c = p.Results.c; r = p.Results.r; args = privResolveArgs(c,r); csym = formula(args{1}); rsym = formula(args{2}); if ~isempty(csym) if size(csym,1)~=1 && size(csym,2)~=1 error(message('symbolic:sym:toeplitz:FirstArgumentMustBeAVector')); end if ~isempty(rsym) if size(rsym,1)~=1 && size(rsym,2)~=1 error(message('symbolic:sym:toeplitz:SecondArgumentMustBeAVector')); end t = mupadmex('symobj::toeplitz',rsym.s,csym.s); else if nargin == 1 t = mupadmex('symobj::toeplitz',csym.s); else t = sym([]); end end else t = sym([]); end t = privResolveOutput(t, args{1});