MATLAB: How to separate negative and positive terms in to two different expressions

functionsyms

I am using symolic vavriables
syms a b c d f g
Where all syms variables are positive
and have, for example the following expression A
F=a- b*d+ g*c-a*c+ d*g
my actual expression is much longer but how can I separate the negative vs the positive terms and put them in say in x and y?
I appreciate any help .
Thank you!

Best Answer

Try this
syms a b c d f g
F = a - b*d + g*c - a*c + d*g;
parts = children(F);
parts = [parts{:}];
assume(symvar(parts)>0)
sgns = sign(parts);
assume(symvar(parts), 'clear')
x = parts(sgns==1);
y = parts(sgns==-1);