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

35 次查看(过去 30 天)
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.
Thanks

采纳的回答

Karl
Karl 2024-4-14
You can extract a vector of the coefficients of a symbolic polynomial using sym2poly():
% Create example symbolic polynomial.
syms s
rng('default');
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>

更多回答(1 个)

Steven Lord
Steven Lord 2024-4-14
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 = 

类别

Help CenterFile Exchange 中查找有关 Polynomials 的更多信息

产品


版本

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by