图像缩略图

键盘输入的非等待检测(包括MEX实现)

版本1.0.0.0(4.51 kB) 阿曼达
返回在命令窗口中按下的最后一个键,而无需明确等待输入。m-file&mex

1.9k下载

更新2011年3月03日

查看许可证

这些函数检索在命令窗口中按下的最后一个键,而无需明确等待输入。对于代码正在执行的情况,并且您希望轮询键盘输入,但您不希望隐藏的数字。例如,MEXKBHIT可用于在执行时中断MEX功能。

代码分布到命令窗口的键按回调函数。每次按下键时,都会运行一小块的M代码以保存密钥事件。对KBHIT(或MEX代码中的MEXKBHIT)的调用将返回有关关键事件的信息,例如ASCII代码和相关字符,以及还输入控件,alt和/或班次。

警告:Mexkbhit调用Matlab函数Kbhit。虽然Ctrl + C不会中断MEX函数,但它将中断MEX函数调用的MATLAB函数。因此,当MEX函数正在执行MEXKBHIT时,关键组合CTRL + C可能会导致问题。

在Matlab NewsReader线程“Java:添加密钥乐队到命令窗口”中的yair altman的大致密感谢,用于提供设置键按回调所需的确切代码。

文件:
KBHIT.M - MATLAB功能
mexkbhit.h - mex c文件标题
mexkbhit.c - mex c文件,包括构建图书馆的说明
mexkbhitdemo.c - 使用MEX库的演示代码。

MATLAB功能的示例使用:

Kbhit('init');
FPRINTF(1,'五秒钟键入......');
暂停(5);
键= kbhit;FPRINTF(1,'字符:%c \ n',键);
key = kbhit('struct');fprintf(1,'关键结构:\ n');DISP(键)
[key,ctrlc] = kbhit('事件');FPRINTF(1,'关键事件:\ n');DISP(键)
FPRINTF(1,'Ctrl + C按下?%d \ n',ctrlc);
Kbhit('停止')

Mex Library的示例使用:

clock_t t;
struct键k;
init_mexkbhit();
t = clock();
//民意调查5秒
Mexprintf(“等待5秒......”);
mexevalstring(“绘制”);
而((时钟() - t)/ clocks_per_sec <5){
k = mexkbhit();
if(k.character =='c'&& k.ctrl == 1){
mexprintf(“由Ctrl + C中断!”);
休息;
}
}

引用

阿曼达(2021年)。键盘输入的非等待检测(包括MEX实现)(//www.tianjin-qmedu.com/matlabcentral/fileexchange/30622-non-wait-detection-of-keyboard-input-including-mex-implementation),Matlab中央文件交换。检索到

Matlab释放兼容性
使用R2008B创建
兼容任何释放
平台兼容性
视窗 苹果系统 Linux.

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!

mexkbhit /