How to use poly2list for specific variables?

Hi there,
In the example 2 of the help for 'poly2list' https://www.mathworks.com/help/symbolic/mupad_ref/poly2list.html?s_tid=srchtitle, it shows as follows:
In this example the polynomial is bivariate, thus exponent vectors are returned:
poly2list((x*(y + 1))^2, [x, y])
How to use this in MATLAB? I tried feval but it shows error:
>> syms x y
>> feval(symengine, 'poly2list', (x*(y + 1))^2, [x, y])
Error using mupadengine/feval (line 163)
The number of arguments is incorrect.
Thanks,
Dan

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 30 Nov. 2017

1 Stimme

symLIST = @(varargin)feval(symengine,'DOM_LIST',varargin{:});
feval(symengine,'poly2list', (x*(y + 1))^2, symLIST(x,y))

5 Kommentare

Dan Li
Dan Li am 30 Nov. 2017
Thanks very much!
Walter Roberson
Walter Roberson am 30 Nov. 2017
This is a quite advanced usage, and not many people will understand why it is necessary to do things this way. But it works.
Dan Li
Dan Li am 30 Nov. 2017
Hi Walter,
Thanks for the help.
If I want to store the symbolic variables in a matrix first, how to convert it correctly? For example: X = [x, y], then symLIST(X) will not generate a list of x y but a matrix([[x, y]]). I tried feval(symengine, 'coerce', X, 'DOM_LIST'), but this still not work for the poly2list.
varcell = num2cell(X);
feval(symengine,'poly2list', (x*(y + 1))^2, symLIST(varcell{:}))
Dan Li
Dan Li am 30 Nov. 2017
Thanks you very much! This really helps me a lot!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Karan Gill
Karan Gill am 30 Nov. 2017
Bearbeitet: Karan Gill am 5 Dez. 2017

0 Stimmen

In general, I don't recommend using MuPAD commands, as the note at the top says.
Is coeffs helpful?
>> syms x y
p = (x*(y + 1))^2;
[C,T] = coeffs(p,[x y]) % C = coeffs, T = terms
C =
[ 1, 2, 1]
T =
[ x^2*y^2, x^2*y, x^2]

1 Kommentar

Dan Li
Dan Li am 30 Nov. 2017
I also want extract the power value of every variable in every monomial. Is there any way to convert the x^2*y^2 to [2, 2]?
Thanks,
Dan

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by