问题标签 [psychtoolbox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
318 浏览

arrays - 随机数对 Matlab

我正在尝试使用 Matlabrandperm和调用生成 1 到 6 之间的随机数randperm = 6

每次这给我一个不同的数组,例如:

我想知道是否可以创建成对的随机数,最终得到x如下结果:

我需要排列向量,使 1 和 2 始终彼此相邻,3 和 4 彼此相邻,5 和 6 彼此相邻。当我在做某事时Psychtoolbox,这个顺序很重要。

是否有可能有随机顺序的“块”?我不知道该怎么做。

谢谢

0 投票
1 回答
508 浏览

psychtoolbox - 'FillPoly' Psychtoolbox 仅在屏幕的一侧绘制形状

我正在尝试使用“FillPoly”在 Psychtoolbox 中绘制三角形。三角形的数量因试验而异,最小。3 和最大。屏幕上有 10 个三角形。三角形围绕一个假想的圆圈均匀分布。每次试验最多 6 个对象,三角形绘制得很好。从屏幕上的 7 个对象开始,屏幕左侧不再绘制三角形。在屏幕的右侧,它们工作正常。

有谁知道可能导致问题的原因?先感谢您!

代码中的 3 个相关位:首先,设置项目的坐标

我预先计算了三角形的坐标。“设置大小”是给定试验中屏幕上的刺激量,可能在 3 到 10 之间变化

0 投票
2 回答
2214 浏览

matlab - 使用 KbQueueCheck 持续检查设备输入

我正在使用 PsychToolbox 在 fMRI 扫描仪上运行实验。我想收集扫描仪发出的脉冲的时间点。如果您不熟悉此主题:扫描仪会在定义的时间间隔内发出信号 - 相当于按下键盘数字“5”。第一个这样的信号启动代码,从而使扫描仪的测量值和代码的启动时间同步。我的代码是顺序的,如下所示。即使我的主代码在“for”循环中运行,我如何实现一个随时检查这些输入的“5”的循环?

我的代码:

函数 KbQueueCheck 应该检查从最近一次调用 KbQueueStart 开始的任何键盘输入。非常欢迎任何输入。

0 投票
2 回答
790 浏览

psychtoolbox - 在哪里可以找到 Psychtoolbox-3.0.11?

我的 Matlab 是 32 位的,在我的 32 位 win7 操作系统上工作。我想使用 Psychtoolbox,寻找可以在我的平台上运行的合适版本(Psychtoolbox-3.0.10/Psychtoolbox-3.0.11)。

0 投票
1 回答
758 浏览

matlab - 在 MATLAB 中使用 KbCheck 和 GetSecs 记录冲突任务中的反应时间(Psychtoolbox)

我在 MATLAB 中创建了一个类似 Stroop 的反应时间任务,查看试验结果表明我的代码可能有问题(一致性效果比预期的要大得多)。我怀疑我可能在录制 RT 时出错了,所以任何人都可以帮助我了解以下设置是否可以?

在任何给定的试验中,都会发生两个事件(在固定交叉之后):首先,目标刺激最多出现 3 秒(或直到反应),然后参与者必须按下按钮开始下一次试验。记录两个按钮按下(目标和试用开始按钮)的 RT。这是我的代码:

我的问题:命令 GetSecs 每次调用时都会获取时间,对吗?因此 GetSecs - timeStart 是一种计算 RT 的好方法 - 但 secs - timeSt 也是如此(如第二个刺激所见),因为 secs 是 KbCheck 返回按钮按下的时间。这两种方法在很大程度上是等效的(使用 GetSecs - timeStart 可能稍微高估了 RT),对吗?

我担心的是,NEXT 试验中目标的 RT 估计值可能会受到 PREVIOUS 试验的第二个按钮 RT 的影响。你看到任何证据吗?

0 投票
1 回答
740 浏览

matlab - Psychtoolbox(MATLAB)中有多少次错过的翻转太多了?

我正在 MATLAB (R2014b) 中使用 Psychtoolbox 进行反应时间实验。我正在使用 SyncTests,这让我可以估计在我运行实验时有多少翻转命令错过了请求的响应期限。多少次错过的翻转太高(即引起关注)?我通常每 1900 次翻转获得 140 次左右,所以略高于 7%。可以吗?

这是我收到的消息(自然,每次实验运行后实际数字略有不同):“信息:PTB 的 Screen('Flip', 10) 命令似乎错过了请求的刺激演示截止日期,总共有 130 次在本次会议期间总共进行了 1900 次翻转。”

这是我用来翻转的代码(然后测量 RT,这是我的代码中最关键的部分):

一些背景知识:我在 Windows 10 上运行我的范例,并且还有一个我无法解决的“DPI 感知”问题(我收到警告说 MATLAB 在我的计算机上不支持 DPI)。我不确定这可能会产生什么问题——但范式似乎正在做我希望它做的事情,而且它看起来很棒(即图像显示得很好),所以我从不担心那么多。我应该有吗?这会影响反应时间测量的准确性吗?

0 投票
1 回答
355 浏览

matlab - 在matlab中使用鼠标滚轮实时递增值

我希望能够根据鼠标滚轮的移动向上和向下更改数字的值。我有一个图像的某个部分具有不同的亮度,我想用鼠标滚轮调整亮度,直到我认为它们是相同的。我以为有一个名为 windowsscrollwheelfcn 的函数,但在 matlab 2017 上似乎不存在。我也在使用 pyschtoolbox。

不幸的是,我对此并不陌生,不知道从哪里开始。

0 投票
0 回答
229 浏览

matlab - 使用 Psychtoolbox 播放音频和图形刺激时偶尔会出现延迟

我正在执行一项行为任务,并且只有图像和音频刺激。一切正常,除了偶尔的滞后。有时,特别是在测试中间,音频刺激以拉伸方式播放(假设我的音频刺激是持续时间为 1 秒的“乌龟”,但它播放的内容类似于:持续时间为 2 或 3 的“Tuuurrrrrtttttleeee”秒)。在这个延长的音频播放过程中,我也觉得图形有些滞后。对于一些连续的刺激,这将发生,几秒钟后(在一些屏幕翻转和音频刺激改变之后),它再次变得正常。因此,我觉得额外的 CPU 负载会导致这种情况。也许我必须删除并重新创建一些缓冲区或句柄。我已经尝试删除并重新创建音频播放器句柄,但这会导致 Matlab 崩溃!(这是一个可重现的错误!)。在下文中,我提供了一些关于我的实验编码方式的详细信息。如果有人能帮助我解决这个问题,我将不胜感激。

程序详细信息:
我使用音频播放器、图形播放器、鼠标和键盘轮询以及 GetSecs 类和函数。我创建了相应的对象并一直使用它们直到实验结束。我的程序是以面向对象的方式实现的。

我使用 Screen('Flip')、Screen('MakeTexture') 和 Screen('DrawTexture') 函数来显示我的图像。我用这些命令创建了一个窗口:

我不会关闭窗口,只会翻转它。此外,有时我会使用不同模式的 Flip 命令来显示某些内容,同时将先前的内容保留在屏幕上,或者使用 Flip 清除屏幕并显示新内容。

此外,我使用 Psychtoolbox 的音频播放器来播放我的音频刺激。我通过以下命令初始化了音频播放器。 InitializePsychSound(1); nrchannels = 2;

此外,我尝试了以下选项来加载音频播放器,这在避免问题方面没有区别:

我总是用这个命令重新加载音频缓冲区,用我的不同刺激填充它:

超过 256 次音频缓冲区被重新加载,超过 300 次我通过测试翻转屏幕。

我在具有 12 Gb RAM 和 Intel Core i5-3337U 1.8-2.6GHz 的 Windows 10 Pro 64 位上使用 Matlab 2017a 64 位。我测试了另一台性能更好且操作系统相同的笔记本电脑,但问题没有解决。我已经将我所有的驱动程序和 PTB 更新到了最新的可用版本。

PTB 在每次会话期间和之后产生的信息和警告列表:

0 投票
2 回答
513 浏览

psychtoolbox - Psychtoolbox 固定刺激持续时间

我正在尝试记录参与者对需要在固定持续时间(500 毫秒)内显示的视觉刺激的反应。但是,我还想在刺激开始后的 1 秒时间窗口内记录他们在这个固定持续时间后的反应。以下代码仅允许我在刺激呈现期间(500 毫秒)按下键时记录响应。

我是psychoolbox的新手,任何帮助将不胜感激!!!

0 投票
1 回答
69 浏览

matlab - Matlab:向主题显示屏幕的标准

我正在 Matlab 中进行一项心理学实验,其中将向受试者展示带有问题的屏幕。屏幕还将收集和显示受试者的反应。例如:屏幕显示“2+3”并显示参与者类型(例如 99999),直到他们按下回车键。

目标:如果参与者尚未按 Enter,则让它在 16 秒后停止显示问题。(也就是说,如果 time=16sec 或者如果主题按下 Enter,则停止显示屏幕。)

问题围绕以下代码:

因此,无论我们在捕获响应语句之前/之后添加的任何语句都不会执行。

任何有关如何解决此问题的帮助将不胜感激!谢谢。