【问题标题】:Why can't Julia identify NaN in some cases?为什么 Julia 在某些情况下不能识别 NaN?
【发布时间】:2019-12-18 18:43:48
【问题描述】:

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

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

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

【问题讨论】:

标签: matrix julia nan


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 2012-04-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    相关资源
    最近更新 更多