Wednesday, 5 July 2017

Média Móvel Em 24 Horas


Tenho dados por hora e quero encontrar a média diária máxima de 8 horas. Basicamente, para cada hora do dia, eu quero fazer uma média de 8 horas. Então, tome a média das 0:00 às 8:00, da 1:00 às 9:00, etc.), então acabo com 24 períodos médios de 8 horas (com alguns correndo no dia seguinte, é claro). Então eu preciso levar o máximo dessas 24 médias de 8 horas para obter o máximo diário. Uma nota sobre o formato do arquivo: O arquivo O3.mat possui uma variável chamada O3Sorted que é uma matriz de células. Ele contém todos os dados, classificados já. Mas os dados contém informações de mais de um site (ou seja, há informações de diferentes lugares). As informações para cada site são ordenadas em conjunto, mas no código, quando eu tento encontrar as médias de 8 horas, eu preciso retirar um site de cada vez para que as médias não cheguem ao início dos dados para outro local . Esta é uma amostra do que as coisas parecem. Eu incluí um dia para um site e meio dia de outro site. O arquivo atual possui um mês de dados para cada um desses sites e outros sites também. Como você pode ver, às vezes, os dados estão faltando. Coluna 1 - Nome do site Coluna 2 - Data Coluna 3 - Hora Coluna 4 - Dados Aqui está o que eu tenho até agora: Depois de obter as médias de 8 horas, como posso pedir ao MATLAB que encontre o máximo para cada 24 médias, basicamente, obtenha O máximo dos promedios horários. Além disso, o método que estou tentando fazer agora é um pouco arriscado porque não estou usando o datenum e, portanto, se falta dados por dia, não sei. Mas não tenho ideia de como considerar isso ao escrever o código. Solicitado 6 de dezembro 13 às 19:36 Você pode publicar apenas amostras dos dados relevantes e cortar seu código em conformidade. É difícil decifrar o que sua matriz de células 23808 x 24 realmente representa. Ndash kkuilla 6 de dezembro 13 às 20:01 Eu coloco o código inteiro porque algumas pessoas gostam de executá-lo. Coloco estrelas em torno da seção relevante. Basicamente, as medidas de dados reais estão na coluna 17 e o nome do site que veio é na coluna 6. A parte que é importante é a área de loop loop, especialmente a partir de quotDo um loop para calcular o mean. quot correndo. Hope that39s Útil ndash shizishan 6 de dezembro 13 às 20: 13 Estou impressionado com esta pergunta não parece ter sido perguntado antes, mas, se assim for, minhas buscas bastante exaustivas não descobriram isso. Eu tenho um buffer de anel simples de temperaturas em uma coluna da qual eu quero calcular o valor médio. A tabela sql parece assim (os nomes das colunas são mostrados na primeira linha). Toda vez que eu obtenho uma nova temperatura, eu quero mudar a coluna Temp acima de uma linha antes de escrever o valor mais novo no slot 10 para que eu possa obter o valor médio dos dados da coluna. Deve haver uma maneira simples de fazer isso, que ainda não consegui descobrir. - (Obrigado pela ajuda. Os temps são gravados a cada 10 minutos a partir de 00: 00-24: 00 horas e, em seguida, circulando de volta às 00:00 para começar um novo dia, mas às 00:00 marcaram o dia inteiro de 39 dias É movida uma coluna para a direita (coluna do histórico) e, em seguida, a coluna (esquerda) 39new39 desmarcada na prontidão para as novas temperaturas do dia. Os tempos do novo dia são então traçados para comparação. Portanto, uma longa história curta. Em vez de perseguir números ao redor, pensei É mais fácil apenas manter as últimas 10 leituras em uma matriz cíclica estável. Isso altera seu quotanother method39 pensamentos ndash user2385946 17 de dezembro 14 às 18:01 Tentei o código sugerido, mas é um não-go. Eu simplifiquei o problema para essa discussão. Na verdade, existem muitas colunas na tabela completa. O método acima exclui a primeira linha (e, portanto, outros dados necessários). Não consigo excluir ou inserir linhas. Preciso apenas manipular os dados da coluna 39Temp39 SOMENTE. :-) ndash user2385946 17 de dezembro 14 Às 18: 25Relando Médias Wikipedia tem um artigo sobre: ​​In Estatisticas . Uma média móvel. Também chamado de média móvel e às vezes uma média de corrida. É usado para analisar um conjunto de pontos de dados criando uma série de médias de diferentes subconjuntos do conjunto de dados completo. Portanto, uma média móvel não é um único número, mas é um conjunto de números, cada um dos quais é a média do subconjunto correspondente de um conjunto maior de pontos de dados. Um exemplo simples é se você tivesse um conjunto de dados com 100 pontos de dados, o primeiro valor da média móvel pode ser a média aritmética (um tipo simples de média) dos pontos de dados 1 a 25. O próximo valor seria essa média simples de Pontos de dados 2 a 26, e assim por diante, até o valor final, que seria a mesma média simples dos pontos de dados 76 a 100. Ponderação média exponencial em termos de robocode. Uma média móvel é usada para manter a média de dados mais recentes em vez de todos os dados coletados. Isso é útil na maioria dos sistemas de segmentação estatística para atingir inimigos que mudam seu movimento com freqüência. Assim, para combinar a descrição geral acima, a média móvel de robocodes só considera o último conjunto de pontos a ser calculado como média. As médias de rolamento são recomendadas em médias diretas porque podem se adaptar a um inimigo adaptativo. Na prática, a forma mais comum de média circulante, é uma média móvel exponencial. As médias de Rolling foram trazidas para a comunidade Robocode por Paul Evans. O primeiro código de média publicado por Paul ainda é usado entre os melhores robôs no rumble.

No comments:

Post a Comment