Reputation: 2955
I just want to find all the indices of the maximum value in a vector in matlab. the max function returns only the index of the first occurence of the maximum. For example:
maxChaqueCell = [4 5 5 4]
[maximum, indicesDesMax] = max(maxChaqueCell)
maximum =
5
indicesDesMax =
2
I need the indicesDesMax
to have 2 and 3 which are the indices of the two 5 we have in maxChaqueCell
, how can I do that?
Thanks.
Upvotes: 8
Views: 13370
Reputation: 31
[value,index] = sort(maxChaqueCell,'descend');
sortedmaximums = [value,index];
Upvotes: 1
Reputation: 46435
First you find the max value, then you find all the elements equal to that:
m = max(myArray);
maxIndex = find(myArray == m);
Or using your variable names:
maxChaqueCell = [4 5 5 4];
maximum = max(maxChaqueCell)
indicesDesMax = find( maxChaqueCell == maximum );
This is how you find all of them, not just the first one.
Upvotes: 11