MATLAB: Select specific coefficient from symbolic polynomial

polynomialsymbolic

Given a symbolic polynomial in several variables I would like to pick the coefficient for a given monomial.
Ex: P(x,y,z)= 6*x^2*y + z*x- 5*x +7*x*y*z Let say I would like to find the coefficient of x*z in P(x,y,z) that is 1.
Or I could ask the coefficient of y in P(x,y,z) in this case I would obtain 0.
Or coefficient of x in P(x,y,z) I would obtain -5.
Is there a way to solve this?

Best Answer

Farid, you can back out the subexpressions and the corresponding coefficients of the polynomial using coeffs
syms x y z P(x,y,z)
P(x,y,z) = 6*x^2*y + z*x- 5*x +7*x*y*z;
[c,t] = coeffs(P)
c(x, y, z) =
[ 6, 7, 1, -5]
t(x, y, z) =
[ x^2*y, x*y*z, x*z, x]
With this approach and a bit of logic you can write a function that returns the coefficient as stated in your question.