有一段时间没写博客,一周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. Android基础总结(八)Service

    服务两种启动方式(掌握) startService 开始服务,会使进程变成为服务进程 启动服务的activity和服务不再有一毛钱关系 bindService 绑定服务不会使进程变成服务进程 绑定服务 ...

  2. KMP + 求最小循环节 --- POJ 2406 Power Strings

    Power Strings Problem's Link: http://poj.org/problem?id=2406 Mean: 给你一个字符串,让你求这个字符串最多能够被表示成最小循环节重复多少 ...

  3. 【NOIP模拟题】“与”(位运算)

    因为是与运算,所以我们可以贪心地每次找最高位的,将他们加入到新的序列中,然后每一次在这个新的序列继续找下一个位. 然后最后序列中任意两个的与运算的值都是一样的且是最大的. #include <c ...

  4. 《网络编程》非堵塞 I/O

    概述 在前面文章中,我们介绍了 I/O 的五种模型<I/O 模型>.从那里能够知道,非堵塞式的 I/O 是进程调用 I/O 操作时.若数据未准备就绪.则马上返回一个 EWOULDBLOCK ...

  5. Kivy: 用于NUI开发的跨平台Python框架

    http://top.jobbole.com/9915/ http://kivy.org/

  6. 用原生Canvas写贪吃蛇及问题解决

    为了学习Canvas,写了这个小游戏贪吃蛇供自己和大家学习 Github: https://github.com/zhiyishou/Gsnake Play On: http://zhiyishou. ...

  7. log4net写txt日志

    1.配置: <configSections>节点下添加: <section name="log4net" type="log4net.Config.Lo ...

  8. POJ 3468 A Simple Problem with Integers(线段树功能:区间加减区间求和)

    题目链接:http://poj.org/problem?id=3468 A Simple Problem with Integers Time Limit: 5000MS   Memory Limit ...

  9. 使用 composer 下载更新卸载类库

    前言:要下载什么包,可以去 https://packagist.org/ 找一下包名及其版本信息 1)配置composer.json文件,并使用composer install 命令下载类包,下面以下 ...

  10. 开发环境eclipse for Mac 下的常用快捷键汇总(基本参照Win系,将Ctrl换为Command)

    最近迁移开发环境到Mac下,在豆瓣看到一个常用快捷键,去掉废话直接上干货 Command + O:显示大纲 Command + 1:快速修复 Command + D:删除当前行 Command + O ...