# obtain data using columns data indices

1 view (last 30 days)
Farman Shah on 13 Dec 2018
Commented: Farman Shah on 13 Dec 2018
i have data A=( 3,5,3,1,4 ) in a column and
B=[ 4 6 9 1 3
2 7 2 5 7
7 3 1 8 2
4 1 6 9 1
2 5 8 3 6]
and i want: as in A first element is 3 and for this i want to get first element of column 3 row 1 from B which is 9. The second element of A is 5 and for this i want to get the the 2nd element of column 5 and row 2 from B which is 7 ,and do the process for all other elements . how to do this? the requried elememts are bold and underlined
any help will be really appriciated.........thanks in advance
madhan ravi on 13 Dec 2018
Dude just give the example of your desired output
Farman Shah on 13 Dec 2018
Edited: Farman Shah on 13 Dec 2018
[9,7,1,4,3] is the disired output. which is underlined also

Walter Roberson on 13 Dec 2018
B(sub2ind( size(B), 1:length(A), A))
##### 3 CommentsShow 1 older commentHide 1 older comment
Walter Roberson on 13 Dec 2018
B(sub2ind( size(B), (1:length(A)).', A(:)))
The above will work regardless of whether A is a row or column vector. However, it will return a column of results either way. If you need a row of results, put .' at the end:
B(sub2ind( size(B), (1:length(A)).', A(:))).'
Farman Shah on 13 Dec 2018
thank you very much sir.. you made my day easy.