Effacer les filtres
Effacer les filtres

How to extract numerator and denominator coeficients from polynomial function to array

12 vues (au cours des 30 derniers jours)
I have numerator/denominator in form of 10s^6+9s^5+8s^4...+1
and when i try to plot this through command sys=tf(num,den) i get error that it needs to be cell arrays of vectors so i need command that will make array fom me from numerator, denominator like this.
I do not want to write it by hand, i need some command for script that will do that for me. Through symbolic variables i get TF, then i evaluate it for numerator and denominator, now i need to make array from that to use it with tf() command.

Réponse acceptée

Karl le 14 Avr 2024
You can extract a vector of the coefficients of a symbolic polynomial using sym2poly():
% Create example symbolic polynomial.
syms s
coeffs0 = randi([-10 10],1,5);
polynomial = poly2sym(coeffs0, s)
polynomial = 
% Extract polynomial coefficients.
coefficients = sym2poly(polynomial)
coefficients = 1x5
7 9 -8 9 3
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>

Plus de réponses (1)

Steven Lord
Steven Lord le 14 Avr 2024
Do you have separate symbolic expressions for the numerator and denominator or do you have the fraction created by dividing numerator by denominator?
syms x
N = x^2+2*x+3
N = 
D = x^3+3*x^2+6*x+10
D = 
F = N./D
F = 
If you have N and D, just use sym2poly as @Karl showed. If you only have F, though, you can use the numden function to extract the numerator and denominator.
[num, den] = numden(F)
num = 
den = 


En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange




Community Treasure Hunt

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

Start Hunting!

Translated by