问题标签 [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 回答
6682 浏览

opengl - 如何使用 Matlab Psychtoolbox (OpenGL) 放大/拉伸纹理?

更新:这似乎只是某些计算机的问题。正常、直观的代码在我的家用电脑上似乎可以正常工作,但工作中的电脑有问题。

家用电脑:(没问题)

  • Windows XP 专业版 SP3
  • AMD 速龙 64 X2 3800+ 双核 2.0 GHz
  • 英伟达 GeForce 7800 GT
  • 2 GB 内存

工作电脑:(这个问题适用于这台电脑)

  • Windows XP 专业版 SP3
  • Intel Pentium 4 2.8 Ghz(我认为是双核)
  • 英特尔 82945G Express 芯片组系列
  • 1 GB 内存

原帖:

我正在尝试使用 Matlab 中的 Psychtoolbox 将一个非常简单的纹理应用于屏幕的一部分,代码如下:

现在我希望看到这个(四个大小相同的正方形):

预期结果

但相反,我得到了这个(右侧和底部被切断,左上角太大):

实际结果

显然目标矩形比源矩形大很多,所以需要放大纹理。我希望这会像第一张图片一样对称地发生,这也是我需要的。为什么这没有发生,我能做些什么呢?

我也尝试使用 [128 0 1152 1024] 作为目标矩形(因为它是我屏幕中心的正方形)。在这种情况下,所有边都是 1024,这使得每个涉及的矩形都是 2 的幂。这没有帮助。增加棋盘的大小会导致类似的情况,即无法正确显示右侧和最底部。

就像我说的,我使用 Psychtoolbox,但我知道它在后台使用 OpenGL。我对 OpenGL 也不太了解,但也许有人可以在不了解 Matlab 的情况下提供帮助。我不知道。

谢谢你的时间!

0 投票
1 回答
596 浏览

matlab - 加速轮 - MATLAB 中的 psychtoolbox

我正在尝试编写一个显示加速轮的代码。只要用户按下“a”,车轮就会逆时针加速。问题是它转向正确的方向,但它没有加速。这是我正在使用的代码(在 PTB-3 和 Windows XP 中):

如果有人知道它为什么不加速,我会非常感激。

0 投票
3 回答
4801 浏览

matlab - 如何在 MATLAB 中并行化输入和显示?

我在 MATLAB 中使用Psychtoolbox来运行行为心理学范式。作为范例的一部分,用户必须查看视觉刺激并使用某种输入机制对其做出响应。对于键盘,其工作原理如下:

  1. 显示刺激
  2. 轮询键盘以获取响应
    1. 如果未检测到响应,则循环回 1
    2. 如果检测到响应,则中断并继续使用脚本

这适用于键盘,因为第 2 步需要 1-2 毫秒。当我使用替代输入机制时,问题就来了;在这种情况下,第 2 步需要大约 20 毫秒。(我需要这个备用输入来运行研究,这应该被认为是不可变的事实。)由于刺激在很短的时间跨度内发生变化,这种增加的延迟会破坏任务。

我目前的想法是尝试使用并行处理,这样一个线程显示刺激,另一个线程轮询键盘。我目前正在使用并行计算工具箱来执行此操作。我遇到的问题是我不知道如何将键盘输入定向到“并行化”线程。有谁知道(1)是否可以将键盘输入引导到线程/让线程将视觉信号发送到监视器,如果是,(2)怎么做?

另外,如果有人对如何解决这个问题有任何更好的想法,我会全力以赴。

0 投票
1 回答
274 浏览

shell - 从 Shell 或 Makefile 调用 Matlab/Psychtoolbox 不会产生相同的行为!为什么?

我以为 Makefile 只是在执行规定的 shell 命令,但事情似乎并不那么简单:sample.m 是一个最小的 matlab 程序,它在屏幕上显示一个单词。从 Makefile 启动时,它的行为与从 shell 启动时不同...

从贝壳

-> 正确显示单词

从 Makefile

-> 用蓝色边框显示单词

怎么可能不同?我在 Ubuntu 10.04 机器上使用 Matlab 2010a。没有参数传递给 sample.m 脚本。

0 投票
1 回答
3012 浏览

image - 如何从 MAT 文件中的元胞数组中检索图像?

我使用以下代码将多个 (64) 图像放入 MAT 文件中:

但是,我现在无法从这个 MAT 文件中的任何矩阵中检索图像。它包含一个 64x1 结构数组 ( D)、一个 1x64 元胞数组 ( imcell) 和一个包含一个数字的数组 (64) ( i)。

我需要能够访问单元阵列中的单个图像以用于 psychtoolbox 实验。

任何帮助将不胜感激!

0 投票
1 回答
498 浏览

matlab - 如何实时测量声音强度?

我需要编写一个记录音频响应的功能,但是当说话人的声音达到一定强度时,我需要在线知道它。目前我正在使用它进行录制:

我无法在线分析声音的强度(例如使用规范)。

0 投票
1 回答
295 浏览

python - 在网络上使用 Python 实现心理物理学实验的最佳在线时间

我想在网络浏览器中显示视觉/听觉刺激以进行心理物理学实验。我打算使用 python,但我担心时间。我显然不能依靠屏幕刷新来计时,这在这些类型的任务中很常见。在网络上计时的准确性以及与 Python 一起使用的最佳工具是什么方面,我希望有多少。我正在考虑使用 FastCGI

我只是想听听人们对此的看法。

0 投票
3 回答
2437 浏览

matlab - matlab中的随机颜色矩阵

我想生成一个随机颜色块的矩阵——10 x 10 像素的随机颜色块——例如:

http://i.stack.imgur.com/Jlc8L.png

到目前为止,我已经生成了随机数并使用以下方法放大了矩阵kron

http://i.stack.imgur.com/eBU0T.png

使用:

我想为此添加随机颜色,但是:

报告:

如何生成随机色块矩阵?

这适用于 Psychtoolbox-3(DrawTexture似乎无法在没有插值的情况下将 10x10 随机颜色矩阵放大到 100x100)。

0 投票
1 回答
952 浏览

matlab - 如何在 MATLAB 的 txt 文件中显示列表中的随机单词?

如果有人可以帮助解决这个问题,那就太好了。

我在 .txt 文件的单列中有一个单词列表,并希望使用Matlab PsychtoolboxDrawFormattedText以随机顺序(不替换)呈现它们。

目前我收到此错误:

0 投票
1 回答
1563 浏览

matlab - 从win64到win32的pnet通信

我使用pnet tcp/udp 工具箱)和psychtoolbox在不同机器上的两个 matlab 实例之间进行通信。我的一台机器是运行 matlab 2010b 的 32 位 win7。另一个是运行 matlab 2012a 的 64 位 win 7。我在将数据从一台计算机传输到另一台计算机时遇到问题。

