首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PsychoPy生成器中实现条件分支的实验?

如何在PsychoPy生成器中实现条件分支的实验?
EN

Stack Overflow用户
提问于 2014-05-01 23:35:08
回答 1查看 1.8K关注 0票数 3

心理学/神经科学中的许多行为实验设计都需要有条件的分支(例如,只有在初始实践阶段达到了必要的性能水平时,才能进入测试阶段)。graphical的Builder视图允许生成一个Python脚本来使用图形化控件来运行一个实验。但它似乎没有内置的支持有条件的分支。

在给定的运行中跳过特定的例程是否可以通过使用代码组件中的Python片段在Builder中实现?还是需要迁移到完整的Python环境?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-02 08:50:06

PsychoPy中的Coder视图允许您完全访问programming语言,因此您可以实现任意复杂的实验设计。

与此同时,meanwhile的图形生成器视图强调易用性和简单性,而不是灵活性。它不直接迎合的一件事是有条件的分支。然而,它可以被黑客攻击,以间接实现它。

假设您有一个三相实验:一个练习块,然后是两个可能的实验块,ConditionA或ConditionB。在完成练习块之后,高性能的科目被分配给conditionA,而表现不佳的科目被分配给conditionB。

要在Builder中实现这一点,请创建三个例程来表示每个任务块(Practice、conditionA和conditionB)。每个循环也将被一个循环包围(分别是practice_loop、A_loop和B_loop )。另外,在Practice和conditionA之间插入一个例程(例如,assignCondition)。

在assignCondition例程中,放置一个代码组件。在这种情况下,假设在实践例程中维护了一个性能分数计数器。我们可以用它来改变后续例程的重复次数。也就是说,通过将循环的重复次数设置为零,我们可以确保循环中的例程不会被执行。因此,这些循环的重复次数将不是一个固定值,而是一个变量(例如,repetitionsA和repetitionsB)。

在assignCondition例程的代码组件的“开始例程”选项卡中,放置如下所示的Python片段:

代码语言:javascript
复制
if performanceScore > 25:
    repetitionsA = 50 # run this routine 50 times
    repetitionsB = 0 # don't run this condition at all
else:
    repetitionsA = 0 # vice versa: don't run this
    repetitionsB = 50 # do run this

Matt在这里的一篇博文(以fMRI块设计为例,其中块的顺序需要可变)给出了对这种技术的更全面的描述:

http://computingforpsychologists.wordpress.com/2013/11/12/how-to-hack-conditional-branching-in-the-psychopy-builder/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23418467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档