Sunday 14 May 2017

Moving Average Standard Abweichung Matlab


Mit MATLAB, wie finde ich die 3-Tage gleitenden Durchschnitt einer bestimmten Spalte einer Matrix und fügen Sie den gleitenden Durchschnitt zu dieser Matrix versuche ich die 3-Tage gleitenden Durchschnitt von unten nach oben in 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 ein, ich bin die Berechnung der 3-Tage gleitenden Durchschnitt wie folgt und das Ergebnis in Spalte 4 der Matrix eine Platzierung (I umbenannt Matrix ein als 39desiredOutput39 nur zur Illustration). Die 3-Tage-Durchschnitt von 17, 14, 11 ist 14 die 3-Tage-Durchschnitt von 14, 11, 8 11 die 3-Tage-Durchschnitt von 11, 8, 5 8 und die 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: Ich habe eine Reihe von Daten x, y und ich versuche, den gleitenden Durchschnitt zu finden. Die x-Daten-Zahlen sind ganze Zahlen von 1 bis 100, während die y-Daten Zahlen von 0,01 bis 1 sind und sie haben auch eine Standardabweichung ydev (die wir ableiten, weil das Experiment mehrmals wiederholt wird). Ich versuche, den gleitenden Durchschnitt unter Verwendung der 20 nächsten Nachbarn zu finden (unter Verwendung von Matlab): Der obige Weg leitet den gleitenden Durchschnitt ab, aber ich weiß nicht, wie man die Standardabweichung verwendet, die ich für jeden y Datenpunkt habe, weil einige Datenpunkte viel haben Größere Standardabweichungen als andere, dh sie sind nicht so zuverlässig wie andere (so dass sie wahrscheinlich weniger wiegen). Wie kann ich die Standardabweichung für jeden Datenpunkt in der oben genannten Berechnung gefragt Jul 5 15 am 15:07 Moving durchschnittlichen oder bewegenden Median. Bezüglich der Frage "Wie kann ich die Standardabweichung für jeden Datenpunkt in den obigen Berechnungquot, es hängt davon ab, was Sie tun möchten. Sie sollten zuerst entscheiden, (die keine Programmierfrage ist). Ein Vorschlag: can39t Sie den gesamten Satz von Daten für jeden x (anstelle von nur die durchschnittliche und Standardabweichung) und berechnen meanmedian von diesem ndash LuisMendo Ich wollte gleitenden Durchschnitt machen (i bearbeitet die Code zu reflektieren). Der Datensatz ist ein Zeitreihen-Experiment und wurde mehrmals wiederholt (das ist, wie ich Standardabweichungen für jeden Punkt habe). Ich möchte die Standardabweichung für jeden Punkt in meiner Berechnung der gleitenden Durchschnitt verwenden, weil ich will, dass die Punkte mit kleiner Standardabweichung mehr als die Punkte mit größerer Standardabweichung wiegen. Ndash AL B Jul 5 15 am 16:50 Sagen Sie haben einen Vektor a. Dann ist eine andere Schreibweise (a) als gewichteter Durchschnitt awts. Wobei wts (1, numel (a)) numel (a). In Ihrem Fall haben Sie ein y (ind1 (i): ind2 (i)). Es klingt wie das, was Sie verwenden möchten, ist ein gewichteter gleitender Durchschnitt, wo Ihre Gewichte wts nicht mehr identisch sind, sondern mit der Standardabweichung der entsprechenden Werte ausgewählt werden. Unter der Annahme, daß der Vektor sd die Standardabweichungen einnimmt, kann man hier einen Weg finden: Hier werden die Werte mit kleineren Standardabweichungen zu größeren Gewichten beitragen. Eine alternative Idee ist, den einfachen gleitenden Durchschnitt von y und Ihren Standardabweichungen sd zu berechnen. Und zeichnen sie dann nebeneinander auf. Das hat den Vorteil, statistischer interpretierbar zu sein als Gewichte in Abhängigkeit von den Standardabweichungen.24 Oktober, 2013 Standardabweichung berechnen: Fall von Schiebefenster Ich muss die Standardabweichung für Schiebefenster berechnen: Gibt es eine Möglichkeit, dies zu tun? Kann die einfache Lösung optimieren Wie kann ich die Berechnung der Standardabweichung für Schiebefenster vektorisieren Im letzten Beitrag wurde eine speicherfreundliche Berechnungsmethode der Standardabweichung gezeigt. Lassen Sie uns die Diskussion der Standardabweichung mit einem anderen Anwendungsfall fortsetzen. Betrachten wir zunächst einmal die Definition: Wir haben ein x-Eingangssignal mit N-Elementen. Dann fassen wir die Quadratdifferenz jedes Elements aus dem Mittelwert x zusammen. Und teilen sie durch N - 1. Im letzten Schritt wird die Quadratwurzel dieses Ergebnisses berechnet. Nehmen Sie nun an, dass wir die Standardabweichung mit dem Schiebefenster mit der Fenstergröße w berechnen wollen. Wir setzen das Fenster auf das erste Element und berechnen den Wert für die Elemente im Fenster. Dann wird es zum nächsten Element verschoben, die Berechnung wird wieder durchgeführt, und so weiter, bis wir das Ende des Signals erreichen. Ein Codebeispiel, das diesen Prozess ausführt: Obwohl die Methode funktioniert, ist es ein wenig verwirrend. Wir fühlen, dass viele Berechnungen in jedem Schritt wiederholt werden mussten, zum Beispiel die Berechnung der Mittelwerte und die Unterschiede aus dem Mittelwert. Wenn wir ein Signal von Tausenden von Proben hatten, wäre dieser Ansatz extrem langsam, auch wenn wir die eingebaute STD-Funktion verwenden, die der MATLAB-Befehl zum Berechnen der Standardabweichung für ein Eingangsarray ist. Versuchen Sie einen anderen Standpunkt. In der letzten Post war es bewiesen. Dass: Es scheint viel besser, wert zu analysieren. Was wir brauchen, um diese Formel verwenden, ist nur die zusammengefassten Proben und ihre zusammengefassten Quadrate in jedem Fenster. In einem früheren Beitrag wurde gezeigt, dass die Summierung für ein Schiebefenster einfach durch Faltung erfolgen kann: Im obigen Beispiel ist jedes Element der Ausgabe die gefensterte Zusammenfassung der Eingabe. In diesem neuen Ansatz müssen wir folgendes tun: Berechnen Sie das Quadrat jedes Elements Fassen Sie die zusammengefasste Zusammenfassung für die ursprünglichen und die quadrierten Werte mit Hilfe der Faltung auf Übernehmen Sie die Formel Nehmen Sie die Quadratwurzel der Ausgabe Der Quellcode ist: Eine weitere Wichtig ist die Berechnung der Elementanzahl an jeder Position des Fensters: diese wird an den Seiten benötigt, wo das Fenster abrutscht. Dieser Ansatz, die Standardabweichung zu berechnen, hat mehrere Vorteile: Vektorisierten Code anstelle der Verwendung von Schleifen Schnell, da wir die Faltung verwenden Benötigt weniger Berechnungen als die einfache Lösung Kann auf 2 Dimensionen leicht erweitert werden Neuer Kommentar

No comments:

Post a Comment