|
scoobydo |
Forum-Anfänger
|
|
Beiträge: 23
|
|
|
|
Anmeldedatum: 23.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.05.2014, 14:54
Titel: Matrix umsortieren
|
|
Hallo,
ich habe folgendes Problem:
Und zwar habe ich eine Messreihe bestehend aus 24 Messungen mit 4 Geräten und je Gerät und Messung 2000 Samples.
Die Ergebnisse habe ich nun in einer Matrix im Format 48000x4, d.h. ich habe pro Spalte (Gerät) die einzelnen Samples für die Messungen untereinander stehen (2000*24 = 48000).
Die eigentliche Frage ist wie kann ich jetzt ohne eine for-Schleife den Mittelwert aus den 2000 Samples für jede Messungen und Kanal bilden?
Meine Idee war mit reshape die Messungen nebeneinander zu schreiben, so das eine 2000x96 Matrix entsteht.
Es würde mich wirklich freuem, wenn mir da jemand weiterhelfen kann!
|
|
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 10.05.2014, 14:58
Titel:
|
|
hallo. was klappt denn mit dem reshape nicht?
warum willst du keine for schleife benutzen?
grüße winkow
_________________
richtig Fragen
|
|
|
scoobydo |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 23
|
|
|
|
Anmeldedatum: 23.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.05.2014, 15:06
Titel:
|
|
Hallo Winkow,
danke für die schnelle Antwort.
Ich wollte keine for-Schleife nutzen, da ich mal gehört habe das MATLAB Matrixoperationen schneller berechnen kann und für for-Schleifen länger braucht.
Bei reshape weiss ich nicht wie man die Parameter wählen muss, damit die Messungen quasi Blockweise nebeneinander gesetzt werden.
Es würde ja dann eine 2000x96 (4*24=96) Matrix entstehen.
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 10.05.2014, 15:21
Titel:
|
|
so ca
for schleifen sind ein wenig langsamer. und wenn man große daten mengen auswerter und das auch sehr oft macht lohnt es sich in der tat eine schnelle lösung zu ersinnen. in den meisten fällen bekommt man aber die zeit die man verwendet hat den code schneller zu machen mit der laufgeschwindigkeit nicht mehr rein ^^. vor allem wenns nicht viele daten sind. darum ist immer die frage ob man so eine optimierte lösung brauch. außerdem sind forschleifen nicht so langsam. sihe dazu auch den thread der sich genau damit beschäftigt im FAQ.
grüße winkow
_________________
richtig Fragen
|
|
|
scoobydo |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 23
|
|
|
|
Anmeldedatum: 23.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.05.2014, 15:42
Titel:
|
|
Denke ich werde auch mit einer Schleife durchführen.
Den reshape Befehl hatte ich auch mal probiert, dass Problem ist nur das er die Werte dann verkehrt umsonst.
Ich möchte die 4 Messwerte pro Messung nebeneinander haben.
Durch den Befehl werden die aber so sortiert das beginnend bei der ersten Spalte immer 2000 Werte nebeneinander gesetzt werden.
D.h. jetzt habe stehen die Messwerte nach Geräten sortiert nebeneinander.
Ist schwer das zu erklären, hier ein vereinfachtes Bsp.
Hier sind es 2 Spalten -> 2 Geräte mit 3 Samples und insgesamt 3 Messung
1 2
1 2
1 2
3 4
3 4
3 4
5 6
5 6
5 6
Die sollen so umsortiert werden:
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.05.2014, 16:04
Titel:
|
|
Hallo,
ich würde es so machen:
Grüße,
Harald
|
|
|
scoobydo |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 23
|
|
|
|
Anmeldedatum: 23.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.05.2014, 16:54
Titel:
|
|
Hallo Harald,
kannst du evtl. noch ein wenig erläutern was du da machst?^^
Auf mein obiges Bsp. angewendet hatte ich es so versucht, was aber nicht klapt:
Also ich will 24 Blöcke (statt 3) die jeweils 4 Spalten (statt 2) und 2000 Zeilen (statt 3) haben.
Besten Gruß und schon einmal danke für deine Hilfe!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 10.05.2014, 17:03
Titel:
|
|
Hallo,
es muss size(v, 2) oder eben direkt 4 heißen.
Schau dir mal die Hilfe zu cell2mat an. Was ich mache ist letztlich, jeden dieser Blöcke in eine Cell zu stecken.
Mit cellfun kannst du auch mean auf jeden Block anwenden.
Grüße,
Harald
|
|
|
scoobydo |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 23
|
|
|
|
Anmeldedatum: 23.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.05.2014, 17:08
Titel:
|
|
Sauber so wird ein Schuh draus,
besten Dank!
|
|
|
|
|
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 - 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.
|
|