MATLAB: приостановить программу и ждать нажатия клавиш

Я пишу программу, в которой в какой-то момент график строится и отображается на экране. Затем пользователь должен нажать «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;' в приведенном выше цикле, но это не работает: я все еще не могу взаимодействовать с построенными графиками, покапосле Я принял или отклонил их.

Решение не должно использовать PsychToolbox; Я предполагаю, что есть много других вариантов?

Спасибо

Ответы на вопрос(6)

Ваш ответ на вопрос