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

1 Ansicht (letzte 30 Tage)
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.

Akzeptierte Antwort

José-Luis
José-Luis am 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)

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by