|
razer |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 06.03.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.03.2008, 08:56
Titel: Sortieren,etc
|
|
Hallo Leute!
Folgendes:Nehmen wir an,ich hab nen Spaltenvektor mit verschiedenen Werten drin und es ist so,dass manche davon mehrmals vorkommen.
Meine Frage:Ich will jetzt wissen,welcher Wert kommt am öftesten vor, wie stelle ich das an?Hab zuerst gedacht mit Häufung etc,aber wie mache ich das in Matlab?Weiteres kleines Problem ist,dass die Werte im Vektor kleine Fehler aufweisen,soll heißen,dass zB 1 und 1.001 der gleiche Wert sein sollen...
Grüße
|
|
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 06.03.2008, 09:56
Titel:
|
|
Hallo, versuch mal folgendes
|
|
|
razer |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 06.03.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.03.2008, 10:08
Titel:
|
|
Okay,danke erstmal!
Ich habs anders gemacht,etwas umständlicher,ohne for schleife.
Jetzt tritt noch ein Problem auf:Sagen wir,ein Wert tritt 20 mal auf und ein anderer 19 mal.Einer der beiden ist größer und den will ich.Was mache ich,wenn der,den ich will,also der größere der beiden, nur am zweitöftesten auftritt?
Gruß
edit:Ich bräuchte also den Index des Wertes,der am öftesten auftritt und gleichzeitig am größten ist,so ne Art Schnittmenge.
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 06.03.2008, 11:05
Titel:
|
|
Weiß nicht, welcher Weg hier hilfreich wäre.
(denn von der Logik her schließen sich diese 2 Mengen doch aus)
Ich wurde vielleicht erstmal die maximale Zahlen nach Häufigkeit absteigend sortieren.
und dann suchst du dir selbst raus, welche Zahl dir am Besten passt
|
|
|
razer |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 06.03.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.03.2008, 13:30
Titel:
|
|
Ziemlich cool,danke
Ein Problem hab ich noch:Ich habe Daten,die irgendwie verrauscht sein können.Deswegen rundest du mit integer32 oder?Was ist der Unterschied zwischen den integer's,warum nimmst du das 32er?
Gruß
Edit:Ich möchte im Prinzip zum Errechnen der Häufigkeiten die Schwankunegn unterdrücken,aber möchte,nachdem ich weiß,welcher am öftesten vorkommt, den größten ungerundeten Wert haben.
Hm voll blöd ausgedrückt.
Nehmen wir an,ich hab einen Vektor mit 1.01 0.98 0.99 1.02 1.03 3.00 3.02 3.02 3.01 3.03 3.00 2.99 2.98 .... usw,dann rundest du und siehst,dass 3 am öftesten vorkommt.Und dann will ich den größten Wert,der aus dem ursprünglichen Vektor zu diesem Ergebniss geführt hat,also in diesem Fall ehm 3.03
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 06.03.2008, 13:56
Titel:
|
|
Ach so, jetzt verstehe was du meinst dann könnte man so machen
Zitat: |
Ein Problem hab ich noch:Ich habe Daten,die irgendwie verrauscht sein können.Deswegen rundest du mit integer32 oder?Was ist der Unterschied zwischen den integer's,warum nimmst du das 32er?
|
mit int32 habe ich einfach die Kommastellen abgeschnitten, da ich deinen Zahlenbereich nicht wußte, habe ich integer 32 Bit genommen
Zahlenbereich zwischen( -2^31 bis 2^31-1)
aber man kann auch einfach die Funktion fix verwenden
|
|
|
razer |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 06.03.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.03.2008, 14:13
Titel:
|
|
razer hat Folgendes geschrieben: |
Hm voll blöd ausgedrückt.
Nehmen wir an,ich hab einen Vektor mit 1.01 0.98 0.99 1.02 1.03 3.00 3.02 3.02 3.01 3.03 3.00 2.99 2.98 .... usw,dann rundest du und siehst,dass 3 am öftesten vorkommt.Und dann will ich den größten Wert,der aus dem ursprünglichen Vektor zu diesem Ergebniss geführt hat,also in diesem Fall ehm 3.03 |
Geht dein Weg auch,wenn ich Werte weit über 3 (mein Beispiel) drin habe,die aber eben kA nur zweimal vorkommen oder so,wie zB irgendwelche Ausreißer oder so?Der Wert,der bei dir vorkommt,ist somit von den häufigsten der größte,oder?
Fix rundet einfach immer ab oder?
Gruß
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 06.03.2008, 14:37
Titel:
|
|
Fix rundet immer in Richtung 0
das heißt 3.9=3 und -3.9=-3
kleiner Nachtrag( hab da noch kleinen Fehler):
wurde für 2 Zahlen mit Wert 3.303 nicht funktionieren
Doubles kann man leider nicht miteinander vergleichen,
also ist 3.303 nicht gleich 3.303
vielleicht entschließt du dich bist zu 3 Stelle zu vergleichen
also fix(Zahl*1000), dann könnte man solche Ähnlichkeiten finden
|
|
|
Bijick |
Ehrenmitglied
|
|
Beiträge: 914
|
|
|
|
Anmeldedatum: 18.06.07
|
|
|
|
Wohnort: Nürnberg
|
|
|
|
Version: R2006b, R2008b
|
|
|
|
|
|
Verfasst am: 06.03.2008, 14:44
Titel:
|
|
Hallo,
ich misch mich mal mit einem ganz neuen Vorschlag ein, der für die Häufigkeitsauszählung den Befehl hist verwendet:
Was soll eigentlich herauskommen, wenn es im gerundeten Vektor mehrere Werte gibt, die "am häufigsten" vorkommen? Bei dem Zufallsvektor von denny, den ich auch genommen hab, kommt das regelmäßig vor. Dann ist maxHaeufWert ein Vektor. In meinem Code wird auch von diesen der größte ausgewählt.
Herzliche Grüße
Bijick
_________________
>> why
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 06.03.2008, 14:56
Titel:
|
|
Danke, Bijick!
Cool, hab nicht gewusst, dass mit Funktion hist auch nur Häufigkeiten berechnen kann. Ich hab gedacht dass Sie nur für Zeichnen der Häufigkeitsverteilung da ist.
|
|
|
razer |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 06.03.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.03.2008, 14:58
Titel:
|
|
Bijick hat Folgendes geschrieben: |
Hallo,
ich misch mich mal mit einem ganz neuen Vorschlag ein, der für die Häufigkeitsauszählung den Befehl hist verwendet:
Was soll eigentlich herauskommen, wenn es im gerundeten Vektor mehrere Werte gibt, die "am häufigsten" vorkommen? Bei dem Zufallsvektor von denny, den ich auch genommen hab, kommt das regelmäßig vor. Dann ist maxHaeufWert ein Vektor. In meinem Code wird auch von diesen der größte ausgewählt.
Herzliche Grüße
Bijick |
Hallo!
Habs selbst mit histc versucht,kannte aber den Befehl Unique noch nicht, was mir das ganze erschwert hat.
Ja,wenn im Vektor mehrere Werte gleich oft vorkommen,dann soll das Programm das größten davon auswählen.
Wenn also zB 44 und 98 jweils 5 mal vorkommen,dann ist 98 der gesuchte Wert.
Grüße und vielen Dank,
r.
edit:Finde das Programm super,vielen Dank euch beiden!
|
|
|
|
|
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 - 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.
|
|