Ich habe ein Array, das wiederholte nichtnegative Ganzzahlen enthält, z. B. A=[5,5,5,0,1,1,0,0,0,3,3,0,0]
. Ich möchte die Position des letzten Maximums in A
finden. Das ist der größte Index i
, so dass A[i]>=A[j]
für alle j
. In meinem Beispiel i=3
.Wie finde ich den Index des letzten Maximums in juliallang?
Ich habe versucht, die Indizes aller maximal A
dann das Maximum dieser Indizes finden zu finden:
A = [5,5,5,0,1,1,0,0,0,3,3,0,0];
Amax = maximum(A);
i = maximum(find(x -> x == Amax, A));
Gibt es einen besseren Weg?
Wenn Sie ein möchten schnelle Lösung wahrscheinlich sollten Sie eine benutzerdefinierte Funktion genau wie 'findmax' in Base schreiben, aber ersetzen Sie' if ai> m' mit 'if ai> = m'. Mit Standardfunktionen kann man 'Länge (A) + 1-Indmax (rückwärts (A))' schreiben, der Nachteil ist, dass es eine Kopie von 'A' ausführt. –
Alex Arslan hat mir gerade auf Slack gesagt, dass 0.7 eine 'Iterators.reverse'-Funktion hat, die eine Ansicht erzeugt. –
@ MichaelK.Borregaard Iterators.reverse unterstützt indmax nicht. ('ERROR: MethodError: keine Methode, die Schlüssel entspricht (:: Base.Iterators.Reverse {String})'. Slack ist öffentlich? – Liso