MATLAB: How to extract coefficient of a certain term in Matlab

coefficientexpansionpolynomialseriessymbolic

For example,
syms f1 f2 a
pexpansion = f1 - f2 - a*(f1 - f2) + f2/a + a^2*(f1 - f2) - a^3*(f1 - f2) + a^4*(f1 - f2)
I want to extract the coefficient of power 1 of a, which is (f1-f2). However, there is 1/a term in the expression which makes it not a polynomial. Does anyone know how to do this?

Best Answer

Try this:
syms f1 f2 a
pexpansion = f1 - f2 - a*(f1 - f2) + f2/a + a^2*(f1 - f2) - a^3*(f1 - f2) + a^4*(f1 - f2);
pexpansion = expand(a * pexpansion); % Eliminate ‘a’ In Denominator
[cfs,trms] = coeffs(pexpansion, a); % Coeffients & Terms
Result = cfs(trms == a) % Coefficient Of ‘a’
Result =
f1 - f2