Verfasst am: 03.11.2010, 21:41
Titel: DataMatrix - nur auf einen Teil zugreifen?
Hallo allerseits,
ich habe ein grosses Matlab-Problem. Ich bin noch voellige Novizin auf diesem Gebiet und hoffnungslos ueberfordert. Ich habe einen Versuch, in dem mehrere Stimuli dargeboten werden. Alle Stimuli sind random dot patterns. Das erste ist das sog. "sample", bei dem sich die Richtung, in die die Punkte sich bewegen, gemerkt werden soll. Der zweite Stimulus ist der sogenannte "test". Hier sieht man inkohaerente Bewegung, bis auf 4 kurze Impulse von Kohaeranz. Es soll von den Probanden gezaehlt werden, wie viele dieser kurzen Impulse mit der "sample"-Richtung uebereinstimmen (0, 1 oder 2). Auf der gegenueberliegenden Seite vom Fixationspunkt werden zwei RDPs uebereinander dargeboten ('pulse'-Stimuli). In beiden bewegen sich die Punkte inkohaerent, bis in z.b. dem oberen eine kurze kohaerente Bewegung zu erkennen ist. Die Probanden sollen angeben, ob diese Kohaerenz im oberen oder unteren Stimulus war.
Das ist der grobe Versuchsaufbar. Fuer das Design wird eine Daten-Matrix erstellt, die z.B. die Beziehung zwischen 'sample' und 'pulse'-Stimulus bestimmt (Abweichung von 0,45,90,135 oder 180 Grad). Da die einzelnen Trials relativ lang sind (ca. 10 Sekunden) und man ja eine gewisse Anzahl an trials pro Bedingung braucht, um eine fundierte Aussage ueber die Daten treffen zu koennen (in diesem Fall haben wir 60 Trials pro Bedingung, also 300 insgesamt), waere der Versuch insgesamt zu lang, um ihn in einem Rutsch durchzufuehren. Die Idee war nun, das auf 3x100 Trials aufzuteilen. Mein Problem ist nun, dass ich keine Ahnung habe, wie ich dem Script sagen soll, dass es auf die gleiche Datenmatrix fuer einen Probanden zugreifen soll, aber nur eine bestmmte Anzahl von trials (z.B. 101-200) aufrufen soll. Ich fuege mal sowohl das sog. Meta-Script als auch das der Datn-Matrix an und hoffe sehr, dass jemand verstanden hat, was ich will und mir helfen kann!
if subject>55
TrainingOrNot=1;
else
TrainingOrNot=0;
end
PulseCoherenceForThisSubject=input('Pulse coherence for this subject = ');
if subject < 1 || subject > 60 error('subject number invalid - stop');
end ifany(~isnan(G_WMFBADataMatrix(subject,:,16))) && subject ~= 55 warning('are you SURE you have not testest this subject on this task already? Breakif unsure (apple + dot)!');
tmp = input('to CONTINUE & OVERWRITE Press 5, to break anything else: ');
if tmp ~= 5 error('abort, subj has been used before') end end
% DISPLAY ALL THE PARAMETERS OF THE CURRENT TRIAL: fprintf(['\n cuurenttrial, PulseSide, pulse, sample, pulsePeriod, howmanymatches \n']);
[ trialNumber G_WMFBADataMatrix(subject,trial,14), G_WMFBADataMatrix(subject,trial,4), G_WMFBADataMatrix(subject,trial,9), G_WMFBADataMatrix(subject,trial,8), G_WMFBADataMatrix(subject,trial,6)]
Verfasst am: 04.11.2010, 01:27
Titel: Re: DataMatrix - nur auf einen Teil zugreifen?
Hallo Montrealite,
Das Lesen der Nachricht ist auf meinem alten Laptop mit 1024 Pixel-breitem Monitor praktsch nicht möglich. Es wäre hilfreich, wenn Du den Code auf 80 Spalten Breite begrenzen würdest.
Zitat:
Alle Stimuli sind random dot patterns. Das erste ist das sog. "sample", bei dem sich die Richtung, in die die Punkte sich bewegen, gemerkt werden soll. Der zweite Stimulus ist der sogenannte "test". Hier sieht man inkohaerente Bewegung, bis auf 4 kurze Impulse von Kohaeranz...
Das verstehe ich nicht. Was ist ein "random dot pattern"?? Was ist "kohärente Bewegung"? Was bewegt sich? Was ist ein "Trial"? Was bedeutet "(0, 1, 2)"?
Ist diese Ansammlung von Fachausdrücken überhaupt wichtig, um Dein Matlab-Problem zu beschreiben?
Zitat:
... Das ist der grobe Versuchsaufbar.
Ich hoffe, dass Du diese Beschreibung des Versuchsaufbaus nicht so in eine Veröffentlichung schreibst. Ich zumindest keine Ahnung, wie der Versuch ablaufen soll.
Aber kommen wir zu Deinem Problem:
Zitat:
Mein Problem ist nun, dass ich keine Ahnung habe, wie ich dem Script sagen soll, dass es auf die gleiche Datenmatrix fuer einen Probanden zugreifen soll, aber nur eine bestmmte Anzahl von trials (z.B. 101-200) aufrufen soll. Ich fuege mal sowohl das sog. Meta-Script als auch das der Datn-Matrix an und hoffe sehr, dass jemand verstanden hat, was ich will und mir helfen kann!
Verblüffend. Du sprichts von "dem Script", postest dann aber zwei. Welches von beiden meinst Du?
Ich finde den Code ausgesprochen schwer lesbar. Wechselnde Einrückungen, Leerzeilen und viele Kommentare, die mit dem eigentlichen Problem nichts zu tun haben.
Kurz: Ich habe sowohl aus Deiner Beschreibung als auch aus Deinem Code nur einen sehr vagen Eindruck gewonnen, was Du versuchst zu tun und welches Problem Du haben könntest.
Kannst Du die Frage auf, sagen wir mal, 8 Zeilen eindampfen und den Code auf den relevanten Teil reduzieren? Ob das nun "random dot pattern" in "kohärenter Bewegung sind oder nicht, ist dabei bestimmt unwichtig.
Gruß, Jan
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
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.