我正在尝试使用心理学来建立决策任务。我之前没有使用python或psychopy的经验,所以这就是为什么我会陷入困境。
我有15次试验,每次试验都会显示一对照片。参与者需要通过按向左或向右箭头键选择其中一个图片。在他们做出选择之后,我想向他们展示他们的选择并询问他们为什么选择那张照片。
我已经在心理模型中创建了一个循环并且确定了一个.xlsx文件,用于按顺序显示我的图片。我的问题是,我没有为任何图片分配按键。我只是按下按键来结束例程。那么如何在参与者的按键按下某个试验中并在将它呈现给他/她之后保存图片。
由于我没有任何正确或错误的答案,我可以在我的.xlsx文件中添加一个额外的列,然后设置为正确的答案。
如何将按键连接到视觉刺激(我的照片,同时显示)并存储此输入并在显示后使用它?
# -------Ending Routine "Deney"-------
for thisComponent in DeneyComponents:
if hasattr(thisComponent, "setAutoDraw"):
thisComponent.setAutoDraw(False)
# check responses
if secimtuslar.keys in ['', [], None]: # No response was made
secimtuslar.keys=None
trials.addData('secimtuslar.keys',secimtuslar.keys)
if secimtuslar.keys != None: # we had a response
trials.addData('secimtuslar.rt', secimtuslar.rt)
# the Routine "Deney" was not non-slip safe, so reset the non-slip timer
routineTimer.reset()
我可以使用这个trials.addData('secimtuslar.keys',secimtuslar.rt)
变量来保存并显示循环中的另一个例程吗?
# -------Start Routine "bununedensectin"-------
while continueRoutine and routineTimer.getTime() > 0:
# get current time
t = bununedensectinClock.getTime()
frameN = frameN + 1 # number of completed frames (so 0 is the first frame)
# update/draw components on each frame
# *text_2* updates
if t >= 0.0 and text_2.status == NOT_STARTED:
# keep track of start time/frame for later
text_2.tStart = t
text_2.frameNStart = frameN # exact frame index
text_2.setAutoDraw(True)
frameRemains = 0.0 + 3- win.monitorFramePeriod * 0.75 # most of one frame period left
if text_2.status == STARTED and t >= frameRemains:
text_2.setAutoDraw(False)
我认为我需要在这些行之间嵌入一个有用的代码。
答案 0 :(得分:1)
在实验结束时,每个试验的响应会自动存储在您的数据文件中。它也可以通过每个试验的代码获得。例如如果您的键盘组件名为trial_response
,则它具有.keys
属性,可通过以下代码访问:
trial_response.keys
如果您打算使用它,那么这将需要使用一些Python代码片段。实际上,通过https://discourse.psychopy.org论坛上的讨论而不是在这里讨论,可以更好地处理这方面的帮助,因为SO更侧重于询问和回答特定代码问题,以及与其他读者具有某种更广泛相关性的问题。
答案 1 :(得分:0)