Schnellere Version der Suche nach sortierten Vektoren (MATLAB)

Ich habe folgenden Code in MATLAB:

indices = find([1 2 2 3 3 3 4 5 6 7 7] == 3)

Dies gibt 4,5,6 zurück - die Indizes der Elemente im Array sind gleich 3. Jetzt. Mein Code macht so etwas mit sehr langen Vektoren. Die Vektoren sindimmer sortiert.

Daher möchte ich eine Funktion, die die O (n) -Komplexität von find durch O (log n) ersetzt, auf Kosten der Sortierung des Arrays.

Ich bin mir des Mitglieds bewusst, aber soweit ich weiß, werden nicht die Indizes aller Elemente zurückgegeben, sondern nur der letzte (ich brauche alle).

Aus Gründen der Portabilität muss die Lösung nur MATLAB-fähig sein (keine kompilierten mex-Dateien usw.).

Antworten auf die Frage(5)

Ihre Antwort auf die Frage