Tuesday 24 January 2017

Moving Average Fenster Matlab

Mit MATLAB, wie finde ich die 3-Tage gleitenden Durchschnitt einer bestimmten Spalte einer Matrix und hängen 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 wünsche, wird in der folgenden Matrix gegeben: Wenn Sie irgendwelche Vorschläge haben, würde ich es sehr schätzen. Vielen Dank für 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 für Abbildung). Der 3-tägige Durchschnitt von 17, 14, 11 ist 14 der dreitägige 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 für die 4. Spalte, da die Berechnung für den dreitägigen gleitenden Durchschnitt am unteren Ende beginnt. Die 39valid39 Ausgabe wird nicht angezeigt, bis mindestens 17, 14 und 11. Hoffentlich macht dies Sinn ndash Aaron 12 Juni 13 am 1:28 Im Allgemeinen würde es helfen, wenn Sie den Fehler anzeigen würde. In diesem Fall tun Sie zwei Dinge falsch: Zuerst muss Ihre Faltung durch drei (oder die Länge der gleitenden Durchschnitt) geteilt werden Zweitens beachten Sie die Größe von c. Sie können nicht einfach passen c in eine. Der typische Weg, um einen gleitenden Durchschnitt wäre, um die gleiche: aber das sieht nicht wie Sie wollen. Stattdessen sind Sie gezwungen, ein paar Zeilen zu verwenden: Der beste Weg, dies zu tun (meiner Meinung nach) wäre, einen Kreis-Puffer verwenden, um Ihre Bilder zu speichern. In einem Kreis - oder Ringpuffer wird das älteste Datenelement im Array durch das neueste Element, das in das Array eingeschoben wird, überschrieben. Die Grundlagen der Herstellung einer solchen Struktur werden in dem kurzen Mathworks-Video beschrieben, das einen einfachen kreisförmigen Puffer implementiert. Für jede Iteration der Hauptschleife, die ein einzelnes Bild behandelt, laden Sie einfach ein neues Bild in den Zirkular-Puffer und verwenden Sie dann MATLAB s gebaut in mittlerer Funktion, um den Durchschnitt effizient zu nehmen. Wenn Sie eine Fensterfunktion auf die Daten anwenden müssen, dann machen Sie eine temporäre Kopie der Frames multipliziert mit der Fensterfunktion und nehmen Sie den Durchschnitt der Kopie bei jeder Iteration der Schleife. Beantwortet Aug 6 12 at 10:11 berechnet eine Art von Moving Average für jede der 10 Bands über alle Ihre Bilder. Diese Zeile berechnet einen gleitenden Mittelwert des Mittelwertes über Ihre Bilder: Für beide wird eine Pufferstruktur hinzugefügt, die nur die letzten 10 Bilder enthält. Um es zu vereinfachen, können Sie auch einfach alles im Gedächtnis behalten. Hier ist ein Beispiel für Yout: Ändern Sie diese Zeile: (Eine Dimension hinzufügen) Und ändern Sie diese: Dann zur Anzeige verwenden Sie würden sth. Ähnlich für meanvalue antwortet


No comments:

Post a Comment