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对象的按键响应相关推荐
- vue项目统一响应_vue中使用$set实现深入响应式原理
前言:其实使用vue的都知道,vue声明在data中的属性都是响应式的,也就是,我们在修改data中的属性时,一般页面都能实时更新.但是由于 JavaScript 的限制,Vue 不能检测数组和对象的 ...
- fiddler 自动响应数据保存_想测试HTTP响应不知道如何开展怎么办?
切换至Fiddler,点击测试小伙伴在日常工作中.特别是接口测试时,需要经常和HTTP协议打交道,其中服务器返回的响应数据是接口测试的重要组成部分,这就需要各位小伙伴熟练掌握HTTP响应的组成.如何修 ...
- matlab中删除照片_matlab中删除对象
删除对象 (1)delete:删除文件或对象图形 删除文件对象h的格式为:delete('filename')或delete filename 删除图形对象h的格式为:delete(h); 若要无条件 ...
- Matlab中figure灯光的设置
Matlab中figure灯光的设置,如下所示: light('color',option1,'style',option2,'position',option3) option1 可采用RGB三元组 ...
- MATLAB中figure的使用
MATLAB中figure的命名 当我们在MATLAB命令窗输入plot ( ) 时,MATLAB会自动生成一个名为Figure1的图窗,那么我们如何修改它的名字呢. 教程如下: 首先,我们在命令窗口 ...
- MATLAB中figure的问题
一.使MATLAB不显示figure界面: h=figure set(h,'Visible','off'); 二.MATLAB图片批量保存并分别命名 figure('visible','off'); ...
- 怎么把dll库写成MATLAB接口,如何在Matlab中应用动态连接库接口技术
1 引言 Matlab是当前应用最为广泛的数学软件,具有强大的数值计算.数据分析处理.系统 分析.图形显示甚至符号运算等功能.利用这一完整的数学平台,用户可以快速实现十分 复杂的功能,极大地提高工程分 ...
- 基于MATLAB程序设计的计算器(中)
今天我们就来分享一下如何用MATLAB中的guide框架设计一款简易+科学型的计算器,下次分享基于APP Designer框架的.其实,这款计算器去年这个时候已经做好了,没来得及分享. 简易计算器的一 ...
- matlab 斜坡信号响应,matlab斜坡输入响应
实验名称 实验报告线性系统时域响应分析 一. 实验目的 1.熟练掌握 step( )函数和 impulse( )函数的使用方法,研究线性系统在单位 阶跃.单位脉冲及单位斜坡函数...... 实验报告 ...
最新文章
- 部署Small Business Server 2003服务器之二
- java面向对象第一章
- Visual C#使用DirectX实现视频播放
- Java高并发编程:使用JDK5中同步技术的3个面试题
- 前端要给力之:代码可以有多烂?
- oraclde存储过程_Oracle存储过程详解(引用)+补充
- (七)nodejs循序渐进-模块系统(进阶篇)
- Mr.J--Vue之v-for全解析
- 《OpenGL编程指南》一第3章 OpenGL绘制方式
- 22 C#中的异常处理入门 try catch throw
- netty框架实现websocket达到高并发
- 开源数字媒体资产管理系统:Razuna安装方法
- 2021-06-13并发线程控制方法3种
- ​云原生:重新定义云时代的技术标准 | 凌云时刻
- yyyy-MM-dd HH:mm:ss和yyyy-MM-dd hh:mm:ss的区别
- Delphi视频教程
- 遗传算法图解_遗传算法图解指南
- 彩虹易支付最新版开源版源码分享
- 如何求字符串的长度c语言,C语言中求字符串长度的函数的几种实现方法
- 解决win10笔记本睡眠后无法唤醒甚至自动关机的问题
热门文章
- 硬盘盘符无法识别或已损坏,别急着格式化
- 网络运维现状及发展趋势分析
- Upma Xmac 测试 03
- 我的自我介绍以及决心书
- 套接字编程——基于UDP协议
- Nginx技巧:灵活的server_name,Nginx配置一个服务器多个站点 和 一个站点多个二级域名...
- 15个PHP库,你值得拥有!(下)
- 无法绑定由多个部分组成的标识符“System.Data.DataRowView”
- SQLServer2008 Transact_SQL语言基础实例
- NYOJ 904 search 二分查找