Я пишу программу, в которой в какой-то момент график отображается и отображается на экране. Затем пользователь должен нажать «y» или «n», чтобы принять или отклонить график. Мое текущее решение использует PsychToolbox (фактическое решение не нужно), которое включает команду с именем «KbCheck», которая проверяет во время вызова состояния всех кнопок клавиатуры. Мой код выглядит так:
function [keyPressed] = waitForYesNoKeypress
keyPressed = 0; % set this to zero until we receive a sensible keypress
while keyPressed == 0 % hang the system until a response is given
[ keyIsDown, seconds, keyCode ] = KbCheck; % check for keypress
if find(keyCode) == 89 | find(keyCode) == 78 % 89 = 'y', 78 = 'n'
keyPressed = find(keyCode);
end
end
Проблема в том, что система действительно «зависает» до нажатия клавиши. В идеале я мог бы прокручивать, масштабировать и вообще взаимодействовать с графиками, которые наносятся на экран, чтобы я мог действительно решить, хочу ли я нажимать 'y' или 'n'!
Я пытался добавить 'drawnow;' в приведенном выше цикле while, но это не работает: я все еще не могу взаимодействовать с построенными графиками до тех пор, пока после я не приму их или не отклоню.
Решение не должно использовать PsychToolbox; Я предполагаю, что есть много других вариантов?
Спасибо