obtain data using columns data indices

1 view (last 30 days)
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
  2 Comments
madhan ravi
madhan ravi on 13 Dec 2018
Dude just give the example of your desired output
Farman Shah
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

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 13 Dec 2018
B(sub2ind( size(B), 1:length(A), A))
  3 Comments
Walter Roberson
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
Farman Shah on 13 Dec 2018
thank you very much sir.. you made my day easy.

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!