如何在matlab中检测键盘空格键?

时间:2015-06-05 05:37:19

标签: matlab

我想检测用户在5秒内点击空格键的次数

有什么好方法可以解决这个问题吗? 感谢

1 个答案:

答案 0 :(得分:1)

从键盘轻松读取用户输入的一种方法是创建一个新图并指定一个KeyPressFcn回调函数,如果按下任何键,它将自动执行。

让我们开始创建一个新的数字。因为我们不需要图形来显示任何东西,所以让它尽可能小(即1乘1像素)并将其放在显示屏的下角:

f = figure('Position',[0,0,1,1]);

现在我们将图形的UserData属性设置为零 -

set(f,'UserData',0);

现在让我们看看当按下一个键时该怎么做:我们可以创建一个小的回调函数来检查按下的按钮是否是一个空格,如果是这样的话,增加UserData计数器。我们将该函数称为isspace

function isspace(hObject,callbackData)
    if get(hObject,'CurrentCharacter') == ' '
        set(hObject,'UserData',get(hObject,'UserData')+1);
    end
end

现在只需设置图形,将此功能用作KeyPressFcn

set(f,'KeyPressFcn',@isspace);

这已经计算了按下空格的次数。计数器的当前值由

读取
get(f,'UserData');

现在我们需要时间测量。这可以使用timer来完成。我们将其配置为在5秒后关闭,然后在基础工作区中确定新值。为此,我们需要一个回调函数timerCallback.m

function timerCallback(hObj,eventData)
    assignin('base','nSpace',get(gcf,'UserData'));
    delete(gcf);
    stop(hObj);
    delete(hObj);
end

t = timer('StartDelay',5,'TimerFcn',@timerCallback);
start(t);

就是这样:首先创建图形,创建计时器,5秒钟后,您可以在工作区中的变量nSpace中获得按键次数,窗口将关闭。