Я пытаюсь собрать данные на клавиатуре, но я не могу получить KbWait для работы. В следующем коде я пытаюсь дождаться ответа участника, проверьте, является ли их ответ одним из двух приемлемых ответов, а затем продолжайте. Он должен продолжаться только тогда, когда участник нажимает «j» или «f».KbWait не регистрирует нажатия клавиши
response = []; while isempty(response)&&(GetSecs - FlipTimestamp) < 10 [keyIsDown, RTsecs, RTkeyCode, deltaSecs] = KbWait; if keyIsDown r=find(RTkeyCode);%this should be the code for the key pressed response=KbName(r);%Figure out what key was pressed rt=num2str(RTsecs-time); %subtract off timestamp from when window was flipped if response == 'f' match_response= false; end if response == 'j' match_response= true; end end end
Однако KbWait никогда не возвращается. Когда я пытаюсь запустить его из командной строки, он тоже не работает. Он просто зависает и отказывается вернуться, и мне приходится прерывать программу.
Я закончил тем, что исправил его, заменив KbWait на KbWait (-1). Я предполагаю, что по какой-то причине MatLab считает, что где-то есть дополнительная клавиатура, но я не уверен, почему это было бы. – Nathan