2015-03-16 1 views
2

Je tente de trouver l'index d'un élément dans un tableau dans une boucle for qui passe d'un élément à l'autre dans le tableau. Y at-il une fonction intégrée qui me permet de faire cela?Julia Trouver l'index de la valeur itérative

dim = 3 
length = 10 

arrayTuple = fill!(Array(Int64, dim),length) 
# [10,10,10] 

Arr = fill!(Array(Int64,tuple(arrayTuple...)),1) 

for item in Arr 
    #print the index of node into array here 
end 

Répondre

6

IIUC, vous pouvez utiliser enumerate:

julia> for (i, item) in enumerate(Arr[1:5]) 
      println(i, " ", item) 
     end 
1 1 
2 1 
3 1 
4 1 
5 1 

Si vous voulez la version multidimensionnelle, vous pouvez utiliser eachindex à la place:

julia> for i in eachindex(a) 
      println(i, " ", a[i]) 
     end 
Base.IteratorsMD.CartesianIndex_3(1,1,1) 1.0 
Base.IteratorsMD.CartesianIndex_3(2,1,1) 1.0 
Base.IteratorsMD.CartesianIndex_3(3,1,1) 1.0 
Base.IteratorsMD.CartesianIndex_3(1,2,1) 1.0 
[... and so on] 
+0

Énumérer ne fournit pas d'index appropriés pour les tableaux ci-dessus un dimension. L'énumération peut-elle fournir des index multidimensionnels? –

+0

@JamesBeezho: ah, non, mais "eachindex" peut. – DSM

+0

Le commentaire ci-dessus répond à ma question; cependant, il est à noter que eachindex() n'est disponible qu'en julia 0.4.0, une version instable. –