У меня есть массив положительных чисел и есть несколько дубликатов. Я хочу найти самый большой индекс минимального значения.
Например, если a=[2, 3, 1, 1, 4, 1, 3, 2, 1, 5, 5], то [i, v] = min(a) возвращает i=3, однако я хочу i=9.
a=[2, 3, 1, 1, 4, 1, 3, 2, 1, 5, 5]
[i, v] = min(a)
i=3
i=9
Вот другая идея, для которой требуется только одна функция, sort :
[~,y] = sort(a,'descend'); i = y(end) ans = 9
Использование 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 индекс возврата по максимальному значению.
Вы также можете использовать imreginalmin с временной сложностью O(n):
imreginalmin
O(n)
largestMinIndex = find(imregionalmin(A),1,'last');