Acquiring related Matrix Members

1 view (last 30 days)
Umit
Umit on 7 Aug 2012
I have a n by m matrix A and 1 by n array B. Assume
A = rand(3,5)
B = [3;5;2]
How can I get 1st rows 3rd element, 2nd rows 5th element and 3rd rows 2. element of A matrix w/o for loop?
Each rows related element is the member of B array as you can see?

Accepted Answer

Matt Fig
Matt Fig on 7 Aug 2012
Edited: Matt Fig on 7 Aug 2012
A(sub2ind(size(A),1:length(B),B(:)'))
or
A((1:length(B))+(B(:)'-1)*size(A,1))

More Answers (1)

Andrei Bobrov
Andrei Bobrov on 7 Aug 2012
Edited: Andrei Bobrov on 7 Aug 2012
out = A(sub2ind(size(A),(1:numel(B))',B(:)));

Categories

Find more on Multidimensional Arrays 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!