我有以下代码:
syms z
Gc=1.582*(1-0.3679*z^-1)/(1+.418*z^-1);
Ghp=.3679*(z^-1)*(1+.718*z^-1)/((1-z^-1)*(1-.3679*z^-1));
T=(Gc*Ghp)/(1+Gc*Ghp);
clipboard('copy', latex(simplifyFraction(T)));
以下是T
的结果:
如何规范系数?即我希望分母中的z 2 和分子中的z的系数为1。 Matlab中有没有这样的功能呢?
答案 0 :(得分:1)
你可以用numden
提取分子和分母,然后用coeffs
得到它们的系数,对多项式进行归一化,然后再进行除法。
[n,d] = numden(T);
cn = coeffs(n);
cd = coeffs(d);
T = (n/cn(end))/(d/cd(end));
latex(T)
的输出(注意:现在没有simplifyFraction
;它会撤消事情):
如果您更喜欢小数形式的系数,请使用vpa(T)
:此处为latex(vpa(T))
。
当然,上面与原始分数相等,因为我实际上乘以cd(end)/cn(end)
。根据您的目的,您可以
cn(end)/cd(end)
,或(cn(end)/cd(end))*((n/cn(end))/(d/cd(end)));
将其重新插入。不幸的是,Matlab太急于将两个分数合并为一个,但您仍然可以看到规范化的多项式。