How to find index of a minimum value starting from the end

3 views (last 30 days)
I have this code:
A =
1 2 3 4 5 6 7 8 9 1 1 1 1
1 2 3 4 5 6 7 8 9 1 1 1 9
1 2 3 4 5 6 7 8 9 1 1 2 3
1 2 3 4 5 6 7 8 9 1 1 1 1
1 2 3 4 5 6 7 8 9 1 1 1 5
1 2 3 4 5 6 7 8 9 1 1 1 3
1 2 3 4 5 6 7 8 9 1 1 2 3
B = min(A')
B =
1 1 1 1 1 1 1
index = find(A'==B, 1, 'last')
index =
89
What I want is to get the indices of the smallest number starting from the end of each row. The answer should look like this
index =
13 12 11 13 12 12 11
Thanks, George.

Accepted Answer

José-Luis
José-Luis on 23 Aug 2017
A = randi(10,10);
A_min = min(A,[],2);
dummy = bsxfun(@eq,A,A_min);
dummy = bsxfun(@times,dummy,1:size(A,2));
result = max(dummy,[],2)

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!