当前位置: 100md首页 > 电子书籍 > 资料下载2021 >
编号:46874
MATLABGUI设计学习手记.pdf
http://www.100md.com 2020年11月11日
第1页
第7页
第20页
第22页

    参见附件(11564KB,23页)。

    MATLABGUI设计学习手记

    本书在《MATLAB GUI设计学习手记》(第3版)的基础上,结合 MATLAB 2018b 的新特性,完善了全书知识架构,突出了GUI设计重点,对读者经常遇到的38个问题做了透彻的解答,提炼出13个专题并做了详尽的介绍,有需要的就快来吧

    相关内容部分预览

    

    书籍内容介绍

    本书在《MATLAB GUI设计学习手记》(第3版)的基础上,结合 MATLAB 2018b 的新特性,完善了全书知识架构,突出了GUI设计重点,对读者经常遇到的38个问题做了透彻的解答,提炼出13个专题并做了详尽的介绍,还对多达113个经典例题做了全面细致的讲解。全书由浅入深,全面系统地介绍了GUI设计的基础知识和高阶技巧,旨在使读者在较短时间内熟练掌握GUI设计的精要所在。点击此处可购买。

    本书首先介绍了GUI设计的预备知识;然后详细讲解了GUIDE对象的属性以及两种创建APP的方法:采用纯代码创建和采用GUIDE创建;之后针对新一代GUI开发平台App Designer,深入讲解了使用App Designer设计GUI的方法与步骤、重点与难点;同时介绍了串口编程等相关知识。书中穿插大量图表与注释,方便读者学习。

    本书适合需要在短时间内掌握MATLAB GUI设计的初学者,也可作为高等院校相关专业师生、科研与工程开发人员的参考手册。

    媒体评论

    “本书主要讲GUI知识,MATLAB基础知识讲得恰如其分,没有邋遢之感,这一点作者把握地很好。今天书刚到,看了一部分,其他很多书没有讲到的地方它也提到了,感觉很好。加上还可以与作者交流,真是太好了。买书前就去论坛看过了,作者很负责任,有问必答。希望更多的人受益。”

    ——当当hanzixingl985

    “这是一本非常不错的参考书,书中的很多实例都非常生动,很适合于读者自学。学习MATLAB GUI,如果只是看书、看属性的用法、函数的调用等会感到非常枯燥,有点看不下去。但是结合一些实例,就容易得多。介绍和叙述性的内容大致看一下,不用记,、认真读和做书中的例子和程序,不明白的地方再回头查阅内容,感觉学起来就不烦了。挺好!”

    ——当当网Lichenniang

    “这本书很好,我以前一般编程序都不做界面,因为工程需要,现在要做界面了,通过这本书,很快就上手了,现在已经基本能编出像样的软件了,主要是这本书里的都是作者的经验之谈,全是实战型的,比起那些泛泛之作,不是一个档次的。”

    ——当当网HolyHe

    “书写的相当不错,从中受益匪浅!书中没有多余的废话,没有重复的知识点,很好,物有所值!”——当当网 Wangzhanjun300“书里全部都是GUI相关知识,作者没有浪费纸张在MATLAB基础知识上,欣赏这个做法。学习MATLAB GUI的首选书籍,推荐……”

    ——卓越网Q-wangxin的评论

    “这本书真的很好,例子很多,而且非常有针对性,是一本不错的入门书!”

    ——卓越网huoyu999902的评论“这个是GUI的经典教程,虽然刚出,的确是经典了,帮了我毕业设计的大忙!!!毕业设计得中国地质大学的优加!”

    ——卓越网 Lizhen的评论

    “这本书很好哦,对GuI各个方面几乎都进行了讲解。值得好好品读。”

    ——卓越网tnl0000的评论“第一印象蛮好,至少排版看起来不烦!小弟有一点点的基础,会用MATLAB进行基本的数学计算,求导,积分,级数,傅里叶变换,矩阵及概率论懂点,所以一直以为MATLAB是科学计算器,但看到大飞做的几个有趣的玩意,才知道MATLAB还可以这么玩。”

    ——MATLAB中文论坛的makesure5(现为GUI版块版主)

    目录

    第1章 gui设计预备知识

    1.1 知识点归纳

    1.1.1 基本程序元素

    1.1.2 数据类型

    1.1.3 矩阵操作

    1.1.4 程序设计

    1.2 重难点讲解

    1.2.1 矩阵、向量、标量与数组

    1.2.2 数据类型转换

    1.3 专题分析

    专题1 编程风格

    专题2 代码优化

    专题3 m文件编程小技巧

    1.4 精选答疑

    问题1 单元数组占用的内存空间如何计算

    问题2 如何生成指定格式的常矩阵、字符串

    问题3 如何生成随机矩阵

    问题4 如何查找或删除数据中满足条件的元素

    问题5 如何给数组元素排序

    第2章 文件i/o

    2.1 知识点归纳

    2.1.1 高级文件i/o操作

    2.1.2 低级文件i/o操作

    2.2 重难点讲解

    2.2.1 二进制文件与文本文件

    2.2.2 sprintf与fprintf函数

    2.2.3 fscanf与textscan函数

    2.2.4 excel文件操作

    2.2.5 图像数据的操作

    2.2.6 低级文件i/o操作

    2.3 专题分析

    专题4 matlab读写文本文件

    2.4 精选答疑

    问题6 如何提取excel文件中的数据信息

    问题7 如何由图像生成字符矩阵

    问题8 如何循环播放wav音乐,并可以倍速/慢速播放、暂停/继续播放和停止播放

    问题9 如何读取文本和数值混合的文件中的数据

    问题10 如何将十六进制数转换为float值

    第3章 二维绘图简介

    3.1 知识点归纳

    3.1.1 常用的二维绘图函数

    3.1.2 绘图工具

    3.1.3 绘图注释

    3.2 重难点讲解

    3.2.1 二维绘图的相关函数

    3.2.2 tex字符

    3.3 精选答疑

    问题11 如何绘制几何曲线,例如矩形、圆、椭圆、双曲线等

    问题12 如何绘制数据的统计图

    问题13 如何绘制特殊的字符、表达式

    问题14 如何绘制网格图

    第4章 句柄图形系统

    4.1 知识点归纳

    4.1.1 句柄图形对象

    4.1.2 句柄图形对象的基本操作

    4.1.3 句柄图形对象的基本属性

    4.1.4 根对象

    4.1.5 图形窗口对象

    4.1.6 坐标轴对象

    4.1.7 核心图形对象

    4.1.8 uicontrol对象

    4.1.9 hggroup对象

    4.1.10 按钮组与面板

    4.1.11 自定义菜单与右键菜单

    4.1.12 工具栏与工具栏按钮

    4.1.13 uitable对象

    4.2 重难点分析

    4.2.1 句柄式图形对象的常用函数总结

    4.2.2 figure对象的几个重要属性

    4.2.3 axes对象的几个重要属性

    4.2.4 line对象的几个重要属性

    4.2.5 text对象的几个重要属性

    4.2.6 uitable对象的几个重要属性

    4.2.7 uicontrol对象中的text控件与核心图形对象中的text对象的比较

    4.2.8 对象的tag值与句柄值的概念比较(对guide创建的gui而言)

    4.2.9 uimenu与uieontextmenu对象

    4.3 专题分析

    专题5 超文本标记语言(html)在matlab中的应用

    专题6 表格设计

    专题7 坐标轴设计

    4.4 精彩答疑

    问题15 如何创建满足要求的line对象

    问题16 如何创建动态的gui对象

    问题17 如何为窗口设计背景图片

    问题18 如何定制窗口的菜单

    问题19 如何设计窗口菜单并编写回调函数

    问题20 如何采用ui控件实现简易的时钟

    问题21 如何实现文字的水平循环滚动效果

    问题22 如何构造和使用hggroup对象

    问题23 如何使窗口最大化、最小化、置顶和居中,如何在窗口中更换图标

    问题24 怎样利用uitable对象在列名、行名或单元格中输入上下标和希腊字母

    问题25 如何更改菜单项的字体大小,如何设置菜单项的字体颜色

    问题26 如何逐个输出坐标轴内的图形到单独的图片中

    第5章 预定义对话框

    5.1 知识点归纳

    5.1.1 文件打开对话框(uigetfile)

    5.1.2 文件保存对话框(uiputfile)

    5.1.3 颜色设置对话框(uisetcolor)

    5.1.4 字体设置对话框(uisetfont)

    5.1.5 页面设置对话框(pagesetupdlg)

    5.1.6 打印预览对话框(printpreview)

    5.1.7 打印设置对话框(printdlg)

    5.1.8 进度条(waitbar)

    5.1.9 菜单选择对话框(menu)

    5.1.10 普通对话框(dialog)

    5.1.11 错误对话框(errordlg)

    5.1.12 警告对话框(warndlg)

    5.1.13 帮助对话框(helpdlg)

    5.1.14 信息对话框(msgbox)

    5.1.15 提问对话框(questdlg)

    5.1.16 输入对话框(inputdlg)

    5.1.17 目录选择对话框(uigetdir)

    5.1.18 列表选择对话框(listdlg)

    5.2 重难点分析

    5.2.1 uigetfile

    5.2.2 uiputfile

    5.2.3 waitbar

    5.2.4 msgbox

    5.2.5 questdlg

    5.2.6 inputdlg

    5.2.7 listdlg

    5.3 专题分析

    专题8 预定义对话框在gui设计中的应用

    5.4 精选答疑

    问题27 如何制作一个嵌套到当前窗口内的进度条

    问题28 如何制作文件浏览器

    第6章 采用guide建立gui

    6.1 知识点归纳

    6.1.1 guide界面基本操作

    6.1.2 gui的m文件

    6.1.3 回调函数

    6.1.4 gui跨平台的兼容性设计

    6.1.5 断点调试和代码性能分析器

    6.1.6 采用guide创建gui的步骤

    6.1.7 触控按钮(push button)

    6.1.8 静态文本(static text)

    6.1.9 切换按钮(toggle button)

    6.1.10 滑动条(slider)

    6.1.11 单选按钮(radio button)

    6.1.12 可编辑文本(edit text)

    6.1.13 复选框(check box)

    6.1.14 列表框(listbox)

    6.1.15 弹起式菜单(pop-up menu)

    6.1.16 按钮组(buttongroup)

    6.1.17 面板(panel)

    6.1.18 表格(table)

    6.1.19 坐标轴(axes)

    6.2 重难点分析

    6.2.1 回调函数中的数据传递

    6.2.2 gui界面之间的数据传递

    6.2.3 keypressfcn与currentcharacter

    6.2.4 windowbuttondownfcn、callback与selectiontype

    6.3 专题分析

    专题9 gui对象之间的数据传递

    专题10 回调函数的应用实例

    6.4 精选答疑

    问题29 如何动态修改listbox的选项

    问题30 如何动态修改pop-up menu的选项

    第7章 activex控件

    7.1 知识点归纳

    7.1.1 led状态显示(led activex control)

    7.1.2 七段led数码显示控件(numeric led activex control)

    7.1.3 表盘显示控件(angular gauge activex control)

    7.1.4 线性测量控件(linear gauge activex control)

    7.1.5 滑动条控件(slider activex control)

    7.1.6 进度条控件(pereent activex control)

    7.1.7 选项卡控件(tabstrip control)

    7.2 重难点讲解

    7.2.1 led activex control概述

    7.2.2 numeric led activex control概述

    7.2.3 angular gauge activex control概述

    7.2.4 slider activex control概述

    7.3 专题分析

    专题11 tabstrip控件在gui设计中的应用

    7.4 精选答疑

    问题31 如何采用activex控件制作一个滑动条

    问题32 如何采用activex控件制作一个表盘

    问题33 如何采用activex控件制作一个数码显示器

    问题34 如何编写activex控件的回调函数

    第8章 定时器

    8.1 知识点归纳

    8.1.1 定时器对象及其属性

    8.1.2 定时器的执行模式

    8.1.3 定时器的回调函数

    8.1.4 定时器的操作函数

    8.1.5 定时器的操作步骤

    8.2 重难点分析

    8.2.1 timerfcn函数

    8.2.2 常用的定时器操作函数

    8.3 专题分析

    专题12 定时器在gui设计中的应用

    8.4 精选答疑

    问题35 如何让切换按钮定时弹起

    问题36 如何在菜单栏上创建万年历

    问题37 如何采用数码管显示当前的年月日和时刻

    问题38 如何实现——个流水灯

    第9章 串口编程

    9.1 知识点归纳

    9.1.1 串口概述

    9.1.2 串口对象的属性

    9.1.3 串口的基本操作

    9.1.4 串口i/o函数汇总

    9.2 重难点分析

    9.2.1 串口对象的创建

    9.2.2 重要的串口操作函数

    9.3 专题分析

    专题13 串口在gui设计中的应用

    第10章 mcc编译

    10.1 mcc编译

    10.2 mcc编译的局限性

    10.3 matlab保护文件(p文件)

    第11章 综合实例

    附 录 matlab gui设计常用函数

    作者简介

    罗华飞,湖北黄冈1983年2月出生,2008年硕士毕业于哈尔滨工程大学通信与信息 系统专业,现居重庆。目前擅长MATLAB GUI、WPF等界面设计,以及PIC单片机 程序开发、数据库系统开发。

    现在从事的是WPF软件设计工作,在四川航天电液控制有限公司从事电控产品配套软件开发工作.

    代表作有《MATLAB GUI设计学习手记》第一版和第 二版。

    序言

    本书是《MATLAB GUI设计学习手记》一书的第2次修订。本版在第2版的基础上,主要做了如下改进:

    ① 修正了所有已知的错误。

    ② 新增了“正则表达式”专题,详细讲解了如何通过正则表达式查找、匹配字符串。

    ③ 新增了“数据库编程”章节,详细论述了在MATLAB GUI中如何正确地使用数据库。

    ④ 删除了新版MATLAB支持性不好的“ActiveX控件”相关章节内容。

    ⑤ 大量使用表格,使本书内容更加直观易懂,并删除了部分不够经典的例题。

    ⑥ 进一步规范了代码的结构、可读性,优化了代码的效率。

    ⑦ 代码注释量达到了90%以上,代码更加通俗易懂。

    ⑧ 所有代码均在MATLAB 2013b中编写,并在MATLAB 2014a中测试运行通过。

    本书共分11章,除第3、7、9、10和11章外,每章依次由以下4节内容组成:知识点归纳、重难点讲解、专题分析和精选答疑。知识点归纳详细全面地介绍了本章的内容与知识点,容易理解错的知识点用【注意】标明,个别地方配以典型例题讲解;重难点讲解简要概括了本章的重点和难点,便于读者重点学习掌握;专题分析系统全面地对某个知识点进行专门讲解,达到一针见血的目的;精选答疑筛选出读者在学习过程中经常遇到的问题,配合习题进行解答。本书包含大量的例题,建议读者先自行完成例题,然后参考例题解析,配合代码的注释,分析比较程序代码。这样边学边练,可以进一步牢固地掌握GUI设计技巧和方法。

    第1章:GUI设计预备知识。本章主要介绍了MATLAB的基本程序元素、几种设计中经常使用的数据类型和矩阵操作函数,以及程序设计的5种句型(for、while循环结构、if、switch条件分支结构和try…catch结构)。以后以专题形式,分别详细讲解了编程风格、代码优化及编程技巧、正则表达式等内容。

    第2章:文件I/O。本章主要介绍了文件I/O操作的相关函数,分高级文件I/O和低级文件I/O两部分。高级文件I/O介绍了读写MAT、ASCII、TXT、Excel、图片和音频等文件的方法及相关函数;低级文件I/O介绍了读写二进制和文本文件的方法及相关函数。之后以专题形式,全面讲解了读写文本文件的技巧与方法。

    第3章:二维绘图简介。本章主要介绍了与GUI设计密切相关的线性二维绘图及其相关函数、绘图工具函数和绘图注释函数。二维绘图函数常用于GUI设计中的数据可视化模块。

    第4章:句柄图形系统。本章主要介绍了GUI对象的概念及其操作函数,各种GUI对象的纯代码创建方法、属性及含义。之后以专题形式,全面讲解了超文本标记语言(HTML)在MATLAB中的应用、表格设计及坐标轴设计。本章是GUI设计的重点内容,需要熟练掌握。

    第5章:预定义对话框。本章介绍了MATLAB环境下可调用的所有预定义对话框,包括公共对话框和自定义对话框。以后以专题形式,详细介绍了预定义对话框在GUI设计中的应用。预定义对话框使得GUI设计更加直观、灵活。

    第6章:采用GUIDE建立GUI。本章首先介绍了采用GUIDE建立GUI的方法、GUI的M文件构成、回调函数的分类以及回调函数的编写方法,然后举例介绍了GUIDE环境下GUI组件的使用方法。最后以专题形式,系统讲解了GUI对象之间的数据传递方法以及回调函数的应用实例。通过本章的学习,读者可以设计出精美的GUI界面,实现复杂的功能。本章是GUI设计的重点内容,需要熟练掌握。

    第7章:数据库编程。本章以SQL Server 2008数据库为例,讲解了MATLAB如何创建数据源、连接数据库,以及连接之后如何查询、处理、添加、更新、删除数据表中的数据。

    第8章:定时器。本章首先介绍了GUI设计中定时器的使用方法,然后以专题形式,举例讲解了定时器在GUI设计中的应用。熟练掌握定时器,可以实现更复杂、实时性高的GUI设计。

    第9章:串口编程。本章首先介绍了GUI设计中串口的使用方法,然后以专题形式,详细讲解了串口在GUI设计中的应用,并给出了一个串口通信助手的设计实例。

    第10章:mcc编译。本章简要介绍了GUI编译为独立可执行文件的方法、mcc编译的局限性和P文件的使用方法。

    第11章:综合实例。通过详细讲解密码登录框和科学计算器这两个实例,使读者深入、熟练地掌握采用MATAB GUI进行工程项目设计的精髓。每个实例都有详细的构思和源程序,源程序包含详细的注释说明。通过本章的练习,读者可以独立完成复杂的GUI设计工程项目,设计出精美、稳定、可靠的GUI。

    最后,附录部分列出了常用的GUI设计相关函数,供读者参考查询。

    本书在编写过程中,参考了大量的网络资料,也得到了math、lyqmath、makesure5、lskyp、谢中华、MATLAB学徒、myisland等很多论坛上朋友的热心帮助,没有他们的帮助,本书会缺少很多闪光点。感谢MATLAB中文论坛提供的珍贵资源!

    在此我还要特别感谢以下这些朋友:陈德芝、陈华、龙士斌、陈红玲、高文秀、陈伟、王欢、王修兵、王倩、余泽文、江礼元、苏秀华、汪俊、王万寿、姜明惠、李文光、刘建军、聂艳、王修珍、刘德明、刘天鹅、王家宝,他们在本书的编写过程中,不遗余力地协助我顺利完成了本书。

    另外,我要特别感谢一下我的妻子刘琴,在创作本书的过程中,她在背后给了我无微不至的照顾和鼓励。

    由于篇幅有限,还有大量答疑与案例不能一一在本书中讲解,详情见MATLAB中文论坛的相关版块。本书在MATLAB中文论坛设立了在线交流版块,作者会第一时间在论坛上答疑和勘误,也会根据读者要求上传更多案例和相关资料。希望这本不断“成长”的书能最大限度地解决您在学习、研究、工作中遇到的MATLAB GUI相关问题。

    由于作者水平有限,加之时间仓促,书中难免有不足与疏忽之处,敬请读者批评指正。

    MATLABGUI设计学习手记截图