MATLAB: Pause de programme et d'attendre la pression de touche

Je suis en train d'écrire un programme qui, à un certain point, un graphe est tracé et affichée sur l'écran. L'utilisateur doit ensuite appuyez sur la touche 'y' ou 'n' pour accepter ou rejeter le graphique. Ma solution actuelle utilise le PsychToolbox (la solution réelle n'a pas besoin d'), qui inclut une commande appelée "KbCheck' qui vérifie au moment de l'appel de l'état de tous les boutons du clavier. Mon code ressemble à ceci:

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

Le problème, c'est que le système n'a vraiment "bloquer" jusqu'à ce qu'une touche est enfoncée. Idéalement, je voudrais être en mesure de faire défiler, zoomer, et généralement interagir avec les graphes sont tracés à l'écran afin que je puisse vraiment décider si oui ou non je veux appuyez sur la touche 'y' ou 'n'!

J'ai essayé d'ajouter 'drawnow;" dans la boucle while ci-dessus mais qui ne fonctionne pas: je ne suis toujours pas en mesure d'interagir avec les courbes graphiques jusqu'à après j'ai accepté ou rejeté.

La solution de ne pas avoir à utiliser de PsychToolbox; je suppose que il ya beaucoup d'autres options là-bas?

Grâce

le clavier commande peut être utilisée pour interrompre l'exécution.
Ce serait une solution adaptée, bien que je préfère pour le rendre plus convivial; c'est à dire avec le "clavier", à accepter les graphiques que j'aurais du type "nom de la variable = 'y'; return;"
À l'aide de la 'input', fonction, vous n'avez qu'à écrire o ou n, mais il ne reqiure appuyez sur la touche entrée.

OriginalL'auteur CaptainProg | 2012-02-16