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

时间:2019-08-12 07:06:00

标签: matrix julia nan

在茱莉亚中制作如下矩阵

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,但条件为假

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

请您告诉我问题是什么?

1 个答案:

答案 0 :(得分:1)

改为使用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