Verfasst am: 02.06.2013, 02:34
Titel: Matrix in kleinere Matrizen aufteilen
Hallo zusammen,
habe einen Test mit Probanden gemacht.
Daraus resultiert eine große Matrix, die ich aus Excel importiert habe. Jede Spalte steht für einen Datensatz. In den Zeilen stehen die Messwerte zu den verschiedenen Messvarianten.
Genauer: Jede Zeile steht für einen Probanden. Die Zeilen sind die verschiedenen Testbedingungen. Dabei gliedern sich die Zeilen folgendermaßen:
1. Zeile: Kondition 1: Variante a
2. Zeile: Kondition 1: Variante b
3. Zeile: Kondition 1: Variante c
4. Zeile: Kondition 1: Variante d
5. Zeile: Kondition 2: Variante a
6. Zeile: Kondition 2: Variante b
7. Zeile: Kondition 2: Variante c
8. Zeile: Kondition 2: Variante d
for i = 1:(M-4) for j = 1:M_s
for k = 1:N
tab_n_m(j,k) = [tab_n(i,k)];
tab_n_w(j,k) = [tab_n(i+1,k)];
tab_n_r(j,k) = [tab_n(i+2,k)];
tab_n_ref(j,k) = [tab_n(i+3,k)];
end end end
tab_n ist eine 40x10 -> 40 Messwerte von 10 Probanden (Gruppe N)
tab_ci ist eine 40x6 -> 40 Messwerte von 6 Probanden (Gruppe CI)
Hab mit den Schleifen glaub ein wenig übertrieben... Hoffe es ist klar, was ich vorhabe. Falls nicht bitte einfach nachfragen
Vielen Dank schon mal,
Daniel
PS: Im Moment schreibt mir mein Code jeweils die letzten Wert korrekt in die neuen Matrizen, nur leider nicht nur in die letzte Zeile, sondern in alle. Ich befürchte, dass der Code die aktuell ausgelesene Zeile immer in alle Zeilen schreibt und so am Ende die letzten 4 Zeilen von tab_n (große Matrix / Input) in den neuen Matizen tab_n_m, tab_n_w, tab_n_r und tab_n_ref (kleine Matrizen / Output) sich nicht nur in der jeweils letzten Zeile wiederfindet sondern auch in allen anderen...
Hab mit den Schleifen glaub ein wenig übertrieben...
Den Eindruck habe ich auch.
Zitat:
Hoffe es ist klar, was ich vorhabe.
Leider nicht. Dein Code macht ja, wie du selbst festgestellt hast, nicht das, was du haben willst. Leider finde ich aber keine Beschreibung, was du nun wirklich vorhast. Vermutlich würde es schon mal helfen zu wissen, was a-d mit m,w,r und ref zu tun haben.
Wenn du deinen Ausschnitt deiner Daten posten kannst und dazu sagen kannst, welche Variablen am Ende welchen Inhalt haben sollen, wäre das noch besser.
Und für was braucht man hier überhaupt die Tabelle CI?
Im der Zeile Darüber stehen jeweils die Namen der Probanden. Ich habe einen s.g. Satztest (Proband hört Satz und muss ihn anschließend wiederholen) mit zwei verschiedenen Gruppen durchgeführt: Normalhörende und CI-Träger (Cochleaimplantat). Die Testbedingungen gliedern sich durch zwei Variablen: Pegel in dB und Variante des Tests (m, w, r und ref). Im Moment habe ich zwei Matrizen (eine mit den Normalhörenden aus Tabelle N und eine mit den CI-Trägern aus Tabelle CI) jetzt muss ich die in jeweils 4 Matrizen aufteilen, die dann nur m, w, r bzw. ref enthalten (siehe Code).
Am Schluss plotte ich das dann in ein Liniendiagramm (x-Achse: Pegel in dB; y-Achse: Prozent der richtigen Worte/Sätze).
bedenke bei der Beschreibung bitte, dass wahrscheinlich die wenigsten von deiner Anwendung Ahnung haben.
Aus den Daten und dem ursprünglichen Code würde ich vermuten, dass du folgendes willst:
Code:
tab_n_m = tab_n(1:4:end,:);
tab_n_w = tab_n(2:4:end,:);
% etc.
Für das Diagramm brauche ich nun nicht nur den Durschnittswert der Werte je Zeile, also wie viel Prozent ein Proband im Schnitt richtig hatte sondern auch die Abweichungen.
Muss ich nun erst mit min(), max() und mean() rechnen oder kann ich das mit einem bestimmten Diagrammtyp direkt plotten lassen?
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
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.