gusucode.com > symbolic工具箱matlab源码程序 > symbolic/@sym/rectangularPulse.m
function y = rectangularPulse(varargin) %RECTANGULARPULSE Rectangular pulse function. % Y = RECTANGULARPULSE(X) is the rectangular pulse over the % interval from -1/2 to 1/2. % % Y = RECTANGULARPULSE(A,B,X) is the rectangular pulse over the % interval from A to B. % % It is 1 if A < X < B. % It is 0 if X < A or X > B or A = B. % It is 1/2 if A < B and X = A or X = B. % % Example: % syms a x % rectangularPulse(a, a+2, a-1) returns 0 % rectangularPulse(a, a+2, a) returns 1/2 % rectangularPulse(a, a+2, a+1) returns 1 % rectangularPulse(a, a+2, a+2) returns 1/2 % rectangularPulse(a, a+2, a+3) returns 0 % % See also SYM/TRIANGULARPULSE. if nargin ~= 1 && nargin ~= 3 error(message('symbolic:sym:rectangularPulse:WrongNumberOfArguments')); end args = privResolveArgs(varargin{:}); if nargin == 3 && (numel(args{1}) > 1 || numel(args{2}) > 1) error(message('symbolic:sym:rectangularPulse:FirstTwoArgumentsMustBeScalar')); end refs = cellfun(@(x)x.s, args, 'UniformOutput', false); ySym = mupadmex('symobj::vectorizeSpecfunc', refs{:}, 'rectangularPulse', 'infinity'); y = privResolveOutput(ySym, args{1});