Matlab GUI memo
有一段时间没写博客,一周4篇文章都坚持不下来,不知道写哪个方面的内容,写研究相关就怕论文查重查到,其他方面也没太多时间去学。还是花时间多学点其他方面。废话到此,很早就做过matlab gui相关,现在想做一个论文的系统演示,很多东西又忘了又没有记录,再熟悉一次又得花大功夫,所以在这里系统的记录下。
一、创建GUI的方式
学习GUI最好的材料当然是matlab的官方文档了,本文也是按照相应的方式的来写的。GUI就是简单的用户界面和对这些界面元素的响应,所以主要包含两块内容一是界面的设计,二是对控件元素的代码的编写。
创建GUI的方式有两种
1)使用GUIDE
这个就比较简单,就是在一个交互界面上拖动元素,排列组合生成界面,然后对每个控件写上相应的响应代码(callback函数)。下面展示了在matlab R2013上一个交互创建GUI的界面。左边是各种可以利用的控件,而右边是一整块可以画图的画布,可以把各种控件放在上面。保存fig后会自动生成对应控件的callback函数。

2)编码的方式
写一个程序文件定义好每个控件的属性和行为,当用户运行这个文件时,matlab会创建一个图形界面。并生成相应的组件,能够处理用户的交互。运行并不会每次保存界面图形而是每次运行都是重新创建一个。入门的推荐使用第一种方式。
二、简单的例子

这个是matlab提供的一个例子,打开guide界面后,显示如上,为了能够将控件的文本显示在控件上,通过设置File > Preferences > GUIDE. 选择 Show names in component palette. 点击 OK.就可以了

这样控件的名称就会在底下显示出来,更直观和容易选择。按照simple_GUI 上的提示将所有控件添加到界面上,可以通过属性窗口来设置属性。比如更改名字,改变大小等。也可以通过对齐方式来对齐控件,使布局更加美观整洁。
三、为常见部件编码
为部件编写的代码主要在回调函数里编写。所以首先要对回调函数有个了解。
3.1 回调函数
回调函数是你为GUI特定部件写的函数。回调函数能够通过响应部件上的事件来控制部件的行为。这些行为如:按下按键,选择菜单等。这就是所谓事件驱动编程。当你创建好GUI保存之后就会自动生成对应的一系列回调函数,这些回调函数都是只有一个函数名和参数列表,里面的代码需要自己编写。那要如何找到某个部件对应的callback函数,只要在GUI界面,右键选择view callback即可。
3.2 编写回调函数
编写回调函数就如同一般函数那样编写,你在某个按键下编写的回调函数就是当这一按键按下时会执行的一些代码。注意一点,如果某个变量想要在其他的回调函数里面使用,那么可以通过设置这一变量为global全局变量。这一变量在其他函数里就可以直接使用。取得某个部件的值,比如Check Box,Edit Text,Radio Button等。主要是通过取得部件的句柄来实现的。
如
button_state = get(hObject,'Value');
user_string = get(hObject,'String');
等
Matlab GUI memo的更多相关文章
- matlab GUI界面编程总结
去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab ...
- 转载:关于Matlab GUI的一些经验总结
去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab ...
- Matlab GUI设计中的一些常用函数
Matlab GUI常用函数总结 % — 文件的打开.读取和关闭% — 文件的保存% — 创建一个进度条% — 在名为display的axes显示图像,然后关闭% — 把数字转化为时间格式% — ch ...
- Matlab GUI界面
做SVD的时候,看学姐的demo,用到了matlab的GUI,感兴趣就自己学了一下: 从简单的例子说起吧. 创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添加控件 ...
- matlab GUI保存axes(坐标轴)上的图像
1.默认方式 matlab GUI默认菜单的保存图像默认为保持全部GUI,包括使用" 菜单->编辑->复制图形". 2 保存可见区域 2.1 代码 [FileName, ...
- [学习一个] Matlab GUI 学习笔记 Ⅰ
Matlab GUI 学习笔记 Ⅰ 1. Foreword Matlab 是严格意义上的编程语言吗?曾经有人告诉我他是通过 Matlab 学会了面对对象编程,我是不信的,但这依然不妨碍它在特殊领域的强 ...
- Matlab——GUI初涉
Matlab——GUI初涉 MATLAB GUI教学视频0:GUI中的基本操作—在线播放—优酷网,视频高清在线观看http://v.youku.com/v_show/id_XMjM2Mjk0MjM2. ...
- Matlab GUI读入图片
% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, han ...
- 如何用MATLAB GUI创建图形用户界面
MATLAB是众多理工科学生及工程师经常使用的一款数学软件,除了可以实现数据处理,矩阵运算.函数绘制等功能外,MATLAB还可以实现图形用户界面的设计. 下面介绍如何让小白也能用GUI创建最基本的用户 ...
随机推荐
- 新手入门贴:史上最全Web端即时通讯技术原理详解
关于IM(InstantMessaging)即时通信类软件(如微信,QQ),大多数都是桌面应用程序或者native应用较为流行,而网上关于原生IM或桌面IM软件类的通信原理介绍也较多,此处不再赘述.而 ...
- 树形dp - BNU 39572 Usoperanto
Usoperanto Problem's Link Mean: 给定n个单词,每个单词可以作为形容词来修饰其他单词. 如果当前单词Wi修饰Wj,那么这个修饰的代价是:Wi~Wj之间的单词的总长度. 你 ...
- 一般来说,主方法main()结束的时候线程结束
suspend()是将一个运行时状态进入阻塞状态(注意不释放锁标记).恢复状态的时候用resume().Stop()指释放全部. 这几个方法上都有Deprecated标志,说明这个方法不推荐使用. 一 ...
- 【BZOJ】1629: [Usaco2007 Demo]Cow Acrobats(贪心+排序)
http://www.lydsy.com/JudgeOnline/problem.php?id=1629 这题我想了很久都没想出来啊... 其实任意两头相邻的牛交换顺序对其它牛是没有影响的.. 那么我 ...
- 响应式布局中为什么要使用em设置字体大小而不用px
px像素(Pixel).相对长度单位.像素px是相对于不同设备显示器屏幕分辨率(pad/phone/pc)而言的.(引自CSS2.0手册) 1em指的是一个字体的大小,它会继承父级元素的字体大小,因此 ...
- php 将一个字符串分割为组成它的字符
问: php里如何将一个字符串分割为组成它的字符? 比如hello -> [h, e, l, l, o] 以下有三种方法: 这是需要被分割的字符串: $str = 'Hello小样'; ...
- WinForm------如何打开子窗体的同时关闭父窗体
方法: 如何打开子窗体的同时关闭父窗体 this.Hide(); new Frm_Management().ShowDialog(); this.Close();
- 剑指 offer set 24 扑克牌的顺子
题目 从扑克牌中任意抽取出 5 张牌, 判断是不是顺子, 并且大小王可以看成任意的数字 思路 1. 把大小王当做 0 插入到数组中, 然后对数组排序 2. 统计相邻两个数之间的空隙数, 若空隙数大于 ...
- 第十四篇:Apriori 关联分析算法原理分析与代码实现
前言 想必大家都听过数据挖掘领域那个经典的故事 - "啤酒与尿布" 的故事. 那么,具体是怎么从海量销售信息中挖掘出啤酒和尿布之间的关系呢? 这就是关联分析所要完成的任务了. 本文 ...
- Zabbix-3.0.3实现微信(WeChat)告警
导读 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告 ...