访问矢量值时的不便 - Octave

时间:2017-06-08 02:21:41

标签: matlab octave

我在访问octave中的向量元素时遇到问题:

>> den = [1 2 1 2]
>> poles = roots(den)
>> poles =

  -2.00000 + 0.00000i
   0.00000 + 1.00000i
   0.00000 - 1.00000i
>> poles(2)
ans = 4.1633e-016 + 1.0000e+000i

不返回0 + 1i,而是返回4.1633e-016 + 1.0000e + 000i。为什么呢?

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您在第一个结果中看到的内容是正确的。演示精度高达5位精度。在第二次看到结果的调用以科学格式显示,所以你可以看到你在有限格式的演示文稿中看到的内容的真正价值。

我应该提到,有时你会得到一个非常小的值,这意味着零,但由于计算中的一些错误,你得到一个非常小的值而不是零。您可以在代码前使用format long E以详细的科学格式获取结果。