How to catch reaction time with MATLAB; How to save text file from command window automatically
33 views (last 30 days)
I would like to ask two questions:
1. I use command "fprintf" to write the result to command window, and I was wondering: does MATLAB have the command that can save the result posted on command window " automatically" ?
2. I have written a script to catch the reaction time( the time between picture appears and the participant's response by pressing the keyboard( it work with cogent). I use "tic" and "toc" to set the time start and stop to get this period. But I don't know why I put "toc" in the " if" statement, it cannot read.
[ks, kp] = cgkeymap;
if kp==77 %key:righ
kp=77 means to press the right key, and Matlab should detect this and record S2....But I am confused why it cannot work.
I hope any expert can help me and I will be grateful for your kind help.
Many thanks in advance
Ian on 6 Sep 2011
Um, cogent is really not very good for precise timing, and in addition you are not controlling for any OS/hardware latency fluctuations. My advice, if you actually care about recording reaction times accurately, is to first use Psychophysics toolbox, which timestamps the flip with high precision and corrects for OS latency (that is the time you use for S1, much more accurate than a tic after cgflip), and also returns a time with its keypress functions which is used to determine the reaction time:
Secondly, you should really use a hardware button box - keyboards and mice have a poll latency in the 10s of milliseconds (at least in Windows) which is fairly inaccurate (at least in psychophysics). Button boxes overcome the inaccuracy by using an internal high resolution hardware timer and a way to synchronise with the host computer.
Chaowei Chen on 3 Sep 2011
1. doc diary 2. I think the problem happens at kp=find(kp) It means wherever kp is nonzero, assign the position to kp.
My modification is
S1=tic; [ks, kp] = cgkeymap; if kp=='M', S2=toc(S1),end