Давайте предположим, что у меня есть массив, array1
, следующим образом:Альтернативы «уникальной» функции при поиске индексов уникальных значений (Matlab)
array1 = [1 2 2 2 3 3 4 4 4 5];
Я пытаюсь найти первый Значение индекса каждого из уникальных значений в этом массиве. Это довольно легко сделать с unique
функции:
[~,uniqueIndex,~] = unique(array1,'first')
который производит ожидаемый результат:
uniqueIndex =
1 2 5 7 10
Мне нужно выполнить это действие на тысячи очень больших массивов и функция unique
доказала свою быть огромным узким местом в моем коде. Мне было интересно, есть ли альтернативы, которые я мог бы использовать для достижения того же конечного результата (т. Е. Переменная uniqueIndex
), но с меньшим воздействием на производительность.
EDIT: массивы отсортированы и содержат целые числа.
Это может помочь немного узнать о рассматриваемых массивах. Они содержат целые числа? Они уже отсортированы? – MrAzzaman
@ MrAzzaman Они массивы содержат целые числа и уже отсортированы – Alarik