我在访问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。为什么呢?
我该如何解决?
答案 0 :(得分:1)
您在第一个结果中看到的内容是正确的。演示精度高达5位精度。在第二次看到结果的调用以科学格式显示,所以你可以看到你在有限格式的演示文稿中看到的内容的真正价值。
我应该提到,有时你会得到一个非常小的值,这意味着零,但由于计算中的一些错误,你得到一个非常小的值而不是零。您可以在代码前使用format long E
以详细的科学格式获取结果。