Sunday 17 December 2017

Moving average array no Brasil


Seu interior é iterando toda a matriz, então é por isso que você sempre obtém a mesma média (uma para toda a matriz), você deve iterar de 0 para o número atual do externo para, em vez disso. Sua média móvel está sendo atualizada com base em j do seu interior, o que significa que anulará os valores anteriores em cada novo loop, isso deve estar dentro do exterior, em vez do interno, usando i como índice. Você está dividindo sumj para calcular médias, cada novo loop interno j você irá dividir por 0 a primeira soma. Eu acredito que você quisesse usar o j1 em vez disso, o índice não é o mesmo que o comprimento atual Dicas para solucionar problemas: Evite usar variáveis ​​para arrays de loop, você deve usar array. length em vez disso. Para uma questão de reproduzir o seu problema, você pode nos dar o problema isolado em vez do seu código atual. Ou seja: Imagine se o erro está em suas entradas, como podemos acreditar que você realmente as usou, respondidas em 4 de outubro 13 às 20:54 Você está fazendo o loop de todos os dados sempre. Você deve ter para (int j (igtaverageLengthi-averageLength2: 0) jlt iaverageLength2 ampamp jltnumDataPoints j) (ou algo semelhante) para a sua média mais interna. Além disso, moveAverageisumj deve ser modificado para lidar com o caso quando j é 0. Em particular, provavelmente deve ser movingAverageisumaverageLength e deve ser aplicado ao slot movingAveragei fora do loop de média. Respondeu 4 de outubro 13 às 20:42 Na próxima vez, leve os comentários sobre a cessão da questão antes de publicá-la. Mas, como você parece muito novo nisso, pense em como você passaria pelos dados e faria isso. Você deve tentar certificar-se de que cada loop está parando no ponto correto e lembre-se de que, se você parar quando não há mais números, (como quando você está fazendo o loop interno e você só pode obter mais 3 números em vez de 4) O programa precisa também parar. Certifique-se de que seu código esteja avaliando isso. Respondeu 4 de outubro às 20:56 Sem detalhes adicionais, você provavelmente precisa de uma média móvel não ponderada. Em qualquer ponto Ai na matriz de entrada A de comprimento N (com 0ltiltN), isso é simplesmente a média das entradas K anteriores da matriz, até e incluindo Ai. Se não houver valores de K, então, mude os valores (i1) de A0 para Ai. Inclusive. Um pouco de pensamento irá mostrar-lhe que você não precisa adicionar todos os valores K de cada vez. Basta manter a soma e, ao passar para o próximo ponto (esta é uma média móvel), subtrair o valor que está sendo substituído e adicionar o novo valor que irá substituí-lo. (Durante os primeiros pontos K-1, você simplesmente adicionará o novo valor à soma e aumentará seu contador em 1.) Em qualquer ponto desse processo, a média móvel é a soma atual dividida pelo valor atual da contagem. Respondeu 4 de outubro às 21:05 Em uma média móvel, você precisa ter algum tipo de tamanho de janela. O tamanho da sua janela é o comprimento médio, de modo que ele será algo assim: o loop for começa nos dados atuais e retorna pontos de dados de média e adiciona-os. Você só terá uma média móvel quando você tiver quando tiver pontos de dados suficientes e a média será a soma dividida pelo comprimento médio. Nota: Não testado apenas o código sudo, mas essa é a idéia. Respondeu Oct 4 13 às 21:05 Sua resposta 2017 Stack Exchange, Incnumpy. average Eixo ao longo do qual a média a. Se Nenhum. A média é feita sobre o conjunto achatado. Pesos. Arraylike, opcional Uma matriz de pesos associados aos valores em a. Cada valor em uma contribui para a média de acordo com o seu peso associado. A matriz de pesos pode ser 1-D (caso em que seu comprimento deve ser o tamanho de um ao longo do eixo dado) ou da mesma forma que a. Se os pesos não. Então todos os dados em a são assumidos como tendo um peso igual a um. devolvida . Bool, opcional O padrão é False. Se for verdade . A tupla (média de sumofweights) é retornada, caso contrário, apenas a média é retornada. Se os pesos não. Sumofweights é equivalente ao número de elementos sobre os quais a média é tomada. Média, sumofweights. Arraytype ou double Retorna a média ao longo do eixo especificado. Quando retornado é True. Devolver uma tupla com a média como o primeiro elemento e a soma dos pesos como o segundo elemento. O tipo de retorno é Float se um é de tipo inteiro, caso contrário, ele é do mesmo tipo que a. Sumofweights é do mesmo tipo que a média.

No comments:

Post a Comment