《MATLAB GUI設計入門與實戰(zhàn)》結合大量實例和具體案例分析,全面、系統(tǒng)地講解了MATLAB GUI設計從入門到實際應用的方方面面內容。書中對GUI各功能按鍵的使用做了極其細致的講解,這在同類圖書中是不多見的。
本書共10章,分為2篇。第1篇為MATLAB GUI設計入門,涵蓋的主要內容有MATLAB入門與提高、常用文件操作、MATLAB彈出窗口定義、Figure圖形句柄獲取、GUI界面按鈕功能介紹及GUI工具欄編輯器。第2篇為MATLAB GUI設計實戰(zhàn),涵蓋的主要內容有 GUI常用功能介紹、GUI的mcc編譯和dll生成、GUI音視頻數據處理及GUI經典案例分析與應用。
本書適合所有想全面學習MATALB GUI設計的人員閱讀,也適合各種使用MATALB進行開發(fā)的工程技術人員閱讀。對于相關高校的教學與研究,本書也是不可或缺的參考書。另外,對于MATLAB愛好者,本書也對網絡上討論的大部分疑難問題給出了解答,值得一讀。
15種常用處理方法:函數調用數據插值、數據擬合、線性方程求解、非線性方程求解、概率統(tǒng)計、圖像處理、Mat文件讀寫、Txt文件讀寫、Excel讀寫、音視頻讀寫、神經網絡窗口屬性設置、虛擬現(xiàn)實窗口屬性設置、Figure圖形句柄屬性設置、mcc編譯、dll編譯
8種GUI常用功能:文本數據讀取、圖像放大、文件加載、一軸多圖像顯示、回調函數使用、窗體矢量化設置、GUI間相互調用、GUI間數據傳遞
17種GUI高級應用:視頻處理、音頻處理、串口通信、概率密度統(tǒng)計、曲線線型及顏色更改、數據擬合、倒立擺系統(tǒng)、圖像顏色空間轉換、圖像灰度處理、圖像濾波去噪、圖像邊緣檢測、彩色圖像分割、醫(yī)學圖像分割、粒子群算法、遺傳算法、蟻群算法、Pareto多目標求解。
一分鐘了解本書精華內容
MATLAB入門與提高
MATLAB常用文件操作
MATLAB彈出窗口定義
Figure圖形句柄獲取
GUI界面按鈕功能介紹
GUI工具欄編輯器
GUI常用功能介紹
基于GUI的mcc編譯和dll生成
MATLAB生成dll供Visual Stdio2010調用
Visual Stdio2010生成dll供MATLAB調用
基于GUI音視頻數據處理
視頻處理
音頻處理
串口通信
GUI經典案例分析與應用
數據概率密度函數統(tǒng)計GUI設計
曲線線型及顏色更改GUI設計
數據擬合GUI設計
倒立擺系統(tǒng)GUI設計
圖像顏色空間轉換GUI設計
圖像灰度處理GUI設計
圖像濾波去噪GUI設計
圖像邊緣檢測GUI設計
彩色圖像分割GUI設計
醫(yī)學圖像分割GUI設計
粒子群算法模型求解GUI設計
遺傳算法模型求解GUI設計
蟻群算法TSP動態(tài)GUI設計
Pareto多目標求解GUI設計
MATLAB作為一款科學計算軟件廣泛地被科研人員所接受。其強大的數據計算能力、圖像可視化界面及代碼的可移植性受到了廣大用戶的認可。在圖形用戶界面(Graphical User Interface,GUI)設計領域,MATLAB同樣有著強大的設計能力,從而被廣泛地應用于GUI的設計。MATLAB GUI是一個可視化的軟件顯示平臺,一旦程序設計完成后,GUI采用定參數化的方法,用戶不需要修改程序設計部分,而只需要在GUI界面中修改設定的參數即可。因此GUI的人機互動性很好。
目前圖書市場上的MATLAB GUI設計圖書千篇一律,而且有些書中的相關程序設計采用了較難的GUI句柄結構體,導致讀者看不懂,學不會。為了讓讀者能夠全面、系統(tǒng)地學習MATLAB GUI設計,筆者進行了相關市場調研,了解了相關讀者的實際需求,有針對性地編寫了本書。本書全面、系統(tǒng)地講解了MATLAB GUI設計的方方面面知識,從基本的GUI按鈕功能到復雜的GUI設計,從腳本文件調試到GUI嵌套使用……而且書中采用了與GUI設計完全匹配腳本文件程序設計的思想,通過詳細介紹每一個案例中的每一個按鈕,讓讀者能夠真正掌握GUI算法。相信通過閱讀本書內容,讀者可以全面、深入地掌握MATLAB GUI設計。
本書特色
1. 提供“在線交流,有問必答”網絡互動答疑服務
國內最大的MATLABandSimulink技術交流平臺——MATLAB中文論壇(www.iLoveMatlab.
cn)聯(lián)合本書作者和編輯,一起為您提供與本書相關的問題解答和MATLAB技術支持服務,讓您獲得最佳的閱讀體驗。具體參與方式請詳細閱讀本書封底的說明。
2.內容講解不枯燥
本書結合MATLAB GUI設計的相關理論,通過大量具體實例和案例來講解MATLAB GUI設計,內容直觀而具體,閱讀起來不枯燥。
3.內容豐富,覆蓋面廣
本書基本包括了常見的GUI設計應用知識,具體包括MATLAB入門與提高、常用文件操作、MATLAB彈出窗口定義、Figure圖形句柄獲取、GUI界面按鈕功能介紹、GUI工具欄編輯器、GUI常用功能介紹、基于GUI的mcc編譯和dll生成、基于GUI音視頻數據處理及GUI經典案例分析與應用等。針對GUI全部功能命令、GUI處理數據擬合顯示、圖像顯示和智能算法優(yōu)化等,本書采用最簡單的GUI設計方法,讓初學者通過閱讀本書,也可以開發(fā)出適用于自己問題的GUI軟件。
4.循序漸進,由淺入深
本書結合市場廣大MATLAB新手以及愛好者的需求,從GUI基本知識切入,逐步深入,以使讀者真正掌握GUI設計理念。
5.真實案例,隨學隨用
本書是一本注重實踐的書。因此,有大量的篇幅用在了真實的MATLAB GUI設計與案例開發(fā)中。本書偏重于GUI功能應用,如字符串寫入和讀取、單選按鈕的使用、按鈕控件的應用以及軸顯示圖形應用等,讀者可以從這些實例中更加深刻地理解,同時只需要稍加修改這些案列,即可用于讀者正在應用的項目或課題上去,從而實現(xiàn)問題的求解。
6.語言通俗易懂,講解圖文并茂
本書用通俗易懂的語言講解各個知識點和算法案例,而且在講解過程中提供了大量的圖示幫助讀者直觀地理解所學知識。所以無論是新手,還是有一定基礎的讀者,都能順利地閱讀本書,從而提高自己的算法水平。
本書內容及體系結構
第1篇 MATLAB GUI設計入門(第1~6章)
本篇介紹了MATLAB GUI設計的相關入門知識,包括MATLAB入門與提高、常用文件操作、MATLAB彈出窗口定義、Figure圖形句柄獲取、GUI界面按鈕功能介紹及GUI工具欄編輯器等。本篇通過較為基本的GUI設計知識點引入,讀者可以應用這些基本功能解決相關的GUI設計問題。通過本篇內容的學習,也為第2篇的學習打下了堅實的基礎。
第2篇 MATLAB GUI設計實戰(zhàn)(第7~10章)
本篇涉及面較廣,涵蓋GUI的常用功能、基于GUI的mcc編譯和dll生成、基于GUI的音視頻數據處理及GUI經典案例分析與應用等。本篇通過GUI設計的逐步深入,給出了具體的案例分析,從而讓讀者能夠真正提高GUI設計的實際應用能力,真正掌握GUI設計應用核心,開發(fā)和設計出自己的可視化軟件界面。
本書讀者對象
* MATALB GUI設計初學者;
* MATLAB GUI設計提高人員;
* MATALB GUI設計愛好者;
* MATALB相關從業(yè)人員;
* 大中專院校的師生;
* 相關培訓學校的學員;
* MATLAB愛好者。
本書配套資源獲取方式
本書涉及的源程序及教學PPT需要讀者自行下載。讀者可以到清華大學出版社的網站(www.tup.com.cn)上搜索到本書頁面,然后在頁面上的“資源下載處”下載。讀者也可以登錄MATLAB中文論壇www.iLoveMatlab.cn,然后在論壇的“MATLAB讀書頻道:與作者面對面交流”版塊上找到本書頁面后下載。
本書作者
本書由余勝威、吳婷和羅建橋主筆編寫。其他參與編寫的人員有李小妹、周晨、桂鳳林、李然、李瑩、李玉青、倪欣欣、魏健藍、夏雨晴、蕭萬安、余慧利、袁歡、占俊、周艷梅、楊松梅、余月、張廣龍、張亮、張曉輝、張雪華、趙海波、趙偉、周成、朱森。
筆者結合自己在西南交通大學學習期間掌握的各類算法及出于對MATLAB的愛好,通過參閱大量的相關資料,精心準備,寫作了本書。本書寫作過程中筆者參考了一些自己平時積累的資料,部分資料可能來自于前輩們的著作。在此向這些前輩們表示深深的敬意和感謝!由于無法聯(lián)系到原作者,所以寫作時也無法一一征求意見。如果有不當之處,請聯(lián)系筆者或者本書編輯。
讀者閱讀本書的過程中若有疑問,可以在MATLAB中文論壇的本書交流版塊提問,也可以發(fā)郵件到bookservice2008@163.com,我們會及時答復。
編者
于成都
??
??
??
??
MATLAB GUI設計入門與實戰(zhàn)
前 言
·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 線性規(guī)劃求解
1.8.2 非線性規(guī)劃求解
1.9 概率統(tǒng)計
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 虛擬現(xiàn)實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 圖形區(qū)域填充顯示
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靜態(tài)文本
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執(zhí)行
6.15 本章小結
第2篇 MATLAB GUI設計實戰(zhàn)
第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 圖像運算與區(qū)域處理
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 串口發(fā)送數據
9.4 本章小結
第10章 GUI案例應用與設計
10.1 數據概率密度函數統(tǒng)計GUI設計
10.1.1 均勻分布rand()
10.1.2 正態(tài)分布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 對數正態(tài)分布lognrnd()
10.1.10 二項分布binornd()
10.1.11 幾何分布geornd()
10.2 曲線線型及顏色更改GUI設計
10.3 數據擬合GUI設計
10.4 倒立擺系統(tǒng)GUI設計
10.4.1 倒立擺系統(tǒng)分析
10.4.2 極點配置求解
10.4.3 LQR參數整定
10.4.4 PID參數整定
10.4.5 倒立擺系統(tǒng)GUI設計
10.4.6 利用閉環(huán)系統(tǒng)極點配置設計控制器
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 醫(yī)學圖像分割GUI設計
10.11 粒子群算法模型求解設計
10.12 遺傳算法模型求解GUI設計
10.13 蟻群算法TSP動態(tài)GUI設計
10.14 Pareto多目標求解GUI設計
10.15 本章小結