前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MATLAB程序开发器之一 GUIDE简介

MATLAB程序开发器之一 GUIDE简介

作者头像
巴山学长
发布2019-07-15 16:09:49
1.6K0
发布2019-07-15 16:09:49
举报
文章被收录于专栏:巴山学长

GUI是实现人机交互的中介,具有强大的功能,可以完成许多复杂的程序模块。想熟练快捷地使用它,需要具有一定的知识储备和必要的经验技巧。关于MATLAB GUI的入门,推荐使用MATLAB的帮助文档,仔细研读help文档是最好的办法。学习MATLAB GUI设计,除了需要了解对象和句柄等必要基础知识,还需熟悉各对象的基本属性和方法操作,知晓不同控件的合适使用条件及其特有的功能,并会采用不同的使用手段来实现相同功能的设计。学习GUI设计,必须掌握以下几点内容:

(1)莱单和控件

需要详细掌握菜单和控件。对于菜单,弄清楚菜单与菜单选项之间的关系和如何调用就可以。控件的使用主要是用好Callback属性。

(2)事件处理

需要重点掌握事件处理,理解函数回调的机理以及不同条件下回调的处理。使用独立回调函数技术,可以让复杂的回调变得简单。全局变量是在函数回调函数中经常使用的,包括Application 数据、GUI数据、UserData数据和global数据。

(3)GUI设计的原则和步骤

在设计GUI的时候,要注意一定的原则和步骤,分析界面所要实现的主要功能,明确设计任务,构思草图,设计界面和属性,编写对象的相应代码,实现控件的交互调用。另外,对于GUI在具体学科的应用,其学科的知识是基础,要掌握具体学科的相关知识的原理后,并用代码来实现,才能很好地结合MATLAB进行GUI编程。

(4)GUI实现方式的选择 最后考虑的问题是实现方式的选择

GUIDE还是全脚本?MATLAB自带的GUI设计工具GUIDE的优点是非常容易入手,风格很像VB,相关的控件可以随便拖来用,但GUIDE生成一个.fig文件的同时,还会生成一个包含了.fig中放置的控件的相关回调函数的M函数文件。这两个文件照理说是互相影响的,但是当你改动了其中一个文件的内容,比如在.fig中删掉一个原来的控件,但M脚本中对应的该控件的回调函数却仍然存在,虽说回调函数不会被调用,放在那没什么关系,但破坏了程序架构的美感,需要手动删掉这些代码。另外,GUIDE还无法直接创建核心对象。用全脚本实现最好的入门方法就是读代码,MATLAB就自带demo,包括按钮、单选按钮、框架、复选框、文本标签、可编辑文本框、滑动条、下拉菜单、列表框和切换按钮等控件的使用。阅读代码还能了解句柄函数的参数传递,从而更直观而快速地掌握GUI设计的技巧。采用GUIDE设计使MATLAB GUI设计更简单、省时。最好的办法是针对不同的情况来确定使用GUIDE还是脚本,还可以将其结合起来使用,从而发挥各自的优势。

(5)GUI编译与MCR(runtime)

写好的M文件或者可视化交互界面,想要打包(需要MCR才可以独立运行),在命令行键入deploytool,对应操作就好,打包的文件可以选择包含MCR,或者不包含,我建议此时不要包含,会很慢,如果需要MCR,一个选择是让用户在安装时自己下载安装(在安装过程中会自动索引MCR,没有找到会自己下载),另一个选择就是下载好备用,下载地址:https://www.mathworks.com/products/compiler/matlab-runtime.html,注意下载的版本与你matlab对应关系,另外就是安装MCR记得安装目录别出现中文。

(6)MATLAB开发程序的优缺点 它完全可以满足用户近乎所有实际操作,简单好上手,同等工作量VC需要一个星期可能matlab只需要1天,因为它集成了太多的算法,入门,需要什么查什么。但是,界面美观性较差,可移植性较差。

参考文献

[1] MATLAB GUI设计学习手记,罗华飞,2011

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云小微
腾讯云小微,是一套腾讯云的智能服务系统,也是一个智能服务开放平台,接入小微的硬件可以快速具备听觉和视觉感知能力,帮助智能硬件厂商实现语音人机互动和音视频服务能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档