Targetの図形にカーソルを合わせるまでの反応時間の記録方法について

45 views
Skip to first unread message

野口光

unread,
Nov 19, 2018, 8:39:05 AM11/19/18
to 心理学実験について話そう
黒木先生

お世話になっております。
野口と申します。

スクリーン上にTarget刺激(FillOval)を提示し、
そこにカーソルを合わせるまでの時間を記録したいと考えています。

GetMouseでカーソルの位置を検出し、Targetと一致したら、
その時のGetSecs - OnsetTimeを引くことで反応時間を記録できるのではないかと考えています。

以下のように書いてみたのですが、この方法で良いでしょうか?
また、Targetの円の(中心の座標ではなく)外周に触れることでも反応時間を記録するようにすることは可能でしょうか?

解決方法をご存知であれば、ぜひご教示ください。


 %draw target stimuli

     Screen('FillOval', mainWindow, tarcol, [mX - radius, mY - stimDist - stimSize, mX + radius, mY - stimDist]);

     [targetFlipStart, targetStimOnset] = Screen('Flip', mainWindow);

     Screen('Flip', mainWindow, targetStimOnset + 10);

     

     [x, y, buttons] = GetMouse;

     

     if x == mX && y == mY -stimDist - stimYpos

         RT = Getsecs - targetStimuOnset;

     end


野口


黒木@九州大学

unread,
Nov 19, 2018, 11:08:32 PM11/19/18
to 心理学実験について話そう
野口様

おたずねの件について回答いたします。

まず、GetMouseは現在のマウスカーソルの位置を取得する関数ですので、while文などを使って常にカーソルの位置を監視するような状態にする必要があると思われます。(ちなみにGetClicksは、クリックされるのを待っていて、クリックされたときのカーソルの座標を返します)

以下は、help GetMouseからの抜粋です。

fprintf('Please click the mouse now.\n');
  [x,y,buttons] = GetMouse;
  while any(buttons) % if already down, wait for release
    [x,y,buttons] = GetMouse;
  end
  while ~any(buttons) % wait for press
    [x,y,buttons] = GetMouse;

    % おそらくここで、ターゲットと一致したかの確認が必要になります。

  end
  while any(buttons) % wait for release
    [x,y,buttons] = GetMouse;
  end
  fprintf('You clicked! Thanks.\n');

外周に触れたかどうかの確認については、ターゲットの中心座標とカーソルの位置との距離を計算し、その距離が想定している半径よりも小さくなったら外周に触れたと判断してよいのではないでしょうか。

黒木

野口光

unread,
Nov 19, 2018, 11:46:56 PM11/19/18
to 心理学実験について話そう
黒木先生

お返事ありがとうございます。

カーソル位置の確認はif文で書けば良いのでしょうか?
自分で書いてみたものを添付いたします。

ご指摘いただければ幸いです。
noguchi.m

黒木@九州大学

unread,
Nov 20, 2018, 1:02:30 AM11/20/18
to 心理学実験について話そう
野口様

ファイルを添付いたしますのでご確認ください。
Matlabには2つのファイルを比較する機能がついています。
私が差し上げるファイルと、元々のファイルを比較していただくとよいかと思います。


noguchi2.m
Reply all
Reply to author
Forward
0 new messages