我正在写一个程序,在某个时候,一个图形被绘制并显示在屏幕上。然后,用户需要按'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'!
我尝试过在上面的while循环中添加“drawnow;”,但这不起作用:在我接受或拒绝这些图表之前,我仍然无法与所绘制的图形进行交互。
这个解决方案不需要使用PsychToolbox;我想还有很多其他的选择吗?
谢谢
发布于 2012-02-16 12:26:54
我会使用input函数:
a = input('Accept this graph (y/n)? ','s')
if strcmpi(a,'y')
...
else
...
end虽然必须承认,它需要两个按键(y然后进入),而不是一个键。
发布于 2013-10-23 06:20:39
等待按钮,打开一个图形,这可能是不必要的。代用
pause('on');
pause;它允许用户暂停,直到按下一个键。
发布于 2012-02-16 12:20:03
为什么不使用waitforbuttonpress呢?
文档:http://www.mathworks.fr/help/techdoc/ref/waitforbuttonpress.html
https://stackoverflow.com/questions/9310786
复制相似问题