【问题标题】:PsychoPy Builder - How to I take a rest part way through a set of trials?PsychoPy Builder - 我如何在一组试验中休息?
【发布时间】:2015-01-30 16:53:47
【问题描述】:

在 PsychoPy builder 中,我有很多试验,我想让参与者在中途休息/休息,然后在他们准备好后按 SPACE 继续。

关于如何最好地做到这一点的任何建议?

【问题讨论】:

    标签: psychopy


    【解决方案1】:

    PsychoPy Builder 使用TrialHandler 类,你可以利用它的属性来控制你想休息的时候。

    假设您的试用循环正在使用 Excel/csv 文件来获取试用数据,然后使用 trialHandler 的属性:thisTrialN

    例如

    1/ 将一个包含文本组件的例程添加到您的循环中(可能在开始时),并带有您的“现在休息...”消息和一个键盘组件,以便在它们准备好继续时获取响应。

    2/ 添加自定义代码组件,并将与此代码类似的内容放入其“开始例程”选项卡中:

    if trials.thisTrialN  not in [ int(trials.nTotal / 2) ]:
        continueRoutine=False
    

    其中“试验”是试验循环的“名称”。

    以上内容将在当前的一组试验中休息,但您可以将其替换为类似的内容

    if trials.thisTrialN  not in [10,20]:
        continueRoutine=False
    

    如果您想在 10 次试验后停止并在 20 次试验后再次停止。

    请注意,如果您不使用 Excel 文件,而只是使用简单试用循环的“重复”功能,则需要将 thisTrialN 替换为 thisRepN

    如果您使用 Excel 文件和代表,则在您想休息时锻炼时需要将两者都考虑在内。

    这通过使用 Builder 自己的变量之一来工作 - continueRoutine 并将其设置为大多数试验为 false,以便在大多数情况下它不会显示“休息一下”消息。

    如果您想了解更多,请使用“编译脚本”按钮(或 F5)并查看 Builder 为您生成的 Python 代码。

    【讨论】:

    • A user 试图评论以下内容:“我只是想补充一点,当我将代码放入自定义代码 sn 的“每帧”选项卡时,上述解决方案才对我有效-p。它在开始例程选项卡中不起作用。"
    • 同意,这样的代码(目前)放在“开始例程”选项卡中不会有任何效果,需要放在“每帧”选项卡中。这当然不是理想的,我在这里将其作为一个问题指出:github.com/psychopy/psychopy/issues/1143
    猜你喜欢
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    相关资源
    最近更新 更多