Найти самый большой индекс минимума в Matlab - PullRequest
1 голос
/ 02 мая 2020

У меня есть массив положительных чисел и есть несколько дубликатов. Я хочу найти самый большой индекс минимального значения.

Например, если a=[2, 3, 1, 1, 4, 1, 3, 2, 1, 5, 5], то [i, v] = min(a) возвращает i=3, однако я хочу i=9.

Ответы [ 3 ]

3 голосов
/ 02 мая 2020

Вот другая идея, для которой требуется только одна функция, sort :

[~,y] =  sort(a,'descend');
i = y(end)

ans =

     9
3 голосов
/ 02 мая 2020

Использование find и min .

A = [2, 3, 1, 1, 4, 1, 3, 2, 1, 5, 5];
minA = min(A);
maxIndex = max(find(A==minA));

min получение минимального значения и find return Индекс значений, которые удовлетворяют условию A == minA . max индекс возврата по максимальному значению.

2 голосов
/ 03 мая 2020

Вы также можете использовать imreginalmin с временной сложностью O(n):

largestMinIndex = find(imregionalmin(A),1,'last');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...