![]() |
Häufigkeitsanalyse von Zahlen
Hallo !
Ich suche jetzt schon ein Weilchen, kann aber nix wirklich passendes finden. Und zwar geht es mir um Häufigkeitsanalysen bei Zahlen. Hat einer von euch da zufällig eine Funktion für oder schon mal irgendwo was zu dem Thema gefunden? Genaugenommen geht es mir um folgendes ... Ich habe einen Pulk von Zahlen. Sagen wir mal 1, 2, 2, 3, 4, 4, 5, 5, 5 Ergebnis: 1= 1x, 2= 2x, 3 = 1x, 4 = 2x, 5 = 3x Ist sicher ein ganz einfaches Beispiel aber vom Prinzip her wohl klar. Gibt es sowas als Funktion und vor allem auch mit der Möglichkeit das mit Double Werten zu tun? Und was dann auch klasse wäre wenn man den Bereich beim Double einstellen könnte, also in welcher Schrittweite er die Analyse macht. Weil sonst kriegt man unter umständen viel zu viele Ergebnisse. Hope on any hints ... |
Re: Häufigkeitsanalyse von Zahlen
ganz grob
Delphi-Quellcode:
Andereliste sollte array of integer und sauber initialisiert sein.
for i:=1 to high(DeineListe) do
begin a=DeineListe(i); Andereliste(a)=Andereliste(a)+1; end; Showmessage('Die '5' trat genau '+inttostr(AndereListe(5))+' Mal auf'); Für das Intervall könnte man so was machen: länge=0,5; a=mod(c/länge) (sonst wie oben) bei c=2,1 wäre dass dann c/länge= 4+Rest -> a=4, in diesem Abschnitt hättest du dann Zahlen zwischen 2,0 und 2,499. das a kannst du dann wieder zum eintragen in deine neue Liste nehmen und wie oben auslesen. |
DP-Maintenance
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi Frage... |
Re: Häufigkeitsanalyse von Zahlen
Hallo
ich mache das so:
Delphi-Quellcode:
Gruss
procedure TFHaupt.BarZeichnen(ILList,RLList : TStringList;GIL,GRL : double;Farbe : TColor);
var i : integer; x1 : integer; y1 : integer; hilfreal1 : double; begin try ILBar.Clear; RLBar.Clear; for i :=0 to 20 do HistoIL1[i]:=0; for i:=0 to ILList.Count-1 do begin x1:= round(strtofloat(ILList.strings[i]) /(GIL/20)); HistoIL1[x1]:=HistoIL1[x1]+1; end; try if (((KeinRL = false)and(GRL < 85))or (Messgeraet = 9)) then begin for i :=0 to 20 do HistoRL1[i]:=0; for i:=0 to RLList.Count-1 do begin hilfreal1:=strtofloat(RLList.strings[i])-GRL; y1:= round(hilfreal1 / (abs((GRL+30)-GRL)/20)); HistoRL1[y1]:=HistoRL1[y1]+1; end; end; except end; try for i :=0 to 20 do begin ILBar.AddXY((i/(20/GIL)),HistoIL1[i],'',Farbe); if (((KeinRL = false)and(GRL < 85))or (Messgeraet = 9)) then RLBar.AddXY((i/(20/30)+GRL),HistoRL1[i],'',Farbe); end; except end; except end; end; Trojaner |
Re: Häufigkeitsanalyse von Zahlen
Und was ist 'HistoIl1, messgeraet' ilbar' usw?
Das ist eine Lösung die direkt auf dich (und eines deiner Formulare) abgestimmt ist. Mit dem Problem selbst hat es aber recht wenig zu tun. |
Re: Häufigkeitsanalyse von Zahlen
Moin !
Jo, das wollte ich auch schon nachfragen. Ich bastele gerade an einer eigenen Lösung. Mal sehgen wie weit ich komme. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz