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

Mean eine großen Vektors in 360er Schritten

 

Frank the Tank

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2013, 11:17     Titel: Mean eine großen Vektors in 360er Schritten
  Antworten mit Zitat      
Hi,

Bin Anfänger und habe ein wahrscheinlich simples Problem:

Habe einen Vektor mit über 5000 Werten. Ich möchte nun dass alle 360 Werte der "mean" gebildet wird. Wie kann man angeben dass Matlab in 360er Schritten vorgeht?

mfg
Frank Smile


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.06.2013, 11:23     Titel:
  Antworten mit Zitat      
Hallo,

möchtest du einen gleitenden Mittelwert über je 360 Werte haben, oder einen Mittelwert für jeden 360er-Block?

Empfehlung für letzteres: mit reshape die Matrix so umstellen, dass die 360 zu mittelnden Werte je in einer Spalte stehen, dann mean darauf anwenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Frank the Tank

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2013, 11:48     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für deine Antwort!

Gibt es auch noch eine andere Möglichkeit?

Dachte es wäre besser, das Beispiel für einen Vektor darzustellen.
Allerdings ist es in Wirklichkeit eine Matrix ca. 5000x1000.
Dann wird es mit reshape etwas schwierig oder?
Nehmen wir mal an es ist eine 3600x1000 Matrix.
Bei einem Mittelwert immer nach 360 Werten hätte ich am Ende gerne 100 means über 1000 Spalten.
Als Output also eine 100x1000 Matrix.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.06.2013, 13:09     Titel:
  Antworten mit Zitat      
Hallo,

10 means, oder?
Die reshape - Möglichkeit müsste auch hier gehen. Du musst lediglich am Ende mit reshape zurücktransformieren.

Eine Alternative:
Mit mat2cell kannst du die Matrizen in einzelne Bereiche aufteilen.
Mit cellfun(@mean, ...) kannst du von jedem Bereich den Mittelwert nehmen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.06.2013, 13:27     Titel:
  Antworten mit Zitat      
Hallo Frank the Tank,
Code:
x = rand(3600, 1000);
x = reshape(x, 260, 100, 1000);
meanx = reshape(mean(x, 1), 100, 1000);

Gruß, Jan
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.