Hi, I have a question concerning element selection in an array. Suppose you 
have the following arrays:

B = [17 24 1 8 15; 23 5 7 14 16;4 6 13 20 22; 10 12 19 21 3;11 18 25 2 9]

E =[5     5     5     4     5     5     5     5     1     5]

If I type:

B[E]

I get:

11  11  11  10  11  11  11  11  17  11

The 5th element of B is 11, so since E  = 5, 5, 5... the first three 
elements of B[E] is 11 11 11. Now, comes my question: is there a way to do 
this for all columns of B? In Matlab, I would write something like: B(E,:) 
and get


>> B(E,:)       

ans =

    11    18    25     2     9
    11    18    25     2     9
    11    18    25     2     9
    10    12    19    21     3
    11    18    25     2     9
    11    18    25     2     9
    11    18    25     2     9
    11    18    25     2     9
    17    24     1     8    15
    11    18    25     2     9

but this doesn't work in Julia

B[E,:]
ERROR: no method getindex(Array{Int64,2}, Array{Int64,2}, UnitRange{Int64})

so I need to write a loop:

S = zeros(10,5)
x = [1 2 3 4 5]

for i in x
       S[:,i] = B[:,i][E[end,:]]
       end

Is there a way to avoid this loop?


Reply via email to