Was ist der schnellste Weg, um Elemente in einem Array zu zählen?

In meinen Modellen besteht eine der am häufigsten ausgeführten Aufgaben darin, die Anzahl der einzelnen Elemente in einem Array zu zählen. Die Zählung ist von einem geschlossenen Satz, also weiß ich, dass es @ giX Elementtypen und alle oder einige von ihnen füllen das Array zusammen mit Nullen, die "leere" Zellen darstellen. Das Array ist in keiner Weise sortiert und kann relativ lang sein (ungefähr 1 Million Elemente). Diese Aufgabe wird während einer Simulation (die auch Teil von Hunderten von Simulationen ist) Tausende Male ausgeführt. Das Ergebnis sollte ein Vektor seinr von GrößeX, sor(k) ist die Menge vonk im Array.

Beispiel

ZumX = 9, wenn ich den folgenden Eingabevektor habe:

v = [0 7 8 3 0 4 4 5 3 4 4 8 3 0 6 8 5 5 0 3]

Ich möchte dieses Ergebnis erhalten:

r = [0 0 4 4 3 1 1 3 0]

Bitte beachten Sie, dass ich nicht die Anzahl der Nullen und die Elemente, die nicht im Array angezeigt werden (wie2) haben eine0 an der entsprechenden Position des Ergebnisvektors r(2) == 0).

Was würde das sein schnellste Weg, um dieses Ziel zu erreichen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage