![]() |
Max und Mean Value Bestimmung
hi,dank für Support here.wie bestimme ich die Max von MeanValue zu einzelnen zahlen in einem Array?z.B hab MeanValue 7 und Array [0..9] mit zahlen 0..9 und möchte max absolute Diff zwischen 7 und einzelnen Zahlen.hab so gemacht aber
MaxDiff:=abs(Mean-aData[i]) aData ist mein Array und i Index. thx [edit=MrSpock]Titel geändert. Bitte demnächst aussagekräftige Titel vergeben. Mfg, MrSpock[/edit] |
Re: dumme Frage
Also zuerst mal würde ich empfehlen, daß du deinen Beitrag editierst und dem Topic einen aussagekräftigen Namen gibst. Dumme Fragen gibts hier genug, das zu wissen hilft bei der Suche aber nicht weiter ;)
Dann zu deiner Frage: Wenn ich dich richtig verstanden habe, möchtest du die maximale Abweichung deines Arrays zu seinem Mittelwert berechnen. Stimmt das? Ist der Mittelwert schon vorgegeben, oder muß er erst noch berechnet werden? Da das Berechnen ja kein Problem sein sollte, geh ich mal davon aus, daß du ihn schon hast.
Delphi-Quellcode:
Dafür müßtest du die Unit Math einbinden. Evtl macht "abs()" das gleiche wie "max(MeanValue,aData[i]) - min(MeanValue,aData[i])", die Funktion kannte ich aber nicht und hab auch gerade kein Delphi zur Hand, um nachzuschauen. In dem Fall, kannst dus ja grade ersetzen. ;)
MaxDiff := 0;
for i := low(aData) to high(aData) do begin if (max(MeanValue,aData[i]) - min(MeanValue,aData[i])) > Maxdiff then MaxDiff := max(MeanValue,aData[i]) - min(MeanValue,aData[i]) end; |
Re: dumme Frage
Nicht ganz leddl,
max gibt ja den größeren von zwei Werten zurück. abs hingegen gibt einen absoluten Wert zurück. Also den übergebenen Wert ohne Vorzeichen. |
Re: dumme Frage
Hi,
Delphi-Quellcode:
For i:=Low(aData) To High(aDate) Do
Begin zw:=abs(Mean-aData[i]); if MaxDiff<=zw then MaxDiff:=zw; end; so müsste es gehn. mfg BrunoT |
Re: Max und Mean Value Bestimmung
:gruebel: Ich hab doch nie behauptet, daß max() und abs() das gleiche tun, sondern max() - min(). Und das sollte ja dann passen.
Ginge also so:
Delphi-Quellcode:
Wegen rotem Kasten: ;)
function GetMaxDiff(aData : Array of Integer;MeanValue : Integer) : Integer;
Var i : Integer; begin Result := 0; for i := low(aData) to high(aData) do if abs(MeanValue,aData[i]) > Maxdiff then Result := abs(MeanValue,aData[i]); end; @BrunoT: Jo, in etwa hab ich das ja auch schon geschrieben ;) |
Re: Max und Mean Value Bestimmung
hi
genau,ich möchte die MaxAbweichung von jeder Zahl zum Mittelwert betimmen.mittelwert hab ich schon MeanVal := CalcMeanValue(aData,uiArraySize,uiStartIdx,uiEndId x); dann als Ausgabe soll nun MaxDiffLo und MaxDiffHi ,MaxDiffLo im Bereich 0..9 und Hi 10..19. also ich brauch ne einfache Formel zum Berechnen ohne drin zu spezifizieren Lo oder Hi,da ich beide in anderen Ort genau sage,wie Ausgabe sein soll. danke Leute.ihr seid Prima |
Re: Max und Mean Value Bestimmung
hi
danke Bruno ich habe deine GetMaxDiff Fkt probiert und es funktioniert. danke nochmals |
Re: Max und Mean Value Bestimmung
:roll: Nur um meinen Kopf zu retten, möchte ich kurz meinen Code verbessern. Hatte nämlich bei ner Änderung ne Kleinigkeit übersehen :oops: man sollte nicht wirklich eine undeklarierte Variable verwenden, wenn man eigentlich Result benutzen wollte :wall:
Delphi-Quellcode:
So, jetzt passts ;)
function GetMaxDiff(aData : Array of Integer;MeanValue : Integer) : Integer;
Var i : Integer; begin Result := 0; for i := low(aData) to high(aData) do if abs(MeanValue-aData[i]) > Result then Result := abs(MeanValue-aData[i]); end; //Edit: Korrigiert :oops: |
Re: Max und Mean Value Bestimmung
hi Leddl
frage zu:: if abs(MeanValue,aData[i]) > Result then Result := abs(MeanValue,aData[i]); ist es abs(meanValue- aData[i]) oder abs(meanValue,aData[i]) da bei mir Delphi nicht reagiert wegen dem Komma zeichen. thx DJAYS |
Re: Max und Mean Value Bestimmung
Korrigiert ;)
Das war ein Artefekt von der min/max-Version ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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