Matlab 绘制实根和虚根

Matlab Plotting Real and Imaginary Roots

使用 plot_pz([poles],[zeros])

的代码
function plot_pz(b,a) 

b_roots = roots(b);
a_roots = roots(a);

plot(b_roots,'x black');
plot(a_roots,'o blue');
axis equal;

我可以让我的 b_roots 正确绘图,但我的 a_roots 不断地在 1+0i 轴(或 x=1)上绘图。例如,Z 变换 H(z) = [[1 2 2],[0 1 .8]] 给出以下极点和零点(根据 matlab):

poles =

  -1.0000 + 1.0000i
  -1.0000 - 1.0000i


zeros =

   -0.8000

应该是这样的

但我得到的是

我的零点在 -1+1i 和 -1-1i,我的极点似乎在 1-.8i,但应该在 -.8+0i

我确定我缺少的是一些简单的东西,但我无法弄清楚。我认为只有当我有一个极点或一个零时才会发生这种情况。

plot(X) 是否总是默认绘制 1+xi?

通过使用 real() 和 imag() 更清晰来修复

plot(real(b_roots),imag(b_roots),'o blue');
plot(real(a_roots),imag(a_roots),'x red');