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

 

F KT
Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 13.09.11
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 22.09.2011, 14:14     Titel: Mittelwert
  Antworten mit Zitat      
Hallo,

aus einem Datenvektor (vec_w) will ich den mittelwert bestimmen. der vektor schaut so aus,dass es pro sekunde ein wert gibt. ich bräuchte aber den mittelwert über 10 minuten,d.h. 600sekunden.
ich brauch also einen code der aller 600 werte den mittelwert bildet und am ende diese werte in einen Vektor schreibt.

das ist mein bisheriger code:

Code:
n=length(vec_w);
for i=1:600:n
     Mittelwert_10m(i)=mean(vec_w(i:(i+599)))
end
 


dieser gibt mir leider nicht das gewünschte ergebnis. kann mir jemand helfen?
Private Nachricht senden Benutzer-Profile anzeigen


eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 22.09.2011, 14:19     Titel:
  Antworten mit Zitat      
Code:
mean(reshape(vec_w, 600, []));


Zuvor musst du aber schauen, dass dein Vektor ein Vielfaches von 600 ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
F KT
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 13.09.11
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 22.09.2011, 15:14     Titel:
  Antworten mit Zitat      
ok.. aberich habe dennoch das problem das die ausgabe nicht stimmt.. es werden zwischen den einzelnen mittelwerten immer wieder nullen ausgegebennur will ich einen vektor ohne diese nullen.
bsp.:

Code:

test=[1 2 3 4 5 6]
n=length(test)
for i=1:2:n
     mittel(i)=mean(test(i:(i+1)))
end
 


dann bekomme ich einen vektor [ 1,5 0 3,5 0 5,5]
ich will aber den vektor [1,5 3,5 5,5]
Private Nachricht senden Benutzer-Profile anzeigen
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 22.09.2011, 15:16     Titel:
  Antworten mit Zitat      
Dein i ist ja auch irgendwann 5, entsprechend wird der Mittelwert auch an die 5. Stelle geschrieben. Mit meiner Variante umgeht man das Problem und zusätzlich wäre dies auch deutlich effizienter.
Private Nachricht senden Benutzer-Profile anzeigen
 
F KT
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 13.09.11
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 22.09.2011, 15:32     Titel:
  Antworten mit Zitat      
das problem ist ich habe keinen vektor der ein vielfaches von 600 ist. der vektor hat 1175196 einträge. d.h ich hab 1958 mittelwerte der rest wird im moment abgeschnitten.
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 22.09.2011, 16:40     Titel:
  Antworten mit Zitat      
Hallo,
erstelle dir einfach einen passenden vector und fülle diesen mit NaN's auf.

Danach kannst du die Funktion
Code:
nutzen.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 22.09.2011, 16:43     Titel:
  Antworten mit Zitat      
Dann nimmst du halt nur 1174800 Werte

Code:
vec_neu = vec_w(1:1174800);


Aus den restlichen lässt sich ja kein Mittelwert bilden (zumindest nicht über 10 Minuten).
Private Nachricht senden Benutzer-Profile anzeigen
 
F KT
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 13.09.11
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 22.09.2011, 17:04     Titel:
  Antworten mit Zitat      
danke erstmal. aber der stimmt der code so wie ich ihn hab oder ist da ein Fehler weil mir kommt das Ergebnis komisch vor.
und wie bekomme ich das Ergebnis in einen Vektor?
Private Nachricht senden Benutzer-Profile anzeigen
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 22.09.2011, 17:50     Titel:
  Antworten mit Zitat      
Hast du dir meine Antwort überhaupt mal durchgelesen, bzw. nachvollzogen?!
Private Nachricht senden Benutzer-Profile anzeigen
 
F KT
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 13.09.11
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 22.09.2011, 19:26     Titel:
  Antworten mit Zitat      
hi eupho,

ja ich habe deine Antwort nachvollzogen und sogar ausprobiert;) aber leider noch nicht das gewünschte Ergebnis.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 22.09.2011, 19:39     Titel:
  Antworten mit Zitat      
Die Nullen tauchen im Ergebnisvektor auf, da die Laufvariable nur ungerade Indices in mittel anspricht. Bei den geraden Indices steht dann eben eine Null.
So sollte es gehen...

Code:

test=[1 2 3 4 5 6]
n=length(test)
m=1;
for i=1:2:n
      mittel(m)=mean(test(i:(i+1)))
      m=m+1;
end
 


Eine deutlich elegantere Lösung ohne Schleife hast du ja aber schon bekommen Wink
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 - 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.