web-dev-qa-db-fra.com

Fonction de recherche dans Julia 1.0.2

Je passe à Julia 1.0.2 et j'ai réalisé que la fonction find n'est pas définie. Dans une version précédente (Julia 0.6) je pouvais écrire

find(x -> x<0, my_var)

Afin d'obtenir les éléments négatifs du tableau appelé my_var. Lorsque j'exécute le même code dans Julia 1.0.2, j'obtiens l'erreur suivante:

UndefVarError: find not defined

Je n'ai pas pu trouver si la fonction find est implémentée sous un nom différent ou si elle a été supprimée. Existe-t-il une fonction Julia 1.0.2 qui serait équivalente à la fonction find dans les versions précédentes de Julia?

8
A. A.

Utilisez filter():

Julia> filter(x -> x<0, -5:5)
5-element Array{Int64,1}:
 -5
 -4
 -3
 -2
 -1

Une autre option consiste à utiliser findall() pour obtenir les indices des éléments:

Julia> indices = findall(x -> x<0, -5:5)
5-element Array{Int64,1}:
 1
 2
 3
 4
 5

Vous pouvez utiliser getindex() pour obtenir les valeurs réelles, par exemple:

Julia> getindex(-5:5,indices)
5-element Array{Int64,1}:
 -5
 -4
 -3
 -2
 -1
9
Przemyslaw Szufel