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

如何在PsychoPy嵌套试次循环内添加块内休息

PsychoPy嵌套循环下块内+块间休息实现方法

流程结构调整

先在Builder界面把实验流程调整为以下层级,不要放错组件位置:

  • 最外层为blocks循环,绑定AB.xlsx,共2次迭代,按顺序依次加载ListA、ListB对应的刺激块
  • blocks循环内部嵌套trial循环,每个块迭代下绑定对应的ListA.xlsx/ListB.xlsx,设置循环次数为20,对应每个块20个句子试次
  • trial循环内部按顺序放两个Routine:
    • 句子呈现Routine:负责显示句子、收集被试反应
    • 休息Routine:负责显示休息提示文字,配置空格键响应组件,设置为按空格结束Routine
  • 所有循环外层放实验结束语Routine即可

休息触发代码替换

打开休息Routine的代码组件,切换到Begin Routine标签页,删掉原有代码,替换为以下内容:

show_break = False

# 块内休息触发:每个块跑完第10个句子时触发(试次序号从0开始计数,第10个试次对应序号为9)
if trials.thisN == 9:
    show_break = True

# 块间休息触发:A块全部20个句子跑完、进入B块前触发(A块为外层循环第0个块,最后一个试次对应序号为19)
if blocks.thisN == 0 and trials.thisN == 19:
    show_break = True

# 不满足休息触发条件时直接跳过本Routine
if not show_break:
    continueRoutine = False

注意事项

  • 所有PsychoPy循环的thisN属性均从0开始计数,不要按自然数逻辑写错序号。如果需要调整休息间隔,比如每5个句子休息一次,直接修改块内休息的判断条件为trials.thisN in [4,9,14]即可,对应第5、10、15个句子结束后触发休息
  • 休息Routine内的键盘响应组件只保留space为允许按键,勾选「Force end of Routine」选项,不要设置固定呈现时长,确保被试主动按空格才会回到实验流程
  • 如果调试时发现休息触发时机错位,可以在句子呈现Routine的End Routine代码段加print(f"块序号:{blocks.thisN}, 试次序号:{trials.thisN}"),运行时查看控制台输出的序号值,对应调整判断条件里的数字即可
  • B块跑完20个句子后不会触发休息,会直接进入结束语流程,符合实验逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.06 16:15:43