Skip to main content

Qt Moving Average


Jeg vet at dette er mulig med boost som per. Men jeg virkelig vil unngå å bruke boost jeg har googled og ikke funnet noen egnede eller lesbare eksempler. Basalt vil jeg spore det bevegelige gjennomsnittet av en pågående strøm av en strøm av flytende punktnumre bruker de nyeste 1000 tallene som en dataprøve. Hva er den enkleste måten å oppnå dette på. Jeg eksperimenterte med å bruke et sirkulært array, eksponentielt glidende gjennomsnitt og et enklere glidende gjennomsnitt og fant ut at resultatene fra den sirkulære gruppen som passer meg, trenger best. asked 12. juni 12 på 4 38. Hvis dine behov er enkle, kan du bare prøve å bruke et eksponentielt bevegelige gjennomsnitt. Du gjør bare en akkumulatorvariabel, og når koden ser på hver prøve, oppdaterer koden akkumulatoren med ny verdi Du velger en konstant alfa som er mellom 0 og 1, og beregner dette. Du trenger bare å finne en verdi av alfa hvor effekten av en gitt prøve bare varer i ca 1000 prøver. Hmm, jeg er ikke sikker på at dette er egnet for deg, nå t hatten jeg har satt den her Problemet er at 1000 er et ganske langt vindu for et eksponentielt glidende gjennomsnitt. Jeg er ikke sikker på at det er en alfa som vil spre gjennomsnittet over de siste 1000 tallene, uten understrøm i flytpunktsberegningen. Men hvis du ønsket et mindre gjennomsnitt, som 30 tall eller så, dette er en veldig enkel og rask måte å gjøre det på. Ansatte Jun 12 12 på 4 44. 1 på ditt innlegg Det eksponentielle glidende gjennomsnittet kan tillate at alfaet er variabelt Så dette tillater det brukes til å beregne tidsbasert gjennomsnitt, f. eks. bytes per sekund Hvis tiden siden den siste akkumulatoroppdateringen er mer enn 1 sekund, lar du alpha være 1 0 Ellers kan du la alfa være usecs siden sist oppdatert 1000000 jxh Jun 12 12 ved 6 21.Basisk vil jeg spore det bevegelige gjennomsnittet av en pågående strøm av en strøm av flytende punktnumre ved å bruke de siste 1000 tallene som en dataprøve. Merk at under oppdateringer summen som elementene som lagt til erstattet, slik at kostbare ON-traverser ikke kan beregnes summen som trengs for th e gjennomsnittlig - på forespørsel. Totalt er det laget en annen parameter fra T for å støtte f. eks. ved å bruke lang lang når det er totalt 1000 lange s, en int for char s eller en dobbel til total float s. Dette er litt feil i at numsamples kunne gå forbi INTMAX - hvis du bryr deg om at du kan bruke en usignert lang lang eller bruke et ekstra bool data medlem til å registrere når beholderen er først fylt mens sykkel numempler rundt arrayet best deretter omdøpt noe uskyldig som pos. answered 12 juni 12 på 5 19.En antar at tomromoperatøren T-prøven faktisk er ugyldig operatør T-prøve, uansett 8. juni kl. 14 på 11 52. oPless ahhh godt oppdaget egentlig, jeg mente det skulle være tomt operatør T-prøve, men selvfølgelig kunne du bruke hvilken som helst notasjon du likte Vil rette, takk Tony D Jun 8 14 på 14 27.Im prøver å returnere en QVector fra en funksjon som skal beregne det bevegelige gjennomsnittet Mitt spørsmål er hvordan å gjøre funksjonen mer effektiv Matematikken er bra, jeg lurer på om jeg gjør noe galt ved å returnere QVector Her er t han har koden jeg har så langt. Jeg bruker standardkonstruktøren for å holde QVectoren fra å angi en standardverdi Jeg prøvde det samme med resize som er mye tregere Har du noen forslag til hvordan dette kan optimaliseres. Siden du hevder at avkastningen tar lengst kan problemet ikke være i selve funksjonen, men på stedet der den returnerte verdien er brukt. Akkurat her er koden din bortkastet tid. Ved tildeling av QVector hver gang gjennomsnittet påberopes. Formentlig kalles det gjentatte ganger, så det er ikke nødvendig å få den tildelt en ny vektor hver gang. I QVector-operatør Det har litt mer overhead enn vanlig array tilgang fordi det er denne pesky erDetached call gjort på hver samtale til operator. In QVector append Ikke bare kalles det er løsrevet, men også det sjekker og endrer lengden også. Merk at det er absolutt ingenting galt med å returnere din verdi. Det er en trivial operasjon og tar nesten ingen tid. Du gjør det OK når det gjelder å returnere - og bare returnere. Men du Don ts hvordan kan du bruke den returnerte verdien, så jeg kan ikke fortelle deg om du kanskje gjør noe galt der. For å forhindre gjentatte tildelinger og operatørkostnader, kan du bruke en klasse som holder en vektor klar for gjenbruk, og bruk en peker - til-vektor s-data i stedet for å bruke vektoren direkte. For å få det til å gå noe raskere, ville det trolig kreve bruk av SIMD-intrinsikk. En Bayesian-analyse av bevegelige gjennomsnittsprosesser med tidsvarierende parametere. En ny bayesisk metode foreslås for estimering og prognoser med gaussiske bevegelige gjennomsnittlige MA prosesser med tidsvarierende parametre Fokuset er plassert på MA modeller av rekkefølge en, men et generelt resultat er gitt for en MA prosess med en vilkårlig kjent rekkefølge En multiplikativ modell for utviklingen av firkantene av parametrene er introdusert etter Bayesian konjugasjon gjennom beta og trunkerte gamma distribusjoner og en rabattfaktor To nye distribusjoner er foreslått å gi tidligere og bakre fordelinger av parametrene til modellen og prosessfordelingen av prosessen i én trinn. Flere kjente distribusjonsresultater blir utvidet ved å erstatte gammafordelingen med den avkortede gammafordelingen. Den foreslåtte metodikken er illustrert med to eksempler som består av simulerte data og av aluminiumspotpriser på London-metallutvekslingen. Bayesian models. Forecasting. Time series. Moving average. Time-varierende parametere. Lokalt stasjonære prosesser. London metal exchange. Corresponding author Tel 44 114 2223741 faks 44 114 2223759.Copyright 2007 Elsevier BV Alle rettigheter reservert. Cookies brukes av dette nettstedet For mer informasjon, besøk cookies siden. Copyright 2017 Elsevier BV eller dets lisensgivere eller bidragsytere ScienceDirect er et registrert varemerke for Elsevier B V.

Comments