《MATLAB GUI设计入门与实战》结合大量实例和具体案例分析,全面、系统地讲解了MATLAB GUI设计从入门到实际应用的方方面面内容。书中对GUI各功能按键的使用做了极其细致的讲解,这在同类图书中是不多见的。
本书共10章,分为2篇。第1篇为MATLAB GUI设计入门,涵盖的主要内容有MATLAB入门与提高、常用文件操作、MATLAB弹出窗口定义、Figure图形句柄获取、GUI界面按钮功能介绍及GUI工具栏编辑器。第2篇为MATLAB GUI设计实战,涵盖的主要内容有 GUI常用功能介绍、GUI的mcc编译和dll生成、GUI音视频数据处理及GUI经典案例分析与应用。
本书适合所有想全面学习MATALB GUI设计的人员阅读,也适合各种使用MATALB进行开发的工程技术人员阅读。对于相关高校的教学与研究,本书也是不可或缺的参考书。另外,对于MATLAB爱好者,本书也对网络上讨论的大部分疑难问题给出了解答,值得一读。
15种常用处理方法:函数调用数据插值、数据拟合、线性方程求解、非线性方程求解、概率统计、图像处理、Mat文件读写、Txt文件读写、Excel读写、音视频读写、神经网络窗口属性设置、虚拟现实窗口属性设置、Figure图形句柄属性设置、mcc编译、dll编译
8种GUI常用功能:文本数据读取、图像放大、文件加载、一轴多图像显示、回调函数使用、窗体矢量化设置、GUI间相互调用、GUI间数据传递
17种GUI高级应用:视频处理、音频处理、串口通信、概率密度统计、曲线线型及颜色更改、数据拟合、倒立摆系统、图像颜色空间转换、图像灰度处理、图像滤波去噪、图像边缘检测、彩色图像分割、医学图像分割、粒子群算法、遗传算法、蚁群算法、Pareto多目标求解。
一分钟了解本书精华内容
MATLAB入门与提高
MATLAB常用文件操作
MATLAB弹出窗口定义
Figure图形句柄获取
GUI界面按钮功能介绍
GUI工具栏编辑器
GUI常用功能介绍
基于GUI的mcc编译和dll生成
MATLAB生成dll供Visual Stdio2010调用
Visual Stdio2010生成dll供MATLAB调用
基于GUI音视频数据处理
视频处理
音频处理
串口通信
GUI经典案例分析与应用
数据概率密度函数统计GUI设计
曲线线型及颜色更改GUI设计
数据拟合GUI设计
倒立摆系统GUI设计
图像颜色空间转换GUI设计
图像灰度处理GUI设计
图像滤波去噪GUI设计
图像边缘检测GUI设计
彩色图像分割GUI设计
医学图像分割GUI设计
粒子群算法模型求解GUI设计
遗传算法模型求解GUI设计
蚁群算法TSP动态GUI设计
Pareto多目标求解GUI设计
MATLAB作为一款科学计算软件广泛地被科研人员所接受。其强大的数据计算能力、图像可视化界面及代码的可移植性受到了广大用户的认可。在图形用户界面(Graphical User Interface,GUI)设计领域,MATLAB同样有着强大的设计能力,从而被广泛地应用于GUI的设计。MATLAB GUI是一个可视化的软件显示平台,一旦程序设计完成后,GUI采用定参数化的方法,用户不需要修改程序设计部分,而只需要在GUI界面中修改设定的参数即可。因此GUI的人机互动性很好。
目前图书市场上的MATLAB GUI设计图书千篇一律,而且有些书中的相关程序设计采用了较难的GUI句柄结构体,导致读者看不懂,学不会。为了让读者能够全面、系统地学习MATLAB GUI设计,笔者进行了相关市场调研,了解了相关读者的实际需求,有针对性地编写了本书。本书全面、系统地讲解了MATLAB GUI设计的方方面面知识,从基本的GUI按钮功能到复杂的GUI设计,从脚本文件调试到GUI嵌套使用……而且书中采用了与GUI设计完全匹配脚本文件程序设计的思想,通过详细介绍每一个案例中的每一个按钮,让读者能够真正掌握GUI算法。相信通过阅读本书内容,读者可以全面、深入地掌握MATLAB GUI设计。
本书特色
1. 提供“在线交流,有问必答”网络互动答疑服务
国内最大的MATLABandSimulink技术交流平台——MATLAB中文论坛(www.iLoveMatlab.
cn)联合本书作者和编辑,一起为您提供与本书相关的问题解答和MATLAB技术支持服务,让您获得最佳的阅读体验。具体参与方式请详细阅读本书封底的说明。
2.内容讲解不枯燥
本书结合MATLAB GUI设计的相关理论,通过大量具体实例和案例来讲解MATLAB GUI设计,内容直观而具体,阅读起来不枯燥。
3.内容丰富,覆盖面广
本书基本包括了常见的GUI设计应用知识,具体包括MATLAB入门与提高、常用文件操作、MATLAB弹出窗口定义、Figure图形句柄获取、GUI界面按钮功能介绍、GUI工具栏编辑器、GUI常用功能介绍、基于GUI的mcc编译和dll生成、基于GUI音视频数据处理及GUI经典案例分析与应用等。针对GUI全部功能命令、GUI处理数据拟合显示、图像显示和智能算法优化等,本书采用最简单的GUI设计方法,让初学者通过阅读本书,也可以开发出适用于自己问题的GUI软件。
4.循序渐进,由浅入深
本书结合市场广大MATLAB新手以及爱好者的需求,从GUI基本知识切入,逐步深入,以使读者真正掌握GUI设计理念。
5.真实案例,随学随用
本书是一本注重实践的书。因此,有大量的篇幅用在了真实的MATLAB GUI设计与案例开发中。本书偏重于GUI功能应用,如字符串写入和读取、单选按钮的使用、按钮控件的应用以及轴显示图形应用等,读者可以从这些实例中更加深刻地理解,同时只需要稍加修改这些案列,即可用于读者正在应用的项目或课题上去,从而实现问题的求解。
6.语言通俗易懂,讲解图文并茂
本书用通俗易懂的语言讲解各个知识点和算法案例,而且在讲解过程中提供了大量的图示帮助读者直观地理解所学知识。所以无论是新手,还是有一定基础的读者,都能顺利地阅读本书,从而提高自己的算法水平。
本书内容及体系结构
第1篇 MATLAB GUI设计入门(第1~6章)
本篇介绍了MATLAB GUI设计的相关入门知识,包括MATLAB入门与提高、常用文件操作、MATLAB弹出窗口定义、Figure图形句柄获取、GUI界面按钮功能介绍及GUI工具栏编辑器等。本篇通过较为基本的GUI设计知识点引入,读者可以应用这些基本功能解决相关的GUI设计问题。通过本篇内容的学习,也为第2篇的学习打下了坚实的基础。
第2篇 MATLAB GUI设计实战(第7~10章)
本篇涉及面较广,涵盖GUI的常用功能、基于GUI的mcc编译和dll生成、基于GUI的音视频数据处理及GUI经典案例分析与应用等。本篇通过GUI设计的逐步深入,给出了具体的案例分析,从而让读者能够真正提高GUI设计的实际应用能力,真正掌握GUI设计应用核心,开发和设计出自己的可视化软件界面。
本书读者对象
* MATALB GUI设计初学者;
* MATLAB GUI设计提高人员;
* MATALB GUI设计爱好者;
* MATALB相关从业人员;
* 大中专院校的师生;
* 相关培训学校的学员;
* MATLAB爱好者。
本书配套资源获取方式
本书涉及的源程序及教学PPT需要读者自行下载。读者可以到清华大学出版社的网站(www.tup.com.cn)上搜索到本书页面,然后在页面上的“资源下载处”下载。读者也可以登录MATLAB中文论坛www.iLoveMatlab.cn,然后在论坛的“MATLAB读书频道:与作者面对面交流”版块上找到本书页面后下载。
本书作者
本书由余胜威、吴婷和罗建桥主笔编写。其他参与编写的人员有李小妹、周晨、桂凤林、李然、李莹、李玉青、倪欣欣、魏健蓝、夏雨晴、萧万安、余慧利、袁欢、占俊、周艳梅、杨松梅、余月、张广龙、张亮、张晓辉、张雪华、赵海波、赵伟、周成、朱森。
笔者结合自己在西南交通大学学习期间掌握的各类算法及出于对MATLAB的爱好,通过参阅大量的相关资料,精心准备,写作了本书。本书写作过程中笔者参考了一些自己平时积累的资料,部分资料可能来自于前辈们的著作。在此向这些前辈们表示深深的敬意和感谢!由于无法联系到原作者,所以写作时也无法一一征求意见。如果有不当之处,请联系笔者或者本书编辑。
读者阅读本书的过程中若有疑问,可以在MATLAB中文论坛的本书交流版块提问,也可以发邮件到bookservice2008@163.com,我们会及时答复。
编者
于成都
??
??
??
??
MATLAB GUI设计入门与实战
前 言
·IV·
·V·
第1篇 MATLAB GUI设计入门
第1章 MATLAB入门与提高
1.1 矩阵运算
1.1.1 数值矩阵运算
1.1.2 符号矩阵生成
1.1.3 元胞数组
1.1.4 结构体
1.1.5 数据类型转换
1.2 Figure图形属性设置
1.2.1 plot绘图
1.2.2 线型和颜色设置
1.2.3 图像网格化grid
1.2.4 曲面图绘制
1.2.5 特殊字符标记
1.3 函数及其调用
1.3.1 函数类型
1.3.2 函数参数传递
1.4 数据插值
1.4.1 一维数据插值
1.4.2 二维数据插值
1.5 数据拟合
1.5.1 小二乘拟合工具箱
1.5.2 多项式拟合
1.5.3 非线性拟合
1.6 微分方程求解
1.6.1 数值积分运算
1.6.2 微分方程数值解Ode
1.7 线性方程组求解
1.7.1 牛顿Newton迭代法
1.7.2 高斯-赛德尔Gauss-Seidel迭代法
1.7.3 雅克比Jacobi迭代法
1.8 非线性方程组求解
1.8.1 线性规划求解
1.8.2 非线性规划求解
1.9 概率统计
1.9.1 概率密度函数
1.9.2 随机变量特征分析
1.9.3 随机数概率密度函数绘图
1.9.4 蒙特卡洛Monte Carlo算法
1.10 图像处理
1.10.1 图像采样
1.10.2 图像数据类型
1.10.3 图像颜色空间
1.10.4 图像运算
1.11 本章小结
第2章 MATLAB常用文件操作
2.1 Mat文件的读取与写入
2.1.1 Mat文件的写入
2.1.2 Mat文件的读取
2.2 Txt文件的读取与写入
2.2.1 Txt文件的打开
2.2.2 Txt文件数据的导入
2.3 EXCEL文件的读取与写入
2.3.1 EXCEL数据的读取
2.3.2 EXCEL数据的写入
2.4 神经网络Net训练窗口的显示与关闭
2.5 虚拟现实Virtual reality窗口的显示与关闭
2.6 图像读取与保存
2.6.1 图像读取
2.6.2 图像保存
2.7 视频采集、保存与读取
2.7.1 视频的采集
2.7.2 视频的保存
2.7.3 视频的读取
2.8 音频采集、保存与读取
2.8.1 音频数据的采集
2.8.2 音频数据的保存
2.8.3 音频数据的读取
2.9 本章小结
第3章 MATLAB弹出窗口定义
3.1 文件打开操作uigetfile
3.2 路径选择对话框uigetdir
3.3 文件保存操作uiputfile
3.4 程序运行进度条waitbar
3.5 错误提示对话框errordlg
3.6 警告提示对话框warndlg
3.7 用户提示对话框msgbox
3.8 提问对话框questdlg
3.9 数据输入对话框inputdlg
3.10 本章小结
第4章 Figure图形句柄获取
4.1 Figure窗口功能
4.2 Figure窗口属性
4.2.1 设置Figure窗口属性
4.2.2 Figure函数使用
4.3 坐标轴设置
4.3.1 显示范围设置
4.3.2 显示方向设置
4.3.3 坐标轴刻度修改
4.4 Figure图形保存
4.4.1 带坐标轴保存
4.4.2 不带坐标轴保存
4.5 查找对象并删除对象
4.6 Text对象
4.6.1 图形添加注释
4.6.2 字体颜色
4.6.3 字体大小
4.6.4 字体粗细
4.6.5 字体倾斜角度
4.7 图形区域填充显示
4.8 Figure动画显示
4.9 自定义菜单设计
4.10 本章小结
第5章 GUI界面按钮功能介绍
5.1 GUI打开、关闭与保存
5.2 GUI按钮
5.3 GUI滑块
5.4 GUI单选按钮
5.5 GUI复选框
5.6 GUI可编辑文本
5.7 GUI静态文本
5.8 GUI弹出式菜单
5.9 GUI列表框
5.10 GUI切换按钮
5.11 GUI表
5.12 GUI轴
5.13 GUI面板
5.14 GUI按钮组
5.15 GUI ActiveX控件
5.16 本章小结
第6章 GUI工具栏编辑器
6.1 GUI工具栏启动
6.2 GUI新建
6.3 GUI打开
6.4 GUI保存
6.5 GUI剪切、复制和粘贴
6.6 GUI撤销与重做
6.7 GUI对齐对象
6.8 GUI菜单编辑器
6.9 GUI Tab键顺序编辑器
6.10 GUI工具栏编辑器
6.11 GUI编辑器
6.12 GUI属性检查器
6.13 GUI对象浏览器
6.14 GUI执行
6.15 本章小结
第2篇 MATLAB GUI设计实战
第7章 GUI常用功能介绍
7.1 GUI界面文本数据读取
7.2 GUI界面图形图像放大显示
7.3 GUI文件的加载
7.4 GUI一轴多幅图像显示
7.5 GUI回调函数脚本文件写入
7.6 GUI矢量化窗体设置
7.7 GUI中调用其他GUI
7.8 不同GUI数据传输
7.9 本章小结
第8章 基于GUI的mcc编译和dll生成
8.1 mcc编译
8.2 dll生成
8.2.1 MATLAB生成dll供Visual Stdio2010调用
8.2.2 Visual Stdio2010生成dll供MATLAB调用
8.3 加密文件pcode
8.4 本章小结
第9章 基于GUI音视频数据处理
9.1 视频处理
9.1.1 图像基础知识
9.1.2 图像运算与区域处理
9.1.3 视频图像获取
9.2 音频数据处理
9.3 串口通信
9.3.1 通信信道含义
9.3.2 串行通信基本概念
9.3.3 通信传输模式
9.3.4 串口通信参数
9.3.5 数据校验方法
9.3.6 虚拟串口安装
9.3.7 串口接收数据
9.3.8 串口发送数据
9.4 本章小结
第10章 GUI案例应用与设计
10.1 数据概率密度函数统计GUI设计
10.1.1 均匀分布rand()
10.1.2 正态分布randn()
10.1.3 卡方分布chi2rnd()
10.1.4 F分布frnd()
10.1.5 t分布trnd()
10.1.6 beta分布betarnd()
10.1.7 指数分布exprnd()
10.1.8 Gamma分布gamrnd()
10.1.9 对数正态分布lognrnd()
10.1.10 二项分布binornd()
10.1.11 几何分布geornd()
10.2 曲线线型及颜色更改GUI设计
10.3 数据拟合GUI设计
10.4 倒立摆系统GUI设计
10.4.1 倒立摆系统分析
10.4.2 极点配置求解
10.4.3 LQR参数整定
10.4.4 PID参数整定
10.4.5 倒立摆系统GUI设计
10.4.6 利用闭环系统极点配置设计控制器
10.4.7 利用LQR法设计控制器
10.4.8 利用PID法设计控制器
10.5 图像颜色空间转换GUI设计
10.6 图像灰度处理GUI设计
10.7 图像滤波去噪GUI设计
10.8 图像边缘检测GUI设计
10.8.1 Sobel算子
10.8.2 Prewitt算子
10.8.3 Canny算子
10.8.4 MATLAB自带边缘检测设计
10.8.5 用户自定义边缘检测设计
10.9 彩色图像分割GUI设计
10.10 医学图像分割GUI设计
10.11 粒子群算法模型求解设计
10.12 遗传算法模型求解GUI设计
10.13 蚁群算法TSP动态GUI设计
10.14 Pareto多目标求解GUI设计
10.15 本章小结