Saturday 9 December 2017

Qt glidande medelvärde


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 hittat några lämpliga eller läsbara exempel. I grund och botten vill jag spåra det rörliga genomsnittet av en pågående ström av en ström av flytande punktnummer Använder de senaste 1000 siffrorna som ett dataprov. Vilket är det enklaste sättet att uppnå detta. Jag 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. asked jun 12 12 på 4 38. Om dina behov är enkla kan du bara försöka använda ett exponentiellt rörligt medelvärde. Du gör bara en ackumulatorvariabel, och när din kod tittar på varje prov uppdaterar koden ackumulatorn med nytt värde Du väljer en konstant alfa som är mellan 0 och 1 och beräknar detta. Du behöver bara hitta ett värde av alfa där effekten av ett visst prov endast varar för cirka 1000 prov. Hmm, jag är inte säker på att det här är Lämplig för dig, nu t Hat 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 talen utan underflöde i flytpunktsberäkningen. Men om du ville ha ett mindre medelvärde, som 30 nummer eller så, det här är ett mycket enkelt och snabbt sätt att göra det. svarade den 12 juni 12 på 4 44. 1 på ditt inlägg Det exponentiella glidande medlet kan låta alfabetet vara variabelt Så det tillåter det Används för att beräkna tidsbasen medelvärden, t. ex. bytes per sekund Om tiden sedan den senaste ackumulatoruppdateringen är mer än 1 sekund, låter du alpha vara 1 0 Annars kan du låta alfa vara usecs sedan senaste uppdateringen 1000000 jxh jun 12 12 vid 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 de senaste 1000 siffrorna som ett dataprov. Notera att nedanstående uppdaterar summan som element som tillsatt ersatt, så att kostsamma ON-traverser beräknas Summan - behövs för th e genomsnitt - on demand. Total görs en annan parameter från T för att stödja t. ex. genom att använda en lång lång när totalt 1000 lång s, en int för char s eller en dubbel till total float s. This är lite felaktig i att nummpples kunde 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 cykel nummor runt arrayen bäst sedan bytt namn på något oskadd som pos. answered 12 juni 12 på 5 19.an antar att tomrumsoperatör T-provet är faktiskt tomt operatör T-prov oPlats 8 juni 14 vid 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 helst vill fixa, Tack Tony D Jun 8 14 på 14 27. Jag försöker returnera en QVector från en funktion som ska beräkna det glidande medlet. Min fråga är hur man gör funktionen effektivare. Matematiken är bra, jag undrar mer om jag gör något fel I retur av QVector Här är t Han har koden jag har hittills. Jag använder standardkonstruktorn för att hålla QVectoren från att ställa in ett standardvärde. Jag försökte samma sak med storlek som är mycket långsammare. Har du några förslag på hur detta kan optimeras. Eftersom du hävdar att avkastningen tar längst kan problemet inte vara i funktionen själv, men på den plats där det returnerade värdet används. Alas, här är var din kod slösar tid. Vid allokering av QVector varje gång genomsnittet påkallas. Förmodligen kallas det upprepade gånger, så det är inte nödvändigt att få den tilldela en ny vektor varje gång. I QVector-operatören har den lite mer överliggande än vanlig array-åtkomst eftersom det är det här pesky isDetached-samtalet gjort på varje samtal till operatören. I QVector-append heter det inte bara det isDetached men också det kontrollerar och ändrar längden också. Notera att det är absolut ingenting fel med att återvända till ditt värde Det är trivial operation och tar nästan ingen tid Du gör det OK när det gäller att återvända - och bara återvända Men du Don ts Hur vi använder det returnerade värdet så jag kan inte berätta om du kanske gör något fel där. För att förhindra upprepade tilldelningar och operatörskostnader kan du använda en klass som håller en vektor redo för återanvändning och använda en pekare - Till-vektor s-data istället för att använda vektorn direkt. För att få det att gå någon snabbare skulle antagligen behöva använda SIMD-intrinsik. En Bayesian-analys av glidande medelprocesser med tidsvariationer. En ny bayesisk metod föreslås för uppskattning och Prognoser med gaussiska rörliga genomsnittliga MA-processer med tidsvarierande parametrar Fokus ligger på MA-modeller av order en, men ett generellt resultat ges för en MA-process av en godtycklig känd order En multiplikativ modell för utvecklingen av kvadraterna av parametrarna Introduceras efter Bayesian konjugacy genom beta och trunkated gamma distributioner och en diskonteringsfaktor Två nya fördelningar föreslås som ger tidigare och posterior fördelningar av parametrarna i modellen och processen för enstegs prognosfördelning av processen Flera välkända distributionsresultat förlängs genom att ersätta gammafördelningen med den trunkerade gammafördelningen. Den föreslagna metoden illustreras med två exempel som består av simulerade data och av aluminiumspotpriser på London-metallutbytet. Bayesian models. Forecasting. Time series. Moving average. Time-varierande parametrar. Lokalt stationära processer. London metal exchange. Corresponding author Tel 44 114 2223741 fax 44 114 2223759.Copyright 2007 Elsevier BV Alla rättigheter reserverade. Kök används av denna sida För mer information, besök cookies sidan. Copyright 2017 Elsevier BV eller dess licensgivare eller bidragsgivare ScienceDirect är ett registrerat varumärke som tillhör Elsevier B V.

No comments:

Post a Comment