Är det möjligt att implementera ett glidande medelvärde i C utan att det behövs ett fönster i prov. Jag har funnit att jag kan optimera lite genom att välja en fönsterstorlek som motsvarar två för att tillåta bitskiftning istället för att dela men behöver inte en buffert vara trevligt Finns det ett sätt att uttrycka ett nytt glidande medelresultat endast som en funktion av det gamla resultatet och det nya provet. Ange ett exempel rörande medelvärde, över ett fönster på 4 prover att vara. Lägg till nytt prov eA Glidande medelvärde kan implementeras rekursivt men för en exakt beräkning av glidande medelvärde måste du komma ihåg det äldsta inmatningsprovet i summan, dvs a i ditt exempel. För ett längd N glidande medelvärde beräknar du. Där yn är utsignalen och xn Är ingångssignalen Eq 1 kan skrivas rekursivt som. Så du behöver alltid komma ihåg provet x nN för att beräkna 2. Som påpekad av Conrad Turner kan du använda ett oändligt långt exponentialfönster istället, vilket gör att du kan beräkna utsignalen endast från det förflutna ut Put och nuvarande input. but detta är inte ett vanligt obetydligt glidande medelvärde, men ett exponentiellt vägat glidande medelvärde, där prov i det förflutna får en mindre vikt, men åtminstone teoretiskt glömmer du aldrig någonting, vikterna blir bara mindre och mindre för prover långt ifrån. Jag genomförde ett glidande medelvärde utan individuellt objektminne för ett GPS-spårningsprogram som jag skrev. Jag börjar med 1 prov och dela med 1 för att få nuvarande avg. I lägger sedan till ett exempel och delas med 2 till Nuvarande avg. This fortsätter tills jag når längden på genomsnittet. Varje gång efteråt lägger jag till i det nya provet, får medelvärdet och tar bort det genomsnittet från summan. Jag är inte matematiker men det verkade som ett bra sätt att Gör det jag trodde det skulle vända på en riktig matte kille, men det visar sig att det är ett av de accepterade sätten att göra det Och det fungerar bra Kom bara ihåg att ju högre längden desto långsammare följer det du vill följa Det kan inte ha betydelse för det mesta av tiden men när du följer satelliter, om du är långsam kan spåret vara långt ifrån den verkliga positionen och det kommer att se dåligt ut. Du kan ha ett mellanrum mellan mitten och de efterföljande punkterna jag valde en längd på 15 uppdaterad 6 gånger per minut för att Få tillräcklig utjämning och inte komma för långt från den faktiska lätta positionen med de släta spårpunkterna. Svarade 16 november 16 vid 23 03.initialisera totalt 0, räkna 0 varje gång vi ser ett nytt värde. Då en inmatningsscannf, lägger man till totalt nyttValue, Ett inkrementstal, en dela upp genomsnittlig totalräkning. Detta skulle vara ett glidande medelvärde för alla inmatningar. För att beräkna medelvärdet över endast de senaste 4 ingångarna, skulle det behöva 4 ingångsvariabler, kanske kopiering av varje ingång till en äldre ingångsvariabel och sedan beräkning av den nya rörelsen medelvärde som summa av de 4 ingångsvariablerna dividerat med 4 högerskift 2 skulle vara bra om alla ingångar var positiva för att göra den genomsnittliga beräkningen. svarade den 3 februari kl 04 06. Det kommer faktiskt att beräkna det totala genomsnittet och INTE det glidande medlet som räkna få S större påverkan av något nytt ingångsprov blir vanishingly liten Hilmar Feb 3 15 på 13 53. Ditt svar.2017 Stack Exchange, Inc. Jag vet att detta kan uppnås med boost som per. Men jag vill verkligen undvika att använda boost jag har Googled och inte hitta några lämpliga eller läsbara exempel. Basiskt vill jag spåra det rörliga genomsnittet av en pågående ström av en ström av flytande punktnummer med de senaste 1000 numren som ett dataprov. Vilket är det enklaste sättet att uppnå detta. Experimenterade med att använda ett cirkulärt array, exponentiellt glidande medelvärde och ett enklare glidande medelvärde och fann att resultaten från den cirkulära gruppen passade mina behov bäst. Skakad 12/12 12 på 4 38. Om dina behov är enkla kan du bara försöka använda en Exponentiell glidande medelvärde. Du gör helt enkelt en ackumulatorvariabel och när din kod tittar på varje prov uppdaterar koden ackumulatorn med det nya värdet. Du väljer en konstant alfa som är mellan 0 och 1 och beräknar detta. Du behöver bara att hitta ett värde av a Lpha där effekten av ett givet prov endast varar för cirka 1000 prov. Hmm, jag är inte säker på att det här är lämpligt för dig, nu när jag har lagt den här Problemet är att 1000 är ett ganska långt fönster för ett exponentiellt rörligt medelvärde Jag är inte säker på att det finns en alfa som skulle sprida genomsnittet över de senaste 1000 siffrorna, utan underflöde i flytpunktsberäkningen. Men om du ville ha ett mindre medelvärde, som 30 nummer eller så, är det här ett mycket enkelt och snabbt sätt att göra it. answered 12 juni 12 på 4 44. 1 på ditt inlägg Det exponentiella glidande medlet kan tillåta alfabet att vara variabelt Så här gör det att det kan användas för att beräkna tidsbasen medelvärden, t. ex. byte per sekund Om tiden sedan den senaste ackumulatorns uppdatering är mer än 1 sekund, låter du alpha vara 1 0 Annars kan du låta alpha vara usecs sedan senaste uppdateringen 1000000 jxh Jun 12 12 på 6 21. Basiskt vill jag spåra det rörliga genomsnittet av en pågående ström av en ström med flytande punktnummer med hjälp av de senaste 1000 numren som ett dataprov e att nedanstående uppdaterar summan som element som läggs till, för att undvika kostnadskrävande ON-traversal för att beräkna summan som behövs för genomsnittet-on demand. Total görs en annan parameter från T för att stödja t ex med en lång längd när det sammanlagda 1000 lång s , en int för char s eller en dubbel till total float s. Det här är lite fel i att numsamples kan gå förbi INTMAX - om du bryr dig att du kan använda en unsigned long long eller använda en extra bool data medlem att spela in när behållaren Fylls först medan cykeltalsprover runt arrayen bäst omdöpas till något oskyldigt som pos. answered 12/12 12 på 5 19.one antar att tomrumsoperatör T-provet är faktiskt tomt operatör T-prov oPlöst 8 juni 14 på 11 52. oPless ahhh väl spotted Egentligen menade jag att det skulle vara tomt operatör T-prov men självklart kan du använda vilken anteckning du vill, kommer att fixa, tack Tony D Jun 8 14 vid 14 27. Fyll överflödet i rutin WERTSIMULIEREN i fältet NEUERPREIS. Det handlar om ett problem som vi Står inför whil E postar GRN för en PO. When vi försöker posta GRN kommer vi att komma under error. Field överflöde i rutin WERTSIMULIEREN i fält NEUERPREIS. Message nr M7302.Contact din systemadministratör. Vi har kontrollerat och funnit att priset på PO linje objektet är 2,026,000,000 JPY och kvantitet 1.As per aktuellt växelkursbelopp kommer till 1,082,897,000 00 INR. Tidigt finns det inget lager av materialet och priskontrollen flyttar genomsnittspriset i materialmästaren. Därför kan systemet inte fånga detta belopp som Flyttande genomsnittspris på materialet på grund av dess höga värde. Vi har också kontrollerat SAP Note 139176 - M7302 Fältflöde i rutinen WERTSIMULIEREN. As per notering behöver vi ändra det glidande genomsnittspriset och Välj ett pris som är mindre än det för närvarande gällande priset. Vi Har försökt det men tyvärr det fungerar också2019t Nuvarande rörliga genomsnittspriset på materialet är u201C0u201D. Vi kan också välja en mindre prisenhet för det här materialet, men i vårt fall är prisenheten u201C1u201D som inte kan reduceras ytterligare. Vi kan begära att du hjälper oss i denna fråga. Tack Hälsningar.
No comments:
Post a Comment