|
|
Elemente in Vektor ohne for-loop zählen |
|
Tobias14 |

Forum-Anfänger
|
 |
Beiträge: 19
|
 |
|
 |
Anmeldedatum: 15.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2014, 14:39
Titel: Elemente in Vektor ohne for-loop zählen
|
 |
Hallo zusammen,
ich würde gerne in einem Vektor (ganze positive Zahlen) jeweils auszählen, wie oft bestimmte Zahlen dort vorkommen.
z.B.
somit kann ich beispielsweise zählen wir oft die Zahl 1 in dem Vektor M vorkommt. Ich möchte allerdings alle Zahlen von 1 bis 20 in dem Vektor M zählen... wie es mit der for-schleife auch funktioniert. Allerdings bekomm ich es nicht ohne for-schleife hin. Bei meinen Realdaten läuft i allerdings bis zu mehrerer Millionen weswegen das ganze dann ewig dauert.
Kann mir jemand helfen?
Viele Grüße
Tobias
|
|
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 16.12.2014, 15:21
Titel:
|
 |
Ich dachte spontan an den HISTCOUNTS Befehl, war aber zunächst wegen der Performance enttäuscht. Je grösser n aber wird, desto besser schneidet er ab:
Andreas
|
|
|
Ingwertee |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2014, 15:46
Titel:
|
 |
1. Variante (spontaner Einfall)
nachteil, ist dass find nicht unbedingt effektiv ist. Habe es mal mit einem recht großen n getestet und meine 1. Variante (ca. 27 sec) ist etwa gleich langsam wie mit deinem Vorgehen (ca. 28 sec).
2. Variante (kurzes Grübeln)
Vorteil der 2. Variante ist, dass der Vektor nur einmal durchgegangen werden muss, um all Zahlen zu finden. Bei mir dauert es selbst für einen recht großen Vektor weniger als 0,07sec.
Da bleibt keine Zeit mehr für Teetrinken
Ne Variante ohne Schleife fällt mir jedoch nicht ein.
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 16.12.2014, 16:28
Titel:
|
 |
Hallo
so noch eine weitere Möglichkeit
|
|
|
Tobias14 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 19
|
 |
|
 |
Anmeldedatum: 15.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2014, 16:37
Titel:
|
 |
Danke euch beiden für die Hilfe!
Ich habe es nun mit histc gelöst. Hier der Vergleich
Methode 2 ist bei mir (vor allem für sehr große Werte) deutlich schneller. Im Beispiel hier komme ich auf einen Faktor von 27.
Ich denke damit ist mein Problem nun gelöst.
Vielen Dank!
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 16.12.2014, 17:48
Titel:
|
 |
HISTC ist letztendlich die alte Umsetzung von HISTCOUNTS
In der R2014b Dokumentation steht: "histc is not recommended. Use histcounts instead." Ich nehme an das heisst verklausuliert, dass HISTC irgenwann einmal nicht mehr existiert.
Andreas
|
|
|
Tobias14 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 19
|
 |
|
 |
Anmeldedatum: 15.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2014, 18:24
Titel:
|
 |
Wenn man noch mit 2012 arbeitet gibt es leider keine andere Möglichkeit.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|