matlab中可以通过Kbname来识别键盘上的键。在写范式的时候,遇到一个问题,我想用大键盘上排成一行的数字按键评分,比如 Kbname('1') 表示键盘上的数字1,但是这种写法只能识别小键盘上的数字,无法达到我的目的,网上也没找到相关的资料,于是自己尝试。在尝试的过程中,我注意到大键盘上的数字shift之后是一些标点符号,于是我分别尝试了两种思路:
1)Kbname('数字对应的标点符号'),比如 1 对应的是 !,那么尝试用Kbname('!')代表数字1;
2)Kbname('数字+数字对应的标点符号'),比如 1 对应的是 !,那么尝试用Kbname('1!')代表数字1;
经过实际操作,思路2是对的。下面是代码,根据注释其他键位以此类推。
% space --- 空格
% 1! --- 大键盘上的 1
% 1 --- 小键盘上的 1while true
[keyIsDown, secs, keyCode] = KbCheck;if keyIsDown && keyCode(KbName('2@')) == 1 break;end
end