You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Psychopy中如何基于视觉评分量表响应设置条件语句?

为回忆评分量表设置条件逻辑方案

嘿,我来帮你搞定这个回忆评分量表的条件逻辑设置!看你的描述,已经搭好了基础的视觉组件——带"Yes"/"No"选项的recall评分量表,还有标题为*Do you remember this painting?*的vasTitle,现在就差给这个量表加上条件逻辑了对吧?下面我给你梳理具体的实现思路和代码示例(以实验心理学常用的PsychoPy框架为例):

核心需求拆解

通常这类条件逻辑会围绕被试的选择展开,常见的需求方向包括:

  • 把被试的选择结果同步记录到实验数据文件中
  • 根据"Yes"/"No"的不同选择,跳转至对应的实验流程分支
  • 被试提交选择后自动触发下一个实验环节,无需额外操作

具体实现代码

# 假设你已经完成了屏幕初始化和基础组件创建:
# win = visual.Window(size=[800,600], fullscr=False)
# vasTitle = 'Do you remember this painting?'
# recall = visual.RatingScale(win, choices=["Yes", "No"], marker='triangle', title=vasTitle)

# 条件逻辑核心实现部分
while True:
    # 持续渲染量表,等待被试作答
    recall.draw()
    win.flip()
    
    # 判断被试是否完成作答
    if not recall.noResponse:
        # 获取被试的选择结果
        response = recall.getRating()
        # 将结果存入实验数据(expData是你预设的数据记录对象)
        expData.add('recall_response', response)
        
        # 执行条件分支逻辑
        if response == "Yes":
            # 被试选择Yes时的流程,比如展示记忆细节提问
            print("被试回忆起画作,进入记忆细节调查环节")
            # 这里替换为你Yes分支的具体实验代码,比如加载新的问卷组件
        else:
            # 被试选择No时的流程,比如直接进入下一个试次
            print("被试未回忆起画作,跳转至下一幅画")
            # 这里替换为你No分支的具体实验代码
        
        # 重置量表状态,为下一次使用做准备
        recall.reset()
        break  # 退出循环,进入下一个实验环节

关键细节说明

  • recall.noResponse:这个属性用于判断被试是否提交了选择,当它为False时表示被试已经完成作答
  • recall.getRating():调用这个方法可以获取被试选择的具体选项("Yes"或"No")
  • 数据记录:通过expData.add()把选择结果存入数据文件,方便后续的实验数据分析
  • 分支逻辑:你可以根据自己的实验设计,替换分支内的代码,比如跳转不同的试次、展示不同的刺激等

如果你的实验用的是其他框架(比如jsPsych),可以告诉我,我再给你调整对应的代码示例~

内容的提问来源于stack exchange,提问作者MD Claudio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:09:58