在PsychoPy Builder中的循环内循环

时间:2016-05-25 11:23:22

标签: builder psychopy

我是编程新手,需要一些帮助我在PsychoPy构建器中构建实验。我已经做了一些有用的东西,但我可以说它不够优雅,必须有一个更好的方法。

我想进行24次试验。每个试验将显示7个独特的图像,然后是1个图像,这些图像可能来自或不是来自7,并且如果用户之前已经看过图像,则要求用户输入y / n。

在我当前的代码中,我创建了24个单独的输入文件,每个文件都包含唯一对象的列表。我创建了一个循环,连续显示七个对象。然后,我为试验前固定屏幕(所有24次试验的常数)和响应(探测图像和手动编程的正确答案)创建了单独的程序。代码有效,但它很长,如果我想改变固定或探测/响应中的某些内容,我需要单独更改24个试验中的每一个。

我怎样才能让Builder创建一个循环,其中包含固定屏幕(常量),试验循环(选择接下来的七个唯一对象(它们从1-168顺序命名),然后是探测/响应每个试验都是唯一的(我在输入文件中有如下所示。探针指的是1到7之间的数字,它引用试验中显示的序列中图像的位置。)

TrialNumber Probe CorrAns 1 4 0 2 3 1 3 4 0 4 5 1 5 4 1 ...

我希望我的问题有道理,如果有任何帮助,我将不胜感激。

感谢PsychoPy初学者。

1 个答案:

答案 0 :(得分:0)

是的,你说这是一个(更有效)的方法是正确的。

首先,从您的条件文件(即.csv或.xlsx)开始。你只需要其中一个。它应该有24行(每个试验一个)。它将需要8列:7用于指定试验中的唯一图像,第8列用于指定重复的图像。

其次,你需要一个循环来控制试验。它连接到条件文件,包含所有例程(预审固定和图像例程。

第三,你需要一个嵌套在外层循环中的第二个内循环。这仅包括图像例程。即,固定程序将运行24次(每个外环一次),并且图像程序将运行7×24次(即每次试验7次)。内部循环未连接到条件文件,只是设置为运行7次。

请注意,您在Builder中不再有24个单独的例程,而只有两个(固定和图像例程)。不是重复例程,而是通过循环重复它们。

在图像激励图像字段中,您可以构建要在每个演示文稿上使用的图像名称。例如假设条件文件中的8列标记为“image0”,“image1”等。然后在图像字段中输入如下内容:

$'image' + str(yourInnerLoopName.thisN)

即。在每个试验中的第一次迭代中,图像文件名将来自image0列,第二次来自image1,依此类推。

我不知道您是如何处理响应的,但您可能还需要条件文件中的第九列来指示正确的响应。键盘组件可以访问它以判断响应是否正确。