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

Programm zum Auslesen von Reaktionszeiten

 

benji
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 03.07.12
Wohnort: Würzburg
Version: ---
     Beitrag Verfasst am: 03.07.2012, 11:55     Titel: Programm zum Auslesen von Reaktionszeiten
  Antworten mit Zitat      
Hallo an alle,

ich bin sozusagen Einsteiger in Sachen Matlab Programmierung und brauche Hilfe beim Einlesen von Daten. Ich brauche zur Auswertung einer MRT-Studie die Reaktionszeiten. Leider können die nicht direkt aus einem logfile ausgelesen werden, sondern die Zeiten müssen subtrahiert werden. Als Beispiel habe ich ein paar Zeilen aus entsprechendem logfile für zwei Trial angehängt.
Die Reaktionszeit müsste dabei aus dem Zeitwert der Responsezeile minus des Zeitwertes vom vorhergehenden Bild sein.
Kann mir da jemand helfen?

Vielen Dank und viele Grüße
Benji

Beispiel_logfile.txt
 Beschreibung:

Download
 Dateiname:  Beispiel_logfile.txt
 Dateigröße:  1.65 KB
 Heruntergeladen:  523 mal
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: 03.07.2012, 15:00     Titel: Re: Programm zum Auslesen von Reaktionszeiten
  Antworten mit Zitat      
Hallo benji,

Zitat:
... die Zeiten müssen subtrahiert werden.

Das ist für Dich sicherlich klar, die Leser sind aber nicht damit vertraut, welche Werte in Deinem File die "Zeiten" sind. Es ist auch nicht klar, was "zwei Trials" sind, oder die "Responsezeile minus des Zeitwertes vom vorhergehenden Bild". Es wäre auch nicht effizient, wenn die Leser hier die Logik des Datenfiles analysieren würden, weil Du das ja bereits wohl vöölig im Griff hast. Dir kommt es wahrscheinlich auf die Umsetzung in Matlab an, oder? Dann zeige doch mal, was Du bisher programmiert hast, und welche konkreten Probleme aufgetreten sind.

Es ist bisher nicht klar, ob Du dies über eine Funktion oder ein GUI lösen möchtest, ob Du das File bereits zeilenweise einlesen kannst, ob Du überhaupt Matlab installiert hast, etc. Bitte erkläre also noch viel mehr Details zu Matlab, während es vollkommen egal ist, ob die Zahlen Kaugummipreise oder Zufallszahlen sind.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
benji
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 03.07.12
Wohnort: Würzburg
Version: ---
     Beitrag Verfasst am: 09.07.2012, 11:14     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke für die Hinweise, das ist richtig, ich sollte doch etwas ausführlicher schreiben Smile
Also ich verwende Matlab 2008 und habe bereits eine Funktion geschrieben, die mir die Datei im Command Window ausgeben kann. Das Problem ist jetzt eben, dass ich irgendwie eine Schleife programmieren muss, die immer wenn in der 2. Spalte der Datei das Wort "Response" auftritt, dort die Zeitangabe der 4. Spalte nimmt, dann soviele Zeilen zurückgeht (meistens 2 oder 3) bis in der 2. Spalte das Wort "Picture" erscheint. Der dortige Zeitwert in der 4. Spalte muss dann von dem Responsezeitwert abgezogen werden.

Meine bisherige, einfache Lese-Funktion sieht folgendermaßen aus:
Code:
function read_rt()
    filename = '...';
    % Datei zum Lesen öffnen
    fid = fopen(filename, 'r');
    % Test, ob fid gültig ist
    if fid < 0
        fprinf('Kann Datei %s nicht öffnen \n', filename);
        return;     % im Fehlerfall Funktion sofort beenden
    end
   
    % so lange weiter, bis Datei-Ende erreicht ist
    weiter = 1;     % Flag als Merker, ob Datei-Ende erreicht ist
    while weiter
        % nächste Zeile einlesen
        data = fgetl(fid);
        if data == -1      % Datei-Ende erreicht, falls tline = -1
            weiter = 0;     % Flag zum Beenden setzen
        else
           
            % ansonsten Text ausgeben
            fprintf('%s \n', data);
        end
    end
    % Datei schließen
    fclose(fid);


[EDITED, Bitte Code-Umgebung verwenden - Danke]
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.