为什么 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
在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