获取向量中浮点数的索引

bai*_*ter 1 arrays matlab vector

我已经执行了这段代码,但它并没有像我期望的那样工作:

A = 1:0.1:1.4

A =

    1.0000    1.1000    1.2000    1.3000    1.4000

A == 1.3000

ans =

    0     0     0     0     0
Run Code Online (Sandbox Code Playgroud)

我以为我会得到:

    ans =

        0     0     0     1     0
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?我怎样才能让它按照我的意愿运作?

谢谢.

Lui*_*ndo 6

比较浮点数时通常会这样.试试A(4)-1.3.它会给你一些小而不是零的东西.那是因为浮点数具有有限的精度.一般来说,最好不要使用浮点数来测试相等性.

通常的方法是定义一个小容差(例如1e-9)并比较考虑该容差:

abs(A-1.3)<1e-9
Run Code Online (Sandbox Code Playgroud)