|
Olli123 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.10.2009, 11:15
Titel: gleitender Mittelwert
|
|
Hallo zusammen,
ich möchten einen gleitenden Mittelwert in MatLab berechnen aber bekomme das nicht hin.
Also die generelle Form sollte sein, das zum Bsp. der Mittelwert der Werte 1 - 11 meines Datensatzes berechnet wird, dann 2-12, 3 - 13, usw.
kann mir da jemand helfen?
viele Grüße
Olli
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.10.2009, 11:36
Titel:
|
|
Hallo,
probiers mal mit filter oder (einfacher in der Handhabung) convn, z.B.
Grüße,
Harald
|
|
|
Thomas84 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.10.2009, 11:47
Titel:
|
|
hier mal meine idee:
nur bei den letzten werten muss man noch ein wenig basteln
|
|
|
Titus |
Forum-Meister
|
|
Beiträge: 871
|
|
|
|
Anmeldedatum: 19.07.07
|
|
|
|
Wohnort: Aachen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.10.2009, 12:32
Titel:
|
|
Hallo,
Da ist genau das beschrieben (moving average).
Titus
|
|
|
guest1 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.05.2010, 14:49
Titel: Bitte um (noch) mehr Hilfe
|
|
Hallo,
sorry, Leute, ich raffs nicht. Ich hab genau das selbe Problem, und auch den Eintrag in der Hilfe gelesen. Da ist ja auch ein Beispiel:
..Bei einer Fenstergröße von 5. Okay, das hab ich geschnallt. Ich verstehe nur nicht, was der zweite Parameter - hier: 1 - bewirkt.
Weiter unten ist ja der Algorithmus beschrieben. So will ich den Wert aber nicht berechnet haben. Was muss ich genau tun?
Oder verstehe ich viell. die Berechnung des "Gleitenden Mittelwerts" falsch.
Danke für die Hilfe
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 12.05.2010, 15:04
Titel:
|
|
Hallo,
Zitat: |
Ich verstehe nur nicht, was der zweite Parameter - hier: 1 - bewirkt. |
die 1 bewirkt, dass eben nur ein gleitender Mittelwert berechnet wird und die Terme - a(2)*y(n-1) - ... - a(na+1)*y(n-na) nicht berücksichtigt werden.
Zitat: |
So will ich den Wert aber nicht berechnet haben |
Meine Glaskugel ist gerade etwas trübe Wie willst du ihn denn berechnet haben?
Zitat: |
Was muss ich genau tun? |
Das hängt von deiner Antwort auf die obere Frage ab.
Tipp: an einem einfachen Beispiel ansehen, was man haben möchte und was filter ausspuckt. Dann kann man das entsprechend anpassen.
Grüße,
Harald
|
|
|
guest1 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.05.2010, 15:28
Titel:
|
|
Hallo,
das hab ich wohl nicht richtig erläutert . Ich habe das gleiche Problem wie der TS:
Ich habe einen Datensatz bestimmter Länge und möchte dass "z.Bsp. der Mittelwert der Werte 1 - 11 meines Datensatzes berechnet wird, dann 2-12, 3 - 13 usw. "
Das schlimme ist, dass ich das wirklich an nem einfachen Beispiel ausgetestet hab und nicht das herausgekommen ist, was ich will.
Danke
|
|
|
quant82 |
Forum-Fortgeschrittener
|
|
Beiträge: 97
|
|
|
|
Anmeldedatum: 30.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.05.2010, 16:31
Titel:
|
|
naja angenommen a ist der vector....
dann lässte eben eine forschleife drüberlaufen... geht bestimmt auch einfacher aber so sollte es gehen
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 12.05.2010, 17:57
Titel:
|
|
Hallo,
@ quant82: ja, eben dafür gibts den Befehl filter. Bei großen Vektoren ist der um Größenordnungen schneller als eine for-Schleife über mean. Mal davon abgesehen, dass man mit dem Code am Ende nur den letzten Mittelwert hätte...
@ guest1: sag doch bitte, WIESO nicht das herauskommt, was du willst. Oder WAS du willst. Falls dich nur die ersten paar Werte stören, schneid sie doch einfach ab?
Grüße,
Harald
|
|
|
guest1 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.05.2010, 15:03
Titel:
|
|
Hallo,
ich hab grad aktuell die Zahlen nicht hier, weil ich nicht auf der Arbeit bin. Ich meld mich am Montag nochmal. Wenn ich alles nachgerechnet hab...
|
|
|
guest1 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.05.2010, 09:05
Titel:
|
|
|
|
|
Guten Morgen,
ich starte einen erneuten Versuch .
Es ist wohl tatsächlich so, dass ich das mit dem gleitenden Mittelwert etwas falsch verstanden hab.
Ich möchte für einen Vektor Y, der die Länge k hat, den Mittelwert einzelner "Perioden" berechnen und den in einen Vektor M schreiben, wobei die "Periodenlänge" n variabel sein soll, M ist dann freilich kürzer als Y und hat die Länge x, was der Anzahl besagter "Perioden" entspricht:
Also M[1]= (Y[1]+ Y[2]+ ..+Y[n])/ n ; M[2]= (Y[n+1]+ Y[n+2]+...Y[n+n])/n; .... M[x] = (Y[n+ n+ ...+ 1]+ Y[n+ n+ ...+ 2]+ ..Y[k])/n;
Ich hoffe, das war verständlich.
Soweit ich nun verstanden hab, ist dies aber nicht das was man allgemein als "Gleitender Mittelwert" bezeichnet.
Bis jetzt löse ich das über eine Vorschleife:
Weil ja aber for-Schleifen bekanntlicherweise nicht ganz so praktisch und langsamer sind, suchte ich nach ner besseren Lösung. Und Mmn. ist es das gleiche, was im ersten Post steht.
Vielen Dank für die Hilfe
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 18.05.2010, 22:02
Titel:
|
|
Hallo,
ja, das ist verständlich, ist aber eben kein gleitender Mittelwert.
Wenn k durch n teilbar ist, geht folgendes:
Nach deinem Codebeispiel scheint das aber ja der Fall zu sein. Falls nicht, den Vektor vorher entsprechend kürzen.
Grüße,
Harald
|
|
|
guest1 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.05.2010, 13:39
Titel:
|
|
Hi,
super danke. Es funktioniert tatsächlich. Danke für die Hilfe. Dauert wirklich n bisschen, bis man hier alle Befehle kennt (und dann auch versteht)
..ach ja: und es muss natürlich for-Schleife heißen, nicht Vorschleife
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|