WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Mittelwert von Messreihen

 

Arkrhyst
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2019, 12:42     Titel: Mittelwert von Messreihen
  Antworten mit Zitat      
Ich habe für die Bachelorarbeit von meinem Tutor ein Matlabskript bekommen, welches die gespeicherten Messdaten ausliest und plottet. Nun sagt er, dass es wohl sinnvoll wäre für die Präsentation der Ergebnisse in der Arbeit, wenn man diese Plots von zufälligen Fehlern bereinigt, in dem man einfach einen Plot macht, der zu jedem Zeitpunkt aus dem Mittelwert der 6 vorangegangenen Messungen bestehen soll. Ich habe keinen Ansatz wie man da vor geht. Also man könnte die Befehle einfach kopieren und 6 mal auslesen, aber die Variablen jeweils anders benennen. nur wie gehe ich dann vor? Normalerweise würde ja ein mean Befehl mir von allen Messwerte den Mittelwert geben. aber ich bräuchte ja theoretisch von 6 Vektoren den Mittelwert von deren ersten Eintrag, dann den zweiten etc. Hat jemand Ideen oder Vorschläge?
_________________

Hi. Ich bin absoluter Matlab-Neuling. Bitte seid nicht zu streng mit mir. Ich habe echt keine Ahnung.
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 27.08.2019, 14:46     Titel:
  Antworten mit Zitat      
Hört sich nach dem Befehl "movmean" an, oder?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Arkrhyst
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2019, 15:41     Titel:
  Antworten mit Zitat      
Also ich weiß jetzt nicht, wie movmean da helfen soll. Also ich habe es jetzt so gemacht:
[code]n=length(m1);
mAve=zero(n,1);
for i=1:n
mAve(i,1)=(m1(i,1)+m2(i,1)+m3(i,1)+m4(i,1)+m5(i,1)+m6(i,1))/6;[/code]
nun funktioniert aber mein Auseleseskript nicht und ich muss mal schauen, woran das liegen könnte, bevor ich dazu eine Frage stellen kann. Ich habe einfach eine for schleife um das Ausleseskript meines Tutors gemacht mit einer if schleife, um die Ergebnisse getrennt zu speichern. Aber beim zweiten Durchlauf produziert es mir einen Fehler :/
_________________

Hi. Ich bin absoluter Matlab-Neuling. Bitte seid nicht zu streng mit mir. Ich habe echt keine Ahnung.
Private Nachricht senden Benutzer-Profile anzeigen
 
Arkrhyst
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2019, 16:10     Titel:
  Antworten mit Zitat      
So jetzt funktioniert das Auslesen wieder. Jedoch ergeben sich weitere Fragen. Für mein Skript bräuchte ich 6 Vektoren, für die ich wiederum 6 Messreihen auslesen müsste. Jedoch hätten die ausgelesenen Vektoren vom Skript er die gleichen Namen, würden sich also überschreiben. Ich dachte, dass man daher vielleicht in die For-Schleife etwas reinpackt wie if i==1, dann speicher den Vektor als m1. If i==2, dann speicher Vektor in m2 etc. So sollte ich am Ende alle Vektoren ohne überschreiben haben. Jedoch habe ich am Ende nur ein m6 und den letzten ausgelesenen Vektor m (was vom Inhalt her das gleiche ist wie m6). Eine Idee, wie ich an meine 6 Vektoren komme?
_________________

Hi. Ich bin absoluter Matlab-Neuling. Bitte seid nicht zu streng mit mir. Ich habe echt keine Ahnung.
Private Nachricht senden Benutzer-Profile anzeigen
 
ueg
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 15.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2019, 07:51     Titel:
  Antworten mit Zitat      
Ich habe gerade keine Zeit ausführlich zu antworten, aber falls du es noch nicht gemacht hast, schreib deine Vektoren doch in eine Matrix.
Da kannst du dann auf deine benötigten Daten zugreifen.

Ich kenne deine Daten nicht aber wenn du deine Daten erfasst hast aber wenn das einfach 2er Vektoren sind mit x und y würde ich sowas in der Richtung machen.

