# Finding coefficients of variables of specific powers

8 views (last 30 days)
Connor LeClaire on 4 Dec 2021
Commented: Connor LeClaire on 4 Dec 2021
Hello,
I am trying to find coefficients of variables of specific powers, or of 2+ variables multiplied together, however I am running into issues.
Problem 1:
syms x
y = x^2 + 3;
disp(coeffs(y,x));
The equation y does not include a x^1 term, however the returned matrix from coeffs is (3 1) which could be the same for the equation y = x + 3. I need something like (3 0 1) to show zero coefficients of intermediate powers of the variable.
Problem 2:
Trying to find coefficients of multiple variables. For instance z = x^2*y + 3y + 5x^2 +4y^2 + 3xyr + 5
If I try to find the coefficients of xy I want it to return 3r and ignore the x^2y term. Is there an easy way to do this or is it a nested (or 2-line) coeffs? If so this also runs into problem #1 should the equation not include the powers of that variable.
Thanks!

Benjamin on 4 Dec 2021
Problem 1: Try using the 'All' flag in your call to coeffs.

Steven Lord on 4 Dec 2021
syms x y r
z = x^2*y + 3*y + 5*x^2 +4*y^2 + 3*x*y*r + 5
z =
[coeffsOfX, powersOfX] = coeffs(z, x, 'all')
coeffsOfX =
powersOfX =
[coeffsOfX2y, powersOfY] = coeffs(coeffsOfX(powersOfX == x^2), y, 'all')
coeffsOfX2y =
powersOfY =
coefficientOfX2NoY = coeffsOfX2y(powersOfY == 1)
coefficientOfX2NoY =
5
##### 2 CommentsShowHide 1 older comment
Connor LeClaire on 4 Dec 2021
Should there exist no 2nd order power of x for example, using the index of powersOfX == x^2 throw an error?

R2021a

### Community Treasure Hunt

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

Start Hunting!