gusucode.com > symbolic工具箱matlab源码程序 > symbolic/@sym/collect.m
function r = collect(s, x) %COLLECT Collect coefficients. % COLLECT(S,v) regards each element of the symbolic matrix S as a % polynomial in v and rewrites S in terms of the powers of v. % COLLECT(S) uses the default variable determined by SYMVAR. % COLLECT(S, 'f') uses all symbolic calls to the function f as variables. % COLLECT(S, {'f1', ..., 'fk'}) uses all symbolic calls to any of the % functions f1, ..., fk as variables. % % Examples: % collect(x^2*y + y*x - x^2 - 2*x) returns (y - 1)*x^2 + (y - 2)*x % % f = -1/4*x*exp(-2*x)+3/16*exp(-2*x) % collect(f,exp(-2*x)) returns -(x/4 - 3/16)/exp(2*x) % % f = x*sin(x) + sin(x) + x*sin(2*x) - sin(2*x) % collect(f, 'sin') returns (x + 1)*sin(x) + (x - 1)*sin(2*x) % % See also SYM/SIMPLIFY, SYM/FACTOR, SYM/EXPAND, SYM/SYMVAR. % Copyright 1993-2016 The MathWorks, Inc. narginchk(1,2); args = privResolveArgs(s); s = args{1}; if nargin == 1 x = symvar(s,1); if isempty(x) r = s; return; end elseif isa(x, 'char') || isa(x, 'cell') x = sym.charToFunction(x); elseif isnumeric(x) x = sym(x); elseif ~isa(x, 'sym') error(message('symbolic:sym:sym:SymInputExpected')) end rSym = mupadmex('symobj::map',s.s,'symobj::collect',x.s); r = privResolveOutput(rSym, s);