这些函数检索中最后一个键按下命令窗口,而无需显式地等待输入。有用的代码的情况下执行你想调查键盘输入,但你不想隐藏的数据。例如,mexKbhit可以用来中断一个墨西哥人函数的执行。
利用命令窗口的代码的关键按回调函数。每次一个键被按下时,一小块m代码运行保存关键事件。调用kbhit(或mexKbhit墨西哥人代码)将返回信息的关键事件,如ascii代码和相关的字符,以及是否控制、Alt和/或转变也进入了。
警告:mexKbhit kbhit调用matlab函数。CTRL + C不中断墨西哥人函数时,它会中断由墨西哥人函数调用matlab函数。因此,关键组合CTRL + C可能造成问题当你的墨西哥人mexKbhit执行的函数。
大确认Yair奥特曼在MATLAB新闻阅读器线程“java: keyListener添加到命令窗口”,提供所需的确切代码设置按键回调。
文件:
kbhit。m - matlab函数
mexKbhit。h -墨西哥人c文件头
mexKBhit。c -墨西哥人c文件,包括指令用于构建图书馆
mexKbhitDemo。c -演示代码使用墨西哥人库。
示例使用Matlab的函数:
kbhit (“init”);
流(1、5秒类型的东西…);
暂停(5);
关键= kbhit;流(“性格:% c \ n”键);
关键= kbhit(“结构”);流(“关键结构:\ n”);disp(关键)
[关键,ctrlc] = kbhit(“事件”);流(“关键事件:\ n”);disp(关键)
流(1,' Ctrl + c压?% d \ n ', ctrlc);
kbhit(停止)
墨西哥人库的使用例子:
clock_t t;
struct key k;
init_mexKbhit ();
t =时钟();
/ /轮询5秒
mexPrintf(“等待5秒……”);
mexEvalString (“drawnow”);
在((时钟()- t) / CLOCKS_PER_SEC < 5) {
k = mexKbhit ();
如果(k。特点= = ' C ' & & k。ctrl = = 1) {
mexPrintf (“Ctrl + c打断了!”);
打破;
}
}
引用作为
阿曼达(2023)。Non-wait检测键盘输入(包括墨西哥人实现)(//www.tatmou.com/matlabcentral/fileexchange/30622-non-wait-detection-of-keyboard-input-including-mex-implementation), MATLAB中央文件交换。检索。
mexKbhit /
版本 | 发表 | 发布说明 | |
---|---|---|---|
1.0.0.0 |