有一段时间没写博客,一周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的更多相关文章

  1. matlab GUI界面编程总结

    去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab ...

  2. 转载:关于Matlab GUI的一些经验总结

    去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab ...

  3. Matlab GUI设计中的一些常用函数

    Matlab GUI常用函数总结 % — 文件的打开.读取和关闭% — 文件的保存% — 创建一个进度条% — 在名为display的axes显示图像,然后关闭% — 把数字转化为时间格式% — ch ...

  4. Matlab GUI界面

    做SVD的时候,看学姐的demo,用到了matlab的GUI,感兴趣就自己学了一下: 从简单的例子说起吧. 创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添加控件     ...

  5. matlab GUI保存axes(坐标轴)上的图像

    1.默认方式 matlab GUI默认菜单的保存图像默认为保持全部GUI,包括使用" 菜单->编辑->复制图形". 2 保存可见区域 2.1 代码 [FileName, ...

  6. [学习一个] Matlab GUI 学习笔记 Ⅰ

    Matlab GUI 学习笔记 Ⅰ 1. Foreword Matlab 是严格意义上的编程语言吗?曾经有人告诉我他是通过 Matlab 学会了面对对象编程,我是不信的,但这依然不妨碍它在特殊领域的强 ...

  7. Matlab——GUI初涉

    Matlab——GUI初涉 MATLAB GUI教学视频0:GUI中的基本操作—在线播放—优酷网,视频高清在线观看http://v.youku.com/v_show/id_XMjM2Mjk0MjM2. ...

  8. Matlab GUI读入图片

    % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, han ...

  9. 如何用MATLAB GUI创建图形用户界面

    MATLAB是众多理工科学生及工程师经常使用的一款数学软件,除了可以实现数据处理,矩阵运算.函数绘制等功能外,MATLAB还可以实现图形用户界面的设计. 下面介绍如何让小白也能用GUI创建最基本的用户 ...

随机推荐

  1. Entity Framework(四):使用DbModelBuilder API创建表结构

    DbContext类有一个OnModelCreating方法,它用于流利地配置领域类到数据库模式的映射.下面我们以fluent API的方式来定义映射.首先,先将Product类注释掉,重新编写该类, ...

  2. java----EL表达式

     Java Web中的EL(表达式语言)详解 表达式语言(Expression Language)简称EL,它是JSP2.0中引入的一个新内容.通过EL可以简化在JSP开发中对对象的引用,从而规范页面 ...

  3. Merging an upstream repository into your fork

    1. Check out the branch you wish to merge to. Usually, you will merge into master. $ git checkout ma ...

  4. c# http请求添加cookie

    CookieCollection cookList = new CookieCollection(); cookList.Add(new Cookie("cf_clearance" ...

  5. (转)word尾注引文添加方式及相关问题

    word引文添加方式:http://www.office68.com/word/word-reference-add.html word通配符:http://www.3lian.com/edu/201 ...

  6. 上传Docker镜像到阿里云

      1.配置阿里云的镜像加速器:https://cr.console.aliyun.com/#/accelerator 2.命令行登录到阿里云的doker仓库,--username为阿里云的用户名 d ...

  7. MySQL------如何卸载与安装

    1.安装 转载:http://wenda.so.com/q/1471475177723102?src=140 2.卸载 转载:http://jingyan.baidu.com/article/3d69 ...

  8. 剑指 offer set 21 圆圈中最后剩下的数字

    思路 1. 经典解法是用环形链表模拟圆圈, 然后每次减少一个节点. 时间复杂度为 o(mn), 空间复杂度为 o(n) 2. 转化成数学问题, 递推公式决定下一个元素. 时间复杂度为 o(n), 空间 ...

  9. Linux网络流量控制工具—Netem

    第一篇:概念篇 Netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽.传输延迟.丢包等等情况.使 ...

  10. erase操作

    #include<iostream> #include <vector> int main() { std::vector<int> vec; vec.push_b ...