Wie zu finden bewegen durchschnitt in matlab




Wie zu finden bewegen durchschnitt in matlabMit MATLAB, wie finde ich die 3-Tage gleitenden Durchschnitt einer bestimmten Spalte einer Matrix und hangen Sie den gleitenden Durchschnitt zu dieser Matrix Ich versuche, die 3-Tage gleitenden Durchschnitt von unten nach oben der Matrix zu berechnen. Ich habe meinen Code: Angesichts der folgenden Matrix a und Maske: Ich habe versucht Umsetzung der conv Befehl, aber ich erhalte einen Fehler. Hier ist der Befehl conv, den ich versucht habe, auf der 2. Spalte der Matrix a zu verwenden: Die Ausgabe, die ich wunsche, wird in der folgenden Matrix gegeben: Wenn Sie irgendwelche Vorschlage haben, wurde ich es sehr schatzen. Vielen Dank fur die Spalte 2 der Matrix a, ich bin die Berechnung der 3-Tage gleitenden Durchschnitt wie folgt und platziert das Ergebnis in Spalte 4 der Matrix a (Ich umbenannt Matrix a als 39desiredOutput39 nur fur Abbildung). Der 3-tagige Durchschnitt von 17, 14, 11 ist 14 der dreitagige Durchschnitt von 14, 11, 8 ist 11 der 3-Tage-Durchschnitt von 11, 8, 5 ist 8 und der 3-Tage-Durchschnitt von 8, 5, 2 ist 5. Es gibt keinen Wert in den unteren 2 Zeilen fur die 4. Spalte, da die Berechnung fur den dreitagigen gleitenden Durchschnitt an der Unterseite beginnt. Die 39valid39 Ausgabe wird nicht angezeigt, bis mindestens 17, 14 und 11. Hoffentlich macht dies Sinn ndash Aaron 12 12 13 am 1:28 Im Allgemeinen wurde es helfen, wenn Sie den Fehler anzeigen wurde. In diesem Fall tun Sie zwei Dinge falsch: Zuerst muss Ihre Faltung durch drei (oder die Lange der gleitenden Durchschnitt) geteilt werden Zweitens beachten Sie die Gro?e von c. Sie konnen nicht einfach passen c in eine. Der typische Weg, um einen gleitenden Durchschnitt ware, um die gleiche: aber das sieht nicht wie Sie wollen. Stattdessen sind Sie gezwungen, ein paar Zeilen zu verwenden: Ich muss einen gleitenden Durchschnitt uber eine Datenreihe innerhalb einer for-Schleife berechnen. Ich muss den gleitenden Durchschnitt uber N9 Tage erhalten. Das Array Im-Berechnen ist 4 Reihe von 365 Werten (M), die selbst Mittelwerte eines anderen Satzes von Daten sind. Ich mochte die Mittelwerte meiner Daten mit dem gleitenden Durchschnitt in einem Diagramm darstellen. Ich googeln ein wenig uber gleitende Durchschnitte und den conv Befehl und fand etwas, das ich versuchte, in meinem Code umzusetzen: So grundsatzlich berechne ich meinen Durchschnitt und plot ihn mit einem (falschen) gleitenden Durchschnitt. Ich wahlte die wts Wert direkt an der Mathworks-Website, so dass ist falsch. (Quelle: mathworks. nlhelpeconmoving-average-trend-estimation. html) Mein Problem aber ist, dass ich nicht verstehe, was dieses wts ist. Konnte jemand erklaren, wenn es etwas mit den Gewichten der Werte zu tun hat: das ist in diesem Fall ungultig. Alle Werte werden gleich gewichtet. Und wenn ich das vollig falsch mache, konnte ich etwas Hilfe dabei haben Mein aufrichtigster Dank. Die Verwendung von conv ist eine hervorragende Moglichkeit, einen gleitenden Durchschnitt zu implementieren. In dem Code, den Sie verwenden, ist wts, wie viel Sie jeden Wert wiegen (wie Sie ahnen). Die Summe dieses Vektors sollte immer gleich Eins sein. Wenn Sie jeden Wert gleichma?ig gewichten und eine Gro?e N bewegten Filter dann tun mochten, wurden Sie tun mochten Mit dem gultigen Argument in conv wird mit weniger Werten in Ms, als Sie in M ??haben. Verwenden Sie diese, wenn Sie dont die Auswirkungen von Nullpolsterung. Wenn Sie die Signalverarbeitung Toolbox haben, konnen Sie cconv verwenden, wenn Sie einen kreisformigen gleitenden Durchschnitt ausprobieren mochten. Etwas wie Sie sollten lesen Sie die conv und cconv Dokumentation fur weitere Informationen, wenn Sie bereits havent. Created am Mittwoch, den 08. Oktober 2008 um 20:04 Uhr Zuletzt aktualisiert am Donnerstag, den 14. Marz 2013 um 01:29 Uhr Geschrieben von Batuhan Osmanoglu Zugriffe: 41184 Moving Average In Matlab Oft finde ich mich in der Notwendigkeit der Mittelung der Daten, die ich haben, um das Rauschen ein wenig zu reduzieren. Ich schrieb paar Funktionen, um genau das tun, was ich will, aber Matlabs in Filter-Funktion gebaut funktioniert auch ziemlich gut. Hier schreibe ich uber 1D und 2D Mittelung von Daten. 1D-Filter kann mit der Filterfunktion realisiert werden. Die Filterfunktion erfordert mindestens drei Eingangsparameter: den Zahlerkoeffizienten fur den Filter (b), den Nennerkoeffizienten fur den Filter (a) und naturlich die Daten (X). Ein laufender Mittelwertfilter kann einfach definiert werden: Fur 2D-Daten konnen wir die Funktion Matlabs filter2 verwenden. Fur weitere Informationen, wie der Filter funktioniert, konnen Sie eingeben: Hier ist eine schnelle und schmutzige Implementierung eines 16 von 16 gleitenden durchschnittlichen Filters. Zuerst mussen wir den Filter definieren. Da alles, was wir wollen, gleicher Beitrag aller Nachbarn ist, konnen wir einfach die Funktion verwenden. Wir teilen alles mit 256 (1616), da wir nicht den allgemeinen Pegel (Amplitude) des Signals andern wollen. Zur Anwendung des Filters konnen wir einfach sagen, die folgenden Unten sind die Ergebnisse fur die Phase eines SAR-Interferogramms. In diesem Fall ist der Bereich in der Y-Achse und der Azimut auf der X-Achse abgebildet. Der Filter war 4 Pixel breit im Bereich und 16 Pixel breit im Azimut.