get only addends of subexpression

1 visualizzazione (ultimi 30 giorni)
Suppose I have a symbolic expression like this
syms x x0
f=(x-x0)^3
children(f)
[(x-x0),3]
I would like to get instead
[(x-x0)^3]
How can this be done?
  1 Commento
Steven Lord
Steven Lord il 15 Mar 2018
Can you say a little more about your ultimate goal? Perhaps there's a way to do what you want without running a MuPAD expression via feval(symengine, ...).

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 15 Mar 2018
You cannot do that with children().
You need to do something like,
feval(symengine, '(V) -> if testtype(V,"_plus") then [op(V)] else [V] end_if;', f)
  2 Commenti
David Armendáriz
David Armendáriz il 15 Mar 2018
Thanks, and is there any way to do the same but with multiplication? I mean, if I have
f=a*b*c*d
I would like to get
[a,b,c,d]
And when
f=a
then the output is
[a]
Walter Roberson
Walter Roberson il 15 Mar 2018
Use _mult instead of _plus for that purpose.

Accedi per commentare.

Più risposte (0)

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by