Как я могу распараллелить ввод и отображение в MATLAB?

Я использую Psychtoolbox в MATLAB, чтобы запустить парадигму поведенческой психологии. В рамках этой парадигмы пользователи должны видеть визуальный стимул и реагировать на него, используя какой-либо механизм ввода. Для клавиатуры это работает следующим образом:

  1. показать стимул
  2. опросить клавиатуру для ответа
    1. , если ответа не обнаружено, вернуться к 1
    2. , если ответ обнаружен, прервать работу и перейти к сценарию

Это отлично работает для клавиатуры, так как шаг 2 занимает 1-2 мс. Проблема возникает, когда я использую альтернативный механизм ввода; в этом случае шаг 2 занимает ~ 20 мс. (Мне нужен этот альтернативный ввод для проведения исследования, и это следует рассматривать как неизменный факт.) Поскольку стимул изменяется за очень короткий промежуток времени, эта дополнительная задержка нарушает задачу.

Моя текущая мысль - попытаться использовать параллель обработка, так что один поток показывает стимул, а другой поток опрашивает клавиатуру. В настоящее время для этого я использую Parallel Computing Toolbox . Проблема, с которой я столкнулся, заключается в том, что я не знаю, как направить ввод с клавиатуры в «параллельный» поток. Кто-нибудь знает (1) ли это? Можно ли направить ввод с клавиатуры в поток / заставить поток отправлять визуальный сигнал на монитор, и если да, (2) как это сделать?

Кроме того, есть ли у кого-нибудь лучшие идеи относительно того, как подойти к этому проблема, я весь в ушах.

7
задан JasonMArcher 27 December 2017 в 01:30
поделиться