Julia 0.5 now supports indexing by arrays of CartesianIndex
es. A CartesianIndex
is a special index type that spans multiple dimensions:
julia> genconv = reshape([6,9,7,1,4,2,3,2,0,9,10,8,7,8,5], 5, 3)
5×3 Array{Int64,2}:
6 2 10
9 3 8
7 2 7
1 0 8
4 9 5
julia> genconv[CartesianIndex(2,3)] # == genconv[2,3]
8
What's interesting is that you can use vectors of CartesianIndex
es to specify this numpy-style pointwise indexing:
julia> genconv[[CartesianIndex(1,2),CartesianIndex(2,3),CartesianIndex(3,1)]]
3-element Array{Int64,1}:
2
8
7
That's pretty verbose and terrible-looking, but this can be combined with the new f.()
special broadcasting syntax for a very nice solution:
julia> genconv[CartesianIndex.([1,2,3],[2,3,1])]
3-element Array{Int64,1}:
2
8
7
[genconv[[1,2,3],[2,3,1]]...]
– Reza Afzalan