Estou tentando comparar duas matrizes. Acontece que os dados para as matrizes contêm NaN
valores e, quando você compara matrizes com NaN
valores, os resultados não são o que eu esperava.
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
Existe uma maneira elegante de ignorá-los Nan
durante a comparação ou substituí-los com eficiência?
Você provavelmente deseja usar
isequal(a, b)
(que também tratamissing
igual amissing
, mas-0.0
desigual0.0
).fonte
Você pode filtrar os NaNs em cada matriz:
Você pode criar uma função que faça a filtragem e uma função de comparação personalizada que use a função de filtragem nos argumentos e na comparação. Não tenho certeza se existe uma maneira mais Julia-esque.
fonte
Ou crie um novo tipo. E crie um Singleton
nan
que você usa em vez de NaN.e escreva uma função para substituir
NaN
s por ela.Em seguida, você pode agrupar suas listas usando esta função.
fonte