Extracting elements from a matrix based on the maximum position in another matrix

1 view (last 30 days)
Hi, I have matrices A(100x96) and B(100x96). My aim is to find the value of element in A corresponding to position of max in B. [M, J]=max(B); % M gives max values and J gives position corresponding to max value of B. M & J have 1x96 dimension. Now I have to find values of A for position J. I know if manually I do like, A(J(1),1), A(J(2),2).. would give me required elements of A (but not suitable for large dimension). How to solve?Any suggestions. Thank you so much.

Accepted Answer

KL
KL on 18 Aug 2017
arrayfun(@(j,f) A(j,f), J,1:size(A,2))

More Answers (1)

José-Luis
José-Luis on 18 Aug 2017
a = rand(100,96);
b = rand(100,96);
[~,idx] = max(b);
result = a(sub2ind(idx,1:size(a,2)))

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!