Union使用困惑 & isnan对数组无效?!

Julia1.0.5中定义 m::Union{Float64,Vector{Float64}}
后面对其进行判断 isnan(m) 报错 (T.T)

既然是Union,为什么不能把它当做是Float64类型的呢?
isnan只能对float数操作,不能对数组进行判断。是否有解决办法呢?
还有判断相等的 is 函数去哪里了 :sob:

恳请达人赐教解答。非常感谢~~

代码贴一下呗 :yum:

1 个赞

判断相等是 isequal

1 个赞

你这个 Union 就比较奇怪,直接用 Vector{Float64} 不行吗?
只有一个元素的 Vector 就等同于 Float64 这样接口也更统一。

1 个赞
julia> isnan.([1, 2, 3])
3-element BitArray{1}:
 0
 0
 0

julia> isnan.(1)
false

julia> isnan.(NaN)
true

julia> isnan.([1, 2, NaN, 3])
4-element BitArray{1}:
 0
 0
 1
 0

同上,这个 Union 有点奇怪,建议只有一个 Float64的时候也用向量包装起来,统一接口。

2 个赞

代码中冗余部分实在太多,就拎问题代码出来,现在看来仅问题代码有时会有让人迷惑呢 :laughing:

果然呢,谢谢兄台!

谢谢!这个问题源于前端程序哈!之前的运行结果有可能是两种类型,是不是也不排除0.3版本的差异。

谢谢!换成isnan.()蛮OK~