Code:

n=7; %sonst hat man nicht mindestens 6 Messwerte davor und kann nicht mitteln
for n:AnzahlSpätereDatensätze+6
MatrixMitMittelwerten(1,n-6) = MatrixMesswerte(1,n); #x-Wert falls der nicht gemittelt werden soll.
MatrixMitMittelwerten(2,n-6)= mean(MatrixMesswerte(2,n-6:n));
end

 


Ob MATLAB die + und - Berechnungen direkt so frisst, weiß ich nicht. Ansonsten müsste man die Befechnungen eben außerhalb der Matrix-Abfragen berechnen und dann eine Variable einsetzen wo z.b. n-6 steht.

Dein Ergebnis kannst du dann auch in eine Matrix schreiben und für jeden Vektor eine neue Spalte benutzen.
Dann kannst du die Vektoren am Ende auslesen:

Code:
Vektor1=MatrixMitMittelwerten(:,1);
Vektor2=MatrixMitMittelwerten(:,2)
...


Falls ich dein Problem falsch verstanden habe und das nicht hilft, tuts mir leid. Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
sijuherm
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 01.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2019, 08:21     Titel:
  Antworten mit Zitat      
Also das erscheint mir doch alles sehr kompliziert, Andreas Goser hat bereits eine vorhandene Matlabfunktion genannt, die genau das macht, was dein Tutor vorgeschlagen hat.
Code:
y = movemean(x,6);


Falls das nicht das ist, was du willst, wäre es gut, wenn du uns mitteilst, warum das nicht der Fall ist und was du genau brauchst.
Anmerkung: Der Code mittelt nicht die vorangegangenen 6 Messwerte, sonder den aktuellen Messwert und die 5 vorangegangenen. Das sollte aber keine entscheidende Rolle spielen.
Private Nachricht senden Benutzer-Profile anzeigen
 
ueg
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 15.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2019, 08:36     Titel:
  Antworten mit Zitat      
Vielleicht wäre ein beispielhafter Datensatz nicht verkehrt.. das macht’s anschaulicher für uns
Private Nachricht senden Benutzer-Profile anzeigen
 
Arkrhyst
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2019, 09:46     Titel:
  Antworten mit Zitat      
@ueg
das klingt sehr interessant. Freunde von mir haben mich schon gefragt, warum ich keine Matrix verwende. Ich habe jetzt schon eine Matrix aufgestellt und wollte eigentlich mit Vektor Matrix Multiplikation arbeiten, aber da kamen bisher nur Fehler. Ich versuchs mal mit deiner Idee.

@sijuherm
Vielleicht versteh ich Movmean falsch aber es sah in der Matlab Hilfe so aus, als der einfach nur aus dem Vektor (1 2 3) (1 1,5 2) macht. Ich will ja eher aus den Vektoren (1 2 3) und (3 2 1) den Vektor (2 2 2) bekommen.
_________________

Hi. Ich bin absoluter Matlab-Neuling. Bitte seid nicht zu streng mit mir. Ich habe echt keine Ahnung.
Private Nachricht senden Benutzer-Profile anzeigen
 
sijuherm
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 01.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2019, 09:51     Titel:
  Antworten mit Zitat      
Ich verstehe nicht ganz, wo die verschiedenen Vektoren herkommen und was sie bedeuten. Wie von ueg vorgeschlagen, wäre es hilfreich, mal Beispieldaten bereit zu stellen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Arkrhyst
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 27.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.08.2019, 11:47     Titel:
  Antworten mit Zitat      
@ueg
Laut der Matlab Hilfe wirft mean(Matrix) bereits einen Vektor aus, dessen Elemente die Mittelwerte der Spalten der Matrix sind, ich habe jetzt also einfach meine Matrix transponiert, mean(Matrix) und schließlich diesen Vektor transponiert.
_________________

Hi. Ich bin absoluter Matlab-Neuling. Bitte seid nicht zu streng mit mir. Ich habe echt keine Ahnung.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.