WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Größte Summe von Werten in einem Vektor

 

Liddokun

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2010, 13:21     Titel: Größte Summe von Werten in einem Vektor
  Antworten mit Zitat      
Guten Tag,

habe da ein Problem an dem ich gerade ziemlich zu grunde gehe. Ich habe einen sehr großen Zeilenvektor (Rund 40 Millionen Zahlen). Von diesen weiß ich das es sich um ganzzahlige 16bit Zahlen handelt.

Meine Frage ist, gibt es eine Möglichkeit, die 2 größten Summen von Werten aus diesem Vektor zu bestimmen.

z.B. nehme wir an, es gibt in diesem Array die Zahlen 100 und 200 jeweils 10 Millionen mal, so soll die Ausgabe mir die Werte 100 und 200 liefern, da diese am häufigsten in dem Array vorkommen.

vielen Dank schonmal an die anworten


schmal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2010, 13:37     Titel:
  Antworten mit Zitat      
Wen ich richtig verstanden habe was du suchst, hilft die die Berechnung des Modus weiter:

Code:

vektor=round(1000*rand(1,10000));

a=mode(vektor);
b=mode(vektor(vektor~=a));
 


Oder aber:

Code:

vektor=round(1000*rand(1,10000));

[a, a_times]=mode(vektor);
[b, b_times]=mode(vektor(vektor~=a));
 


Falls du auch noch die Anzahl des Auftretens wissen willst.
 
Coja
Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 20.06.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2010, 13:39     Titel:
  Antworten mit Zitat      
Hallo,
das hier dürfte dir weiterhelfen:
Code:
a=[2 3 4 5 6 7 2 5 2 7 7 8 9 7 2 4 3 2];
hist(a)
[t,tt]=hist(a)
zahl=round(tt(t==max(t))-0.25)

wie du es dann für die zweitgrößte Zahl machst, dürfte klar sein (,oder?)
vg
Coja
Private Nachricht senden Benutzer-Profile anzeigen
 
Liddokun

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2010, 13:54     Titel:
  Antworten mit Zitat      
also danke erstmal für die antworten.

irgendwie haut das nicht hin, bei beiden Varianten.

vielleicht erklär ich das problem nochmal.


Also wie gesagt, ich habe einen Zeilenvektor mit rund 40 Millionen einzelnen 16bit Zahlen. Die Frage ist nun, welche dieser Zahlen kommt am häufigsten/2 häufigsten vor.


eine andere Lösung welche an sich auch gehen würde, währe wenn ich in einem histogram das ich angelegt habe ich die lokalen maxima heraus bestimmen könnte. die funktionen wie find peak oder local maxima ergeben hierbei leider keine sinnvollen ergebnisse.
 
Liddokun

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2010, 13:59     Titel:
  Antworten mit Zitat      
was ich vielleicht noch erwähnen sollte, die Zahlen in dem Vektor sind nicht sortiert, das heißt das wenn ich die Funktion find peak nutze, welches ja nur 3 Zahlen miteinader vergleicht, bekomme ich eine gigantische vielzahl an Maximas.

im Anhang ist auch noch mal das Histogram um das es geht.

Histogram.pdf
 Beschreibung:

Download
 Dateiname:  Histogram.pdf
 Dateigröße:  8.14 KB
 Heruntergeladen:  604 mal
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 25.08.2010, 14:40     Titel:
  Antworten mit Zitat      
Das von dir gewünschte Ergebnis liefert das Code-Beispiel von schmal.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.