|
|
Mittelwert über Zeit berechnen Werte aus Vektor rausschmei |
|
schlechter_iq |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.04.2016, 18:24
Titel: Mittelwert über Zeit berechnen Werte aus Vektor rausschmei
|
 |
|
 |
|
Hi,
ich bekomme zu jedem Zeitschritt einen neuen Wert für eine Variable.
Ich möchte, da ich sonst ein zu großes Rauschen hätte, für z.B. 5 Zeitschritte die Werte speichern und davon stets den Mittelwert ausgeben lassen.
Wenn der Vektor voll ist, soll der neue Wert am Ende eingespeichert werden und dafür der älteste rausgeworfen werden.
Wie bekomme ich sowas hin?
Das Ganze soll ungefähr so aussehen:
t=0: x=0
t=1: x=3
t=2: x=56
t=3: x=5
t=4: x=6
t=5: x=58
t=6: x=7
t=7: x=33
etc.
der dazugehörige Vektor sollte dann eben so aussehen:
t=0: V=[0 0 0 0 0] MW=0
t=1: V=[3 0 0 0 0] MW=3
t=1: V=[3 56 0 0 0] MW= 59/2
t=1: V=[3 56 5 0 0] MW=64/3
t=1: V=[3 56 5 6 0] MW=70/4
t=1: V=[3 56 5 6 58] MW=138/5
t=1: V=[56 5 6 58 7] MW=143/5
t=1: V=[5 6 58 7 33] MW= 109/5
etc.
Das Ganze sollte möglichst ohne Schleife geschehen.
Hier mein bisheriger Code:
Kann mir jemand helfen? Ich verstehe das nicht mit dem neu umsortieren der Vektorwerten.
lg
sarah
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 12.04.2016, 20:11
Titel:
|
 |
Hallo,
du möchtest also einen gleitenden Mittelwert.
Im neuesten Release R2016a gibt es die Funktion
movmean
.
Für ältere Versionen gibt es hier im Forum jede Menge Beiträge zu diesem Thema.
Grüße,
Harald
|
|
|
Ramesh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2016, 09:44
Titel:
|
 |
Hallo,
du darfst nicht vergessen, dass eine Funktion kein Gedächnis hat.
D.h. wenn du dieser einen Wert übergibst, hat sie diesen beim nächsten Funktionsaufruf nicht mehr.
So versteh ich jedenfalls deinen Code. Du übergibst einen Wert 'x', der in 'V' abgelegt werden soll. Beim nächsten Funktionsaufruf übergibst du ein weiteres 'x', webei das vorherige 'x' nicht mehr bekannt ist.
Zitat: |
Wenn der Vektor voll ist, soll der neue Wert am Ende eingespeichert werden und dafür der älteste rausgeworfen werden. |
Das geht zum Beispiel so:
%Neuer Wert immer am Ende einfügen und der erste wird rausgeworfen
|
|
|
protagonist |

Forum-Anfänger
|
 |
Beiträge: 24
|
 |
|
 |
Anmeldedatum: 22.01.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2016, 11:16
Titel:
|
 |
wie wird denn bisher dein V erstellt wenn nicht mit Schleife? Verstehe ich es richtig, dass dein Problem das Zurückspringen der Einsatzposition des neuen Wertes ist?
|
|
|
schlechter_iq |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.04.2016, 11:35
Titel:
|
 |
Hi mein bisheriger Code sieht so aus:
Anscheinend ist das noch nicht korrekt, kann mir jmd helfen?
Danke
|
|
|
schlechter_iq |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.04.2016, 11:39
Titel:
|
 |
Ach ja was ich noch vergessen habe:
Das ganze mache ich ja als Matlab FCN Block in Matlab Simulink.
Daher wird der neue vektor über einen Sample Hold Block für einen Zeitschritt gespeichert bzw. dem FCN Block wieder zugeführt.
Was mir die Funktion jetzt ausgibt ist ein zu hoher Wert, daher kann der Code so noch nicht stimmen.
Grüße
|
|
|
protagonist |

Forum-Anfänger
|
 |
Beiträge: 24
|
 |
|
 |
Anmeldedatum: 22.01.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 18.04.2016, 11:59
Titel:
|
 |
Fehler konnte ich jetzt auch keine erkennen. dein Vektor_neu ist richtig?
Ich würde dir jetzt einfach mal diesen Vorschlag machen, wenn du diese ganzen Variablen garnicht brauchst:
Hast du dir schon mal die einzelnen Vektoren alle ausgegeben und damit versucht nachzuvollziehen, wo denn der Fehler steckt?
|
|
|
|
|
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 - 2025
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.
|
|