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

Bestimmte Anzahl von Zeilen in einer Spalte mitteln.

 

Caro
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 26.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2011, 17:33     Titel: Bestimmte Anzahl von Zeilen in einer Spalte mitteln.
  Antworten mit Zitat      
Hallo,

ich kenne mich mit Matlab leider noch nicht so gut aus, und muss nun Messdaten damit auswerten.

Die Messdaten sind in einer 300 000 x 20 Matrix gespeichert. Die Zeilen stehen für die Zeit und die Spalten für gemessene Proben. Nun muss ich immer über mehrere Zeiten mitteln. D.h z.B, dass ich über jeweils 10 Zeilen mitteln soll, und diese als neuen Eintrag in einer anderen Matrix (demnach 30 000 x 20) speichern muss.

Mit einer Schleife würde das denke ich gehen, würde jedoch beim Durchlaufen lange dauern.

Ich wäre wirklich dankbar, falls jemand eine andere Idee hat, oder einen Befehl kennt, mit dem man immer auf eine bestimmte Anzahl von Zeilen in einer Spalte zugreift, dann auf die darauffolgenden Zeilen,....

Ich freue mich über jede Antwort!

Viele Grüße,
Caro
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.452
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.01.2011, 17:38     Titel:
  Antworten mit Zitat      
Hallo,

man muss dafür sorgen, dass die Elemente, über die man mitteln möchte, in einer Spalte stehen:
Code:
means = reshape(mean(reshape(M, 10, [])), 30000, 20);

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Caro
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 26.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2011, 18:01     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für deine Antwort. Das klappt auch sehr gut, solange ich über 10 Zeitschritte mitteln möchte.

Hast Du noch eine Idee, für eine Anzahl von Zeitschritten, durch die die Gasamtzahl der Matrixeinträge nicht teilbar ist? Da bringt Matlab bei mir einen Fehler.

Sonst genügt es auch Einträge nur bis zum höchsten Vielfachen, der Zeitschrittanzahl einzulesen.

Also nochmals vielen Dank!
Caro
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.452
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.01.2011, 18:38     Titel:
  Antworten mit Zitat      
Hallo,

dieser Fehler ist dann ja irgendwo nachvollziehbar.
Wenn die Werteanzahl nicht durch die Anzahl der zu mittelnden Werte teilbar ist, wirds gefährlich. Man muss ja sicherstellen, dass über die richtigen 10 (oder n) Werte gemittelt wird, und dass die Resultate auch wieder richtig zusammengesetzt werden.
Um das Mitteln über n Werte überhaupt mal hinzubekommen:
Code:
means = mean(reshape(M(1:end-rem(end, n), n, []))

Das ignoriert dann die überzähligen Werte.

Ein zusätzlicher Vorschlag: die fehlenden Werte durch NaN ergänzen, um wieder auf das benötigte Format zu kommen. Dann enthalten die Mittelwerte halt auch NaN an den Stellen, die nicht berechnet werden konnten... und mit nanmean nicht mal das.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Caro
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 26.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.01.2011, 15:16     Titel:
  Antworten mit Zitat      
Hallo Harald,

Nochmals vielen Dank!! Das klappt super!

Viele Grüße,
Caro
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.