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

2 visualizaciones (últimos 30 días)
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!

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 3 de Dic. de 2020
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);
  4 comentarios
EllaD
EllaD el 3 de Dic. de 2020
gives this:
Error using cellfun
Input #2 expected to be a cell array, was sym instead.
Error in negativepositive (line 17)
sgns = cellfun(@sign, parts);
it is 2012a . But thanks anyways Ameer :) I will be going for an upgrade, it is way old I guess.
Ameer Hamza
Ameer Hamza el 3 de Dic. de 2020
Yes, it seems something related to old release. It seems that children() does not return a cell array in your case.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Numbers and Precision en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by