为什么 Julia 在某些情况下无法识别 NaN?

Why can't Julia identify NaN in some cases?

在Julia中做了如下的矩阵

Zt=[10;20];Zb=[30;40]
2-element Array{Int64,1}:
 30
 40

julia> R1=[Zt Zb]
2×2 Array{Int64,2}:
 10  30
 20  40

当尝试以下条件时,它可以正常工作

R1[:,1][1]==10
true

但是如果矩阵如下:

Zt=[NaN;20];Zb=[30;40]
2-element Array{Int64,1}:
 30
 40

julia> R1=[Zt Zb]
2×2 Array{Float64,2}:
 NaN    30.0
  20.0  40.0

虽然 R1[:,1][1] 是 NaN,但条件为 false

R1[:,1][1]==NaN
false

你能告诉我问题是什么吗?

改用isnan

isnan(f) -> Bool

Test whether a floating point number is not a number (NaN).

像这样:

julia> isnan(NaN)
true

julia> R1 = [NaN 20;
              30 40]
2×2 Array{Float64,2}:
 NaN    20.0
  30.0  40.0

julia> R1[:,1][1]
NaN

julia> R1[:,1][1] |> isnan
true

julia> isnan(R1[:,1][1])
true