Estoy tratando de comparar dos matrices. Sucede que los datos de las matrices contienen NaN
valores y cuando se comparan matrices con NaN
valores, los resultados no son lo que esperaba.
julia> a = [1,2, NaN]
3-element Array{Float64,1}:
1.0
2.0
NaN
julia> b = [1,2, NaN]
3-element Array{Float64,1}:
1.0
2.0
NaN
julia> a == b
false
¿Hay alguna forma elegante de ignorar estos Nan
durante la comparación o reemplazarlos de manera eficiente?
Probablemente quiera usar
isequal(a, b)
(que también tratamissing
igual amissing
, pero-0.0
igual de desigual0.0
).fuente
Puede filtrar los NaN en cada matriz:
Luego puede crear una función que realice el filtrado y una función de comparación personalizada que utilice la función de filtrado en ambos argumentos y comparación. No estoy seguro si hay una manera más al estilo de Julia.
fuente
O crea un nuevo tipo. Y cree un Singleton
nan
que use en lugar de NaN.y escribe una función para reemplazar
NaN
s por él.Luego puede ajustar sus listas con esta función.
fuente