欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab等待按键响应,matlab中figure对象的按键响应

发布时间:2025/3/15 循环神经网络 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 matlab等待按键响应,matlab中figure对象的按键响应 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 

常用的有两个WindowKeyPressFcn和WindowKeyReleaseFcn,分别表示按下按键和释放按键的响应函数,两者调用形式上是一样的。

1、说明

以indowKeyPressFcn为例,按键响应无论当前焦点在figure上还是控件上,这一点和鼠标响应有所不同。它的响应函数需要至少两个参数,即发生按键的figure和event结构体。

even结构中包含了按键的各种信息,如下图

其中含义如下

Character表示按键实际会显示的字符,如shift+k,则此值为K,只按下shift,则此值为空;

Modifier是一个元胞类型,包含所按所有修饰键的名字,如按下ctrl+shift+a,则此值为{‘shift’ ,’control’};

Key表示按键的名称,如k,a,multiply,delete等。

2、简单的测试程序

%% 测试windowkeypressfcn响应函数

function keypress_test

clc

close all

clear all

%%

fig = figure;

plot(1:10)

set(fig,'windowkeypressfcn',@keypressfcn);

set(fig,'windowkeyreleasefcn',@keyreleasefcn);

function keypressfcn(h,evt)

fprintf('************press \n');

evt

fprintf('************ \n');

end

function keyreleasefcn(h,evt)

fprintf('************release \n');

evt

fprintf('************ \n');

end

end

要注意,由于不可能同时按下两个键,所以多按键是挨个响应的。如按下ctrl+shift+a时,输出打印如下

************press

evt =

Character: ''

Modifier: {'control'}

Key: 'control'

************

************press

evt =

Character: ''

Modifier: {'shift' 'control'}

Key: 'shift'

************

************press

evt =

Character: ''

Modifier: {'shift' 'control'}

Key: 'a'

************

************release

evt =

Character: ''

Modifier: {'shift' 'control'}

Key: 'a'

************

************release

evt =

Character: ''

Modifier: {'control'}

Key: 'shift'

************

************release

evt =

Character: ''

Modifier: {1x0 cell}

Key: 'control'

************

可知按下顺序为control—shift—a,释放顺序为a—shift—control。

3、通过按下按键,从停止位置继续运行

gcf是Current figure handle,调用get函数得到curent figure的CurrentCharacter属性。判断是否按下e键,从而从while中跳出去继续运行。程序如下所示

figure;

pause(1);

while 1

pause(0.1)

if strcmpi(get(gcf,'CurrentCharacter'),'e')

break;

end

end

 

总结

以上是生活随笔为你收集整理的matlab等待按键响应,matlab中figure对象的按键响应的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。