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: Je dois calculer une moyenne mobile sur une série de données, dans une boucle for. Je dois obtenir la moyenne mobile sur N9 jours. Le tableau Im calculant est 4 séries de 365 valeurs (M), qui sont elles-mêmes des valeurs moyennes d'un autre ensemble de données. Je veux tracer les valeurs moyennes de mes données avec la moyenne mobile dans une parcelle. J'ai googlé un peu sur les moyennes mobiles et la commande conv et trouvé quelque chose que j'ai essayé de mettre en œuvre dans mon code. Ainsi, fondamentalement, je calculer ma moyenne et le tracer avec une moyenne mobile (fausse). J'ai choisi la valeur wts directement sur le site mathworks, donc c'est incorrect. (Source: mathworks. nlhelpeconmoving-average-trend-estimation. html) Mon problème, c'est que je ne comprends pas ce que c'est wts est. Quelqu'un peut-il expliquer si elle a quelque chose à voir avec le poids des valeurs: qui est invalide dans ce cas. Toutes les valeurs sont pondérées de la même façon. Et si je fais ce tout à fait mal, puis-je obtenir de l'aide avec elle Mes plus sincères remerciements. L'utilisation de conv est un excellent moyen de mettre en œuvre une moyenne mobile. Dans le code que vous utilisez, wts est combien vous peser chaque valeur (comme vous l'avez deviné). La somme de ce vecteur doit toujours être égale à un. Si vous souhaitez pondérer chaque valeur uniformément et faire un filtre N de taille N alors vous voudriez faire L'utilisation de l'argument valide en conv entraînera à avoir moins de valeurs dans Ms que vous avez dans M. Utilisez même si vous ne vous inquiétez pas les effets de Rembourrage zéro. Si vous avez la boîte à outils de traitement du signal, vous pouvez utiliser cconv si vous voulez essayer une moyenne mobile circulaire. Quelque chose comme vous devrait lire la documentation conv et cconv pour plus d'informations si vous n'avez pas déjà. Vous pouvez utiliser le filtre pour trouver une moyenne courante sans utiliser une boucle for. Cet exemple trouve la moyenne courante d'un vecteur à 16 éléments, en utilisant une taille de fenêtre de 5. 2) lisse dans le cadre de la Boîte à outils d'ajustement de courbe (qui est disponible dans la plupart des cas) yy lisse (y) lisse les données dans le vecteur colonne Y en utilisant un filtre de moyenne mobile. Les résultats sont renvoyés dans le vecteur colonne yy. La portée par défaut de la moyenne mobile est 5.Documentation dsp. MovingAverage Objet système Description Le dsp. MovingAverage System objectx2122 calcule la moyenne mobile du signal d'entrée le long de chaque canal, indépendamment dans le temps. L'objet utilise la méthode de fenêtre glissante ou la méthode de pondération exponentielle pour calculer la moyenne mobile. Dans la méthode de fenêtre coulissante, une fenêtre de longueur spécifiée est déplacée sur les données, échantillon par échantillon et la moyenne est calculée sur les données dans la fenêtre. Dans la méthode de pondération exponentielle, l'objet multiplie les échantillons de données par un ensemble de facteurs de pondération. La moyenne est calculée en additionnant les données pondérées. Pour plus de détails sur ces méthodes, voir Algorithmes. L'objet accepte les entrées multicanaux, c'est-à-dire les entrées de taille m-by-n, où m 8805 1 et n gt 1. L'objet accepte également des entrées de taille variable. Une fois l'objet verrouillé, vous pouvez modifier la taille de chaque canal d'entrée. Cependant, le nombre de canaux ne peut pas changer. Cet objet prend en charge la génération de code C et C. Pour calculer la moyenne mobile de l'entrée: Créez un objet dsp. MovingAverage et définissez les propriétés de l'objet. Appelez étape pour calculer la moyenne mobile. Remarque: Sinon, au lieu d'utiliser la méthode step pour exécuter l'opération définie par l'objet System, vous pouvez appeler l'objet avec des arguments, comme s'il s'agissait d'une fonction. Par exemple, y step (obj, x) et y obj (x) effectuent des opérations équivalentes. Construction movAvg dsp. MovingAverage renvoie un objet de moyenne mobile, movAvg. En utilisant les propriétés par défaut. MovAvg dsp. MovingAverage (Len) définit la propriété WindowLength sur Len. MovAvg dsp. MovingAverage (Name, Value) spécifie des propriétés supplémentaires en utilisant les paires Name, Value. Les propriétés non spécifiées ont des valeurs par défaut. Sélectionnez votre pays
No comments:
Post a Comment