學(xué)習(xí)和掌握科學(xué)計(jì)算應(yīng)用軟件——MATLAB核心模塊的應(yīng)用是利用該軟件開展控制系統(tǒng)設(shè)計(jì)與分析、數(shù)字信號(hào)與數(shù)字圖像處理、通信系統(tǒng)設(shè)計(jì)與仿真、金融數(shù)學(xué)分析等應(yīng)用的基礎(chǔ)。本書重點(diǎn)介紹了該軟件的核心基礎(chǔ)內(nèi)容,包括MATLAB產(chǎn)品的體系,MATLAB桌面工具的使用方法,M語(yǔ)言編程方法,MATLAB進(jìn)行數(shù)據(jù)可視化、分析處理的基本步驟等。
本書凝聚了作者從業(yè)多年來(lái)利用MATLAB解決各種工程問(wèn)題時(shí)積累的應(yīng)用經(jīng)驗(yàn)。全書僅圍繞MATLAB核心模塊的基礎(chǔ)內(nèi)容展開,是學(xué)習(xí)和掌握MATLAB軟件最基礎(chǔ)的書籍,書中內(nèi)容翔實(shí)、全面,用詞簡(jiǎn)單、扼要,示例豐富,可以作為MATLAB軟件的培訓(xùn)教材,也可以作為自學(xué)MATLAB應(yīng)用軟件的入門教程,還可以作為已經(jīng)基本掌握MATLAB使用方法的工程技術(shù)人員提高M(jìn)ATLAB使用技巧的參考書。
初夏的上午時(shí)分,冉冉升起的艷陽(yáng)正炙烤著北京CBD的寫字樓,意式濃縮咖啡的醇香尚未散去,筆者的個(gè)人郵箱突然收到了一封來(lái)自某大學(xué)老師的電子郵件,咨詢是否有計(jì)劃重新編寫《MATLAB基礎(chǔ)與編程入門》。與此同時(shí),西安電子科技大學(xué)出版社編輯的一通電話也問(wèn)了我同樣的問(wèn)題,被稱呼為“張老師”還多少有些不習(xí)慣?磥(lái)這本書的確需要根據(jù)新版本的MATLAB軟件進(jìn)行再一次的升級(jí)更新了。
筆者接觸MATLAB軟件還是在大學(xué)三年級(jí)的“自動(dòng)控制原理”課程上,簡(jiǎn)單的幾個(gè)命令就可以準(zhǔn)確地繪制奈奎斯特曲線、波特圖,完成復(fù)雜的矩陣運(yùn)算,那時(shí)幾張1.44英寸(注:1英寸=2.54厘米)的軟盤就足夠容納所有的MATLAB安裝程序包。到了今天,完整地將MATLAB軟件安裝到計(jì)算機(jī)內(nèi)需要占據(jù)十幾吉字節(jié)的存儲(chǔ)空間。MATLAB應(yīng)用軟件體系龐大,功能豐富,包含眾多工具,掌握其功能和工具的使用成為MATLAB初學(xué)者的最大障礙。應(yīng)用MATLAB產(chǎn)品需要首先掌握其核心基礎(chǔ)內(nèi)容,包含MATLAB的產(chǎn)品體系、桌面工具,M語(yǔ)言編程,數(shù)據(jù)可視化以及數(shù)據(jù)分析的基本步驟和流程等,實(shí)際上,上述大部分功能都由MATLAB核心模塊來(lái)提供,并不涉及具體的專業(yè)產(chǎn)品或者工具箱。利用這些基礎(chǔ)功能,再結(jié)合自身的專業(yè)知識(shí)就可以解決很多領(lǐng)域的科學(xué)或者工程問(wèn)題。
本書是學(xué)習(xí)、掌握MATLAB軟件的基礎(chǔ)書籍,第一版于2004年2月出版,之后更新出版了第二版和第三版。盡管這些年來(lái)MATLAB軟件每年都在升級(jí),但是很多MATLAB用戶往往會(huì)選擇自己最熟悉的那個(gè)版本軟件,只有初學(xué)者才更愿意追逐產(chǎn)品的更新,使用最新版的軟件,體會(huì)最新的功能。每一次MATLAB軟件的升級(jí)都或多或少引入了一些新的功能,并且淘汰了一部分過(guò)時(shí)的內(nèi)容。很多摯友希望看到本書能夠反映MATLAB的新版本、新功能,于是,基于MATLAB Release 2020a的本書誕生了。
本書的基本結(jié)構(gòu)與前面幾個(gè)版本保持一致,圍繞MATLAB 9.80版的核心模塊展開,介紹了MATLAB數(shù)據(jù)類型與編程基礎(chǔ)、數(shù)據(jù)圖形的可視化功能和各種桌面工具的使用方法。與第三版相比較,本書刪除了部分已經(jīng)徹底淘汰的功能的介紹,修正了文字描述方面的錯(cuò)誤,加入了部分新函數(shù)、新功能的描述,并且在對(duì)應(yīng)的章節(jié)中介紹了新舊版本軟件的變化,以保持對(duì)舊版本書籍及軟件的向下兼容性。
本書從第一版到現(xiàn)在,均得到西安電子科技大學(xué)出版社毛紅兵副總編輯的大力支持,在這里對(duì)她和出版社的其他同志表示衷心的感謝。感謝母校—北京航空航天大學(xué)對(duì)筆者的培養(yǎng),從“艱苦樸素,勤奮好學(xué),全面發(fā)展,勇于創(chuàng)新”到“德才兼?zhèn)洌泻弦弧,從自?dòng)化學(xué)院到光電學(xué)院再到生物與醫(yī)學(xué)工程學(xué)院,難忘主樓243、主南116、六號(hào)樓、新主樓和逸夫科學(xué)館里的日日夜夜。感謝多年的同學(xué)、同事、好友以及師長(zhǎng),與你們一同學(xué)習(xí)、鉆研MATLAB軟件,學(xué)習(xí)和研究實(shí)時(shí)仿真、混合試驗(yàn)技術(shù)的日子讓我終身受益。更要感謝我的父母、兄長(zhǎng)和妻兒,我花費(fèi)了太多時(shí)間在計(jì)算機(jī)前,沒能很好地盡到自己應(yīng)盡的義務(wù)和責(zé)任,如果沒有家人對(duì)我的關(guān)心、支持和鼓勵(lì),也就沒有今天本書的如期出版。
由于時(shí)間倉(cāng)促,書中難免存在一些不足之處,誠(chéng)望廣大讀者諒解,并且希望讀者提出寶貴的意見和建議,以便再版時(shí)改進(jìn)。如果需要獲得本書所涉及的示例源代碼、電子課件,或者對(duì)本書有任何疑問(wèn)以及想法,可以通過(guò)電子郵件與作者直接聯(lián)系。作者電子信箱為zhang_way@163.com。
作 者
2022年1月
第1章 MATLAB桌面環(huán)境 1
1.1 MATLAB產(chǎn)品族簡(jiǎn)介 1
1.1.1 MATLAB的產(chǎn)品體系 2
1.1.2 Simulink簡(jiǎn)介 6
1.1.3 Stateflow簡(jiǎn)介 8
1.1.4 自動(dòng)化代碼生成工具 9
1.2 MATLAB的桌面環(huán)境 11
1.2.1 MATLAB用戶界面 12
1.2.2 MATLAB用戶界面布局 15
1.2.3 修改窗體文本樣式 18
1.3 Command Window和MATLAB
命令 20
1.3.1 在命令行窗體中執(zhí)行命令 20
1.3.2 設(shè)置命令行窗體的數(shù)值
顯示格式 23
1.3.3 常用的命令行窗體控制命令 25
1.4 Command History和歷史記錄 28
1.4.1 命令行歷史窗體 28
1.4.2 diary命令 32
1.5 使用幫助和Function Browser 34
1.5.1 使用在線幫助 34
1.5.2 使用窗體幫助 37
1.5.3 函數(shù)瀏覽器 40
1.5.4 操作幫助的函數(shù) 42
1.6 Current Folder和搜索路徑 43
1.6.1 當(dāng)前路徑察看器 43
1.6.2 工作目錄 45
1.6.3 搜索路徑 47
1.7 使用MATLAB命令收藏 50
本章小結(jié) 55
練習(xí) 56
第2章 矩陣和數(shù)組 57
2.1 向量、矩陣和數(shù)組的基本概念 57
2.2 創(chuàng)建向量 59
2.3 創(chuàng)建矩陣 62
2.3.1 直接輸入法 62
2.3.2 工作空間瀏覽器 63
2.3.3 變量編輯器 66
2.4 索引 70
2.4.1 向量元素的訪問(wèn) 70
2.4.2 矩陣元素的訪問(wèn) 72
2.5 基本運(yùn)算 74
2.5.1 矩陣生成函數(shù) 75
2.5.2 基本矩陣運(yùn)算 76
2.5.3 基本數(shù)組運(yùn)算 78
2.5.4 基本數(shù)學(xué)函數(shù) 82
2.5.5 矩陣(數(shù)組)操作函數(shù) 84
2.6 稀疏矩陣 87
2.7 多維數(shù)組 90
2.7.1 創(chuàng)建多維數(shù)組 90
2.7.2 多維數(shù)組的操作函數(shù) 94
本章小結(jié) 96
練習(xí) 96
第3章 數(shù)據(jù)類型基礎(chǔ) 98
3.1 MATLAB提供的數(shù)據(jù)類型 98
3.2 數(shù)值類型 99
3.2.1 基本數(shù)值類型入門 99
3.2.2 整數(shù)類型數(shù)據(jù)運(yùn)算 102
3.2.3 MATLAB的常量 107
3.2.4 空數(shù)組 110
3.2.5 數(shù)據(jù)類型轉(zhuǎn)換 112
3.3 邏輯類型 114
3.3.1 邏輯數(shù)據(jù)類型 114
3.3.2 邏輯運(yùn)算 116
3.3.3 關(guān)系運(yùn)算 118
3.3.4 運(yùn)算符的優(yōu)先級(jí) 121
3.4 字符向量與字符串?dāng)?shù)組 122
3.4.1 字符向量 122
3.4.2 字符串?dāng)?shù)組 127
3.4.3 處理字符向量和字符串的函數(shù) 132
3.4.4 格式化字符串 137
3.4.5 格式化輸入/輸出 141
3.5 元胞數(shù)組 146
3.5.1 元胞數(shù)組的創(chuàng)建 147
3.5.2 元胞數(shù)組基本操作 149
3.5.3 元胞數(shù)組操作函數(shù) 154
3.6 結(jié)構(gòu) 157
3.6.1 結(jié)構(gòu)數(shù)組的創(chuàng)建 157
3.6.2 結(jié)構(gòu)數(shù)組的基本操作 161
3.6.3 結(jié)構(gòu)操作函數(shù) 163
本章小結(jié) 166
練習(xí) 167
第4章 MATLAB編程基礎(chǔ) 168
4.1 M語(yǔ)言編輯器 168
4.2 腳本文件 169
4.3 流程控制 173
4.3.1 選擇結(jié)構(gòu) 173
4.3.2 循環(huán)結(jié)構(gòu) 181
4.3.3 break語(yǔ)句和continue語(yǔ)句 184
4.3.4 提高運(yùn)算性能 186
4.4 函數(shù)文件 190
4.4.1 基本結(jié)構(gòu) 190
4.4.2 輸入/輸出參數(shù) 195
4.4.3 子函數(shù) 196
4.4.4 局部變量和全局變量 197
4.4.5 函數(shù)執(zhí)行規(guī)則 200
4.5 M文件調(diào)試 202
4.5.1 一般調(diào)試過(guò)程 202
4.5.2 條件斷點(diǎn) 206
4.5.3 命令行調(diào)試 207
本章小結(jié) 208
練習(xí) 208
第5章 導(dǎo)入/導(dǎo)出數(shù)據(jù)文件 210
5.1 高級(jí)例程函數(shù) 210
5.1.1 MAT數(shù)據(jù)文件操作 210
5.1.2 文本文件操作 218
5.1.3 導(dǎo)入其他類型數(shù)據(jù)文件 219
5.1.4 導(dǎo)出二進(jìn)制格式數(shù)據(jù) 224
5.2 低級(jí)例程函數(shù) 225
5.2.1 打開與關(guān)閉文件 226
5.2.2 讀寫數(shù)據(jù) 227
5.2.3 文件位置指針 230
5.3 數(shù)據(jù)導(dǎo)入向?qū)?234
本章小結(jié) 239
練習(xí) 240
第6章 圖形基礎(chǔ) 241
6.1 概述 241
6.2 交互式繪圖 243
6.2.1 工具欄快速繪圖 243
6.2.2 交互式繪圖工具 247
6.3 命令繪圖 270
6.3.1 基本繪圖命令 270
6.3.2 設(shè)置曲線的樣式屬性 272
6.3.3 使用子圖 278
6.3.4 控制繪圖區(qū)域 280
6.3.5 格式化繪圖命令 285
6.3.6 特殊圖形函數(shù) 292
6.4 基本三維繪圖 299
6.5 圖形顯示與調(diào)色板 304
6.6 保存和輸出圖形 309
6.6.1 保存圖形 309
6.6.2 導(dǎo)出與打印圖形 311
6.7 簡(jiǎn)單數(shù)據(jù)分析工具 313
6.7.1 簡(jiǎn)單數(shù)據(jù)統(tǒng)計(jì) 313
6.7.2 插值運(yùn)算 316
6.7.3 曲線擬合 320
6.7.4 基本擬合工具 324
本章小結(jié) 329
練習(xí) 330
第7章 圖形用戶界面基礎(chǔ) 332
7.1 句柄圖形入門 332
7.2 GUIDE工具入門 341
7.2.1 GUIDE工具的界面 342
7.2.2 創(chuàng)建圖形用戶界面外觀 345
7.2.3 圖形用戶界面編程 352
7.3 應(yīng)用設(shè)計(jì)工具基礎(chǔ) 357
本章小結(jié) 364
練習(xí) 364
附錄 366
附錄A MATLAB關(guān)鍵字 366
附錄B MATLAB可用的TEX
字符集 367
附錄C 數(shù)據(jù)文件IO函數(shù) 368
附錄D 可讀的常見文件類型 370
附錄E 數(shù)據(jù)IO格式化字符向量 371
附錄F MATLAB運(yùn)算符的優(yōu)先級(jí) 372
附錄G 實(shí)用命令 373
參考文獻(xiàn) 375