实验 1:从 64 位计算机运行 udp_send_demo,同时从 32 位计算机运行 udp_plotter_demo。预期结果:32 位计算机绘制数据,等待键盘输入。如果输入 Kb,则关闭图形并结束演示。64位完成发送并停止演示。实际结果:64 位的行为应如此。32 位计算机绘图但挂起并拒绝关闭演示。它不响应任何键盘输入,必须强制关闭。

实验 2:以 32 位发送和 64 位读取反向运行上述实验。预期结果:64 位绘图并等待键盘输入。如果找到 kb 输入,则停止演示。实际结果是 64 位 matlab 崩溃,声称 mex 文件中存在分段违规。它显示一个堆栈跟踪(我在最后附加了它的一部分)。

玩弄端口号没有区别。重新编译“pnet.c”源文件而不是使用预编译的 mex 没有区别。 问题:有没有人尝试过这样的事情?你让它工作了吗?你能建议一些事情来尝试让它工作而不必在我的 Win64 计算机上安装 32 位 matlab 吗?

=============

代码:

服务器端:

客户端:

==============

堆栈跟踪


2012 年 9 月 29 日星期六 16:41:11 检测到分段违规

配置:

崩溃解码:禁用

默认编码:windows-1252

MATLAB 根目录:C:\Program Files\MATLAB\R2012a

MATLAB 版本:7.14.0.739 (R2012a)

操作系统:微软视窗7

处理器 ID : x86 Family 6 Model 58 Stepping 9, GenuineIntel

虚拟机:Java 1.6.0_17-b04 与 Sun Microsystems Inc. Java HotSpot(TM) 64 位服务器 VM 混合模式

窗口系统:版本 6.1(内部版本 7601:Service Pack 1)

故障数:1

异常终止:分段违规

寄存器状态(来自故障):RAX = 0000000000000000 RBX = 0000000000000000

RCX = 000000005d0df7d7 RDX = 0000000000000001

RSP = 00000000040671b0 RBP = 0000000004067289

RSI = 000000000000003d RDI = 000000000000003d

R8 = 000000005d0df7d6 R9 = 000050490ee40167

R10 = 000000000000003d R11 = 0000000000000000

R12 = 0000000000000008 R13 = 000007fefb997678

R14 = 0000000000000002 R15 = 0000000000000002

RIP = 000007fefb99238a EFL = 00010202

CS = 0033 FS = 0053 GS = 002b

堆栈跟踪(来自故障):

[0] 0x000007fefb99238a C:\Users\ephys-data\Desktop\temp\tcp_udp_ip\pnet.mexw64+00009098 (perror+004298)

[1] 0x000007fefb99389b C:\Users\ephys-data\Desktop\temp\tcp_udp_ip\pnet.mexw64+00014491 (mexFunction+001979)

[2] 0x0000000074f10f63 C:\Program Files\MATLAB\R2012a\bin\win64\libmex.dll+00069475 (mexRunMexFile+000131)

[3] 0x0000000074f0fce2 C:\Program Files\MATLAB\R2012a\bin\win64\libmex.dll+00064738 (inSwapMexfileReader+000226)

[4] 0x0000000074f0fe58 C:\Program Files\MATLAB\R2012a\bin\win64\libmex.dll+00065112 (inSwapMexfileReader+000600)

[5] 0x0000000074e4b046 C:\Program Files\MATLAB\R2012a\bin\win64\m_dispatcher.dll+00045126 (Mfh_file::dispatch_fh+000486)

....更多东西....

运行 MEX 文件时检测到此错误。如果 MEX 文件不是 MathWorks 的官方函数,请检查其源代码是否有错误。有关调试 MEX 文件的信息,请参阅外部接口指南。

如果此问题可重现,请通过以下方式提交服务请求:....

技术支持工程师可能会与您联系以提供更多信息。

谢谢您的帮助。


谢谢

-b