访问向量值时的不便 - Octave
Inconvenience when accessing a value of a vector - 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,而是 returns 4.1633e-016 + 1.0000e + 000i。为什么?
我该如何解决?
您在第一个结果中看到的是正确的。表示的精度高达 5 位精度。在第二次调用中查看结果以科学格式呈现,因此您可以在呈现的有限格式中看到您所看到的内容的真正价值。
我应该提到,有时您会得到一个非常小的值,这意味着零,但由于计算中的一些错误,您得到的是一个非常小的值而不是零。您可以在代码前使用 format long E
以获得详细的科学格式的结果。
我在访问八度向量的元素时遇到问题:
>> 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,而是 returns 4.1633e-016 + 1.0000e + 000i。为什么?
我该如何解决?
您在第一个结果中看到的是正确的。表示的精度高达 5 位精度。在第二次调用中查看结果以科学格式呈现,因此您可以在呈现的有限格式中看到您所看到的内容的真正价值。
我应该提到,有时您会得到一个非常小的值,这意味着零,但由于计算中的一些错误,您得到的是一个非常小的值而不是零。您可以在代码前使用 format long E
以获得详细的科学格式的结果。