Wednesday 22 February 2017

Déplacement Moyenne Écart Type Matlab

En utilisant MATLAB, comment puis-je trouver la moyenne mobile de 3 jours d'une colonne spécifique d'une matrice et d'ajouter la moyenne mobile à cette matrice, j'essaie de calculer la moyenne mobile de 3 jours de bas en haut de la matrice. J'ai fourni mon code: Étant donné la matrice a et le masque suivants: J'ai essayé d'implémenter la commande conv mais je reçois une erreur. Voici la commande conv que j'ai essayé d'utiliser sur la 2ème colonne de la matrice a: La sortie que je désire est donnée dans la matrice suivante: Si vous avez des suggestions, je l'apprécierais beaucoup. Merci Pour la colonne 2 de la matrice a, je calcule la moyenne mobile de 3 jours comme suit et en plaçant le résultat dans la colonne 4 de la matrice a (I a renommé la matrice a comme 39desiredOutput39 pour l'illustration). La moyenne de 3 jours de 17, 14, 11 est 14 la moyenne de 3 jours de 14, 11, 8 est 11 la moyenne de 3 jours de 11, 8, 5 est 8 et la moyenne de 3 jours de 8, 5, 2 est 5. Il n'y a aucune valeur dans les 2 lignes inférieures pour la 4ème colonne parce que le calcul pour la moyenne mobile de 3 jours commence au bas. La sortie 39valid39 ne sera pas montrée jusqu'à au moins 17, 14 et 11. J'espère que cela fait sens ndash Aaron Jun 12 13 at 1:28 En général, il serait utile si vous voulez montrer l'erreur. Dans ce cas vous faites deux choses fausses: D'abord votre convolution doit être divisée par trois (ou la longueur de la moyenne mobile) Deuxièmement, notez la taille de c. Vous ne pouvez pas simplement mettre c dans a. La façon typique d'obtenir une moyenne mobile serait d'utiliser les mêmes: mais cela ne ressemble pas à ce que vous voulez. Au lieu de cela vous êtes forcé d'utiliser un couple de lignes: J'ai une série de données x, y et j'essaie de trouver la moyenne mobile. Les nombres de données x sont des nombres entiers de 1 à 100 tandis que les données y sont des nombres de 0,01 à 1 et ils ont également un écart type ydev (que nous obtenons parce que l'expérience est répétée plusieurs fois). J'essaie de trouver la moyenne mobile en utilisant les 20 voisins les plus proches (à l'aide de Matlab): Le moyen ci-dessus dérive la moyenne mobile, mais je ne sais pas comment utiliser l'écart-type que j'ai pour chaque point de données y parce que certains points de données ont beaucoup Des écarts-types plus élevés que d'autres, ce qui signifie qu'ils ne sont pas aussi fiables que d'autres (donc ils pèsent probablement moins). Comment puis-je inclure l'écart-type pour chaque point de données dans le calcul ci-dessus demandé 5 juillet à 15:07 Moyenne mobile ou en mouvement médian. En ce qui concerne la question «Comment puis-je inclure l'écart-type pour chaque point de données dans le calcul ci-dessus, cela dépend de ce que vous voulez faire. Vous devriez d'abord décider que (ce qui n'est pas une question de programmation). Une suggestion: can39t vous utilisez l'ensemble des données pour chaque x (au lieu de juste la moyenne et l'écart type) et calculer meanmedian de cette ndash Luis Mendo Jul 5 15 at 15:12 LuisMendo Je voulais faire la moyenne mobile (j'ai édité le Code pour le refléter). L'ensemble de données est une expérience en séries chronologiques et il a été répété plusieurs fois (c'est-à-dire comment j'ai des écarts types pour chaque point). Je veux utiliser l'écart type pour chaque point dans mon calcul de la moyenne mobile parce que je veux que les points avec un écart type plus petit pèsent plus que les points avec un écart type plus grand. Ndash AL B Jul 5 15 at 16:50 Dites que vous avez un vecteur a. Alors une autre manière d'écrire signifie (a) comme une moyenne pondérée est awts. Où wts ones (1, numel (a)) numel (a). Dans votre cas, vous avez un y (ind1 (i): ind2 (i)). Il semble que ce que vous voulez utiliser est une moyenne mobile pondérée, où vos poids wts ne sont plus identiques, mais sont choisis en utilisant l'écart type des valeurs correspondantes. En supposant que le vecteur sd contient les écarts-types, voici une façon de le faire: Ici, les valeurs avec des écarts types plus petits contribueront à des poids plus importants. Une autre idée est de calculer la moyenne mobile simple de y et de vos écarts-types sd. Et ensuite les tracer côte à côte. Cela a l'avantage d'être plus statistiquement interprétable que de choisir des poids en fonction des écarts-types.24 Octobre 2013 Calculez l'écart-type: cas de la fenêtre coulissante Je dois calculer l'écart-type pour la fenêtre coulissante: y at-il un moyen de le faire Comment Peut optimiser la solution simple Comment puis-je vectoriser le calcul de l'écart-type pour la fenêtre coulissante Dans le dernier post une méthode de calcul de l'écart-type de mémoire-friendly a été montré. Continuons la discussion de l'écart-type avec un autre cas d'utilisation. Examinez d'abord la définition: Nous avons un signal d'entrée x ayant N éléments. Ensuite, nous résumons la différence au carré de chaque élément de la valeur moyenne x. Et la diviser par N - 1. Dans l'étape finale, la racine carrée de ce résultat est calculée. Maintenant, supposons que nous voulons calculer l'écart type en utilisant une fenêtre coulissante ayant une taille de fenêtre w. Nous mettons la fenêtre sur le premier élément et calculons la valeur des éléments dans la fenêtre. Puis il est décalé vers l'élément suivant, le calcul est effectué de nouveau, et ainsi de suite jusqu'à ce que nous atteignions la fin du signal. Un exemple de code effectuant ce processus: Bien que la méthode fonctionne, c'est un peu déroutant. Nous estimons que beaucoup de calculs ont dû être refaits à chaque étape, par exemple en calculant la moyenne et les différences par rapport à la moyenne. Si nous avions un signal de milliers d'échantillons, cette approche serait extrêmement lente, même si nous utilisons la fonction std intégrée, qui est la commande MATLAB pour calculer l'écart-type d'un tableau d'entrée. Essayez un autre point de vue. Dans le dernier post, il a été prouvé. Que: Il semble beaucoup mieux, la peine d'analyser. Ce que nous devons utiliser cette formule est seulement les échantillons résumés et leurs carrés résumés dans chaque fenêtre. Dans un article précédent, il a été montré que la somme d'une fenêtre coulissante peut se faire facilement par convolution: Dans l'exemple ci-dessus, chaque élément de la sortie est le résumé en fenêtres de l'entrée. Ainsi, dans cette nouvelle approche, nous devons faire ce qui suit: Calculer le carré de chaque élément Faire le résumé de fenêtres pour l'original et les valeurs au carré en utilisant la convolution Appliquer la formule Prendre la racine carrée de la sortie Le code source est: Chose importante est le calcul du nombre d'éléments à chaque position de la fenêtre: cela est nécessaire sur les côtés, où la fenêtre glisse. Cette approche de calcul de l'écart-type a plusieurs avantages: Code vectorisé au lieu d'utiliser pour boucles Fast, puisque nous utilisons la convolution Nécessite moins de calcul que la solution simple Peut être étendu à 2 dimensions facilement Nouveau commentaire


No comments:

Post a Comment