本書在第1版的基礎(chǔ)上修訂而成,以MATLABR2013a軟件為基礎(chǔ),系統(tǒng)講解了MATLAB基本環(huán)境和操作方法;分章闡述矩陣與數(shù)組的創(chuàng)立和運(yùn)算、符號(hào)運(yùn)算、M腳本與函數(shù)編寫、基本繪圖方法與屬性設(shè)置、數(shù)值計(jì)算方法、圖形用戶界面設(shè)計(jì)、Simulink仿真系統(tǒng)、在信號(hào)系統(tǒng)的應(yīng)用。在闡述上述內(nèi)容的過程中給出大量的教學(xué)實(shí)例,并給出便于重復(fù)的過程表述。
自《MATLAB語言基礎(chǔ)與應(yīng)用》于2010年10月出版以來,一方面由于MATLAB版本不斷更新軟件的需要,如在數(shù)值計(jì)算、繪圖功能、編程手段和工具箱等方面都有很大改進(jìn);另一方面由于教學(xué)的需要,如開設(shè)MATLAB課程的專業(yè)越來越多、學(xué)生層次也趨向多樣化等,促使作者對(duì)《MATLAB語言基礎(chǔ)與應(yīng)用》一書進(jìn)行修訂。
本書在第1版的基礎(chǔ)上有較大的修改,主要修改如下:
。1)4.2節(jié)三維繪圖內(nèi)容細(xì)化更明確,增加了函數(shù)patch示例和easy三維繪圖函數(shù)列表,使得內(nèi)容更加完善。
。2)原第8章數(shù)值計(jì)算方法調(diào)整為第5章,增加了5.6節(jié)非線性方程求根,便于學(xué)生對(duì)于MATLAB中一些內(nèi)置函數(shù)的基礎(chǔ)算法有更加全面的了解,便于后面章節(jié)調(diào)用數(shù)值計(jì)算函數(shù)時(shí)的選擇。
。3)原第5章圖形用戶界面調(diào)整為第6章圖形用戶界面設(shè)計(jì)(GUI),增加了常用GUI組件創(chuàng)建和設(shè)置,便于讀者對(duì)于GUI組件有更加全面的掌握。
。4)原第7章Simulink仿真調(diào)整為第7章Simulink仿真系統(tǒng),對(duì)Simulink基礎(chǔ)進(jìn)行了細(xì)化,基礎(chǔ)知識(shí)介紹更加系統(tǒng)。同時(shí),增加了仿真系統(tǒng)中的子系統(tǒng),使借助Simulink仿真系統(tǒng)解決較復(fù)雜問題得到簡(jiǎn)化。
(5)增加了第8章MATLAB在數(shù)字信號(hào)中的應(yīng)用,滿足電子信息科學(xué)與技術(shù)、電子信息工程專業(yè)學(xué)生的要求和教學(xué)過程課程間銜接的需要。
。6)原第6章偏微分方程工具箱本書不再進(jìn)行介紹。
。7)本書對(duì)示例中的執(zhí)行語句進(jìn)行了英漢雙語注釋,尤其是前4章注釋非常詳細(xì),希望為讀者在后面章節(jié)的學(xué)習(xí)打下良好基礎(chǔ),對(duì)讀者能夠自己讀懂MATLAB自帶函數(shù)解釋有所幫助。
本書著重體現(xiàn)以下4個(gè)方面的特點(diǎn)。
。1)內(nèi)容結(jié)構(gòu)簡(jiǎn)單,適合教學(xué)。內(nèi)容的增減、結(jié)構(gòu)的調(diào)整都是基于學(xué)生學(xué)習(xí)和教學(xué)中課程銜接的需要。
。2)課堂實(shí)用性強(qiáng),課程銜接容易。增加了一些應(yīng)用函數(shù)的編寫,能夠加深讀者對(duì)MATLAB的理解,也便于MATLAB語言在其他課程中的應(yīng)用及擴(kuò)展。
。3)英漢雙語注釋,便于讀者借助MATLAB幫助系統(tǒng)自學(xué)。
。4)為方便教學(xué)和學(xué)習(xí),本書提供所有例題的M文件源代碼及插圖的png格式文件。
本書由8章構(gòu)成。第1章緒論,主要介紹MATLAB的特點(diǎn)和MATLABR2013a版的系統(tǒng)環(huán)境。第2章矩陣、數(shù)組、符號(hào)運(yùn)算,講解矩陣、數(shù)組、符號(hào)表達(dá)式的創(chuàng)建及各種運(yùn)算操作。第3章編程,對(duì)示例注釋進(jìn)行細(xì)致修改,便于讀者對(duì)后面章節(jié)示例給出的程序有更深入的理解。第4章繪圖,對(duì)二維繪圖、三維繪圖、高維圖形可視化、動(dòng)畫制作及圖形屬性設(shè)置進(jìn)行系統(tǒng)介紹。第5章數(shù)值計(jì)算方法,講解了線性方程、多項(xiàng)式插值與最小二乘曲線擬合、微積分、矩陣特征值與特征向量、常微分方程、非線性方程的數(shù)值解方法。第6章圖形用戶界面設(shè)計(jì)(GUI),闡述了如何通過函數(shù)guide設(shè)計(jì)圖形用戶交互界面,如何將函數(shù)腳本文件編譯為可獨(dú)立運(yùn)行的exe文件。第7章Simulink仿真系統(tǒng),介紹了Simulink基礎(chǔ),講解了Simulink模型操作和仿真系統(tǒng)設(shè)置,給出具體示例,敘述了子系統(tǒng)的創(chuàng)建、子系統(tǒng)的條件執(zhí)行及封裝。第8章MATLAB在數(shù)字信號(hào)中的應(yīng)用,闡述了MATLAB在數(shù)字信號(hào)中的應(yīng)用,為學(xué)生將MATLAB在信號(hào)處理與系統(tǒng)課程中的拓展與應(yīng)用提供了很好的橋梁。
本書第1~4、6、7章由王永龍編寫,第5章由張兆忠編寫,第8章由袁紅編寫,全書英文注釋由張桂紅編寫修改。本書第1~3章由許春磊修訂,第4、6、7章由曹偉然修訂。全書由王永龍修改定稿。
本書在編寫修訂過程中,得到張貴芹編輯的全力支持,在此向她致以感謝!本書還使用了南京大學(xué)的網(wǎng)絡(luò)資源,在此向南京大學(xué)物理學(xué)院的相關(guān)人員致以衷心的感謝!對(duì)為本書改版給予大力支持的江兆林院長(zhǎng)、劉建華書記致以深深的敬意!
由于作者水平有限,書中難免出現(xiàn)錯(cuò)誤或表述不妥之處,懇請(qǐng)廣大讀者給予批評(píng)指正,作者聯(lián)系郵箱wylong322@163.com。
作者
2015年12月于臨沂
王永龍,畢業(yè)于北京工業(yè)大學(xué),山東省臨沂師范學(xué)院理學(xué)院教授。主持山東省自然科學(xué)基金,主持山東省教育廳科技規(guī)劃項(xiàng)目,承擔(dān)山東省自然科學(xué)基金,承擔(dān)中科院半導(dǎo)體研究所國(guó)家重點(diǎn)實(shí)驗(yàn)室開放課題,承擔(dān)國(guó)家自然科學(xué)基金。
第1章 緒論 1
1.1 MATLAB是什么 1
1.2 MATLAB啟動(dòng)與退出 3
1.2.1 MATLAB啟動(dòng) 3
1.2.2 MATLAB退出 6
1.3 MATLAB桌面 7
1.3.1 命令窗口 8
1.3.2 命令歷史窗口 14
1.3.3 工作空間窗口 14
1.3.4 當(dāng)前路徑瀏覽器 15
1.4 MATLAB高級(jí)功能 15
1.5 幫助系統(tǒng) 16
1.5.1 幫助命令 16
1.5.2 幫助瀏覽器窗口 17
1.5.3 網(wǎng)絡(luò)幫助 18
小結(jié) 18
習(xí)題 19
第2章 矩陣、數(shù)組、符號(hào)運(yùn)算 20
2.1 創(chuàng)建矩陣方法 20
2.1.1 直接輸入法 21
2.1.2 矩陣生成命令 22
2.2 構(gòu)建數(shù)組方法 31
2.2.1 數(shù)組生成命令 31
2.2.2 矢量生成命令 31
2.3 矩陣數(shù)組的運(yùn)算操作 35
2.3.1 四則運(yùn)算 37
2.3.2 初等數(shù)學(xué)運(yùn)算 42
2.3.3 矩陣運(yùn)算操作函數(shù) 43
2.4 多項(xiàng)式 47
2.4.1 多項(xiàng)式表述 47
2.4.2 多項(xiàng)式操作 48
2.5 符號(hào)表達(dá)式的生成 51
2.5.1 創(chuàng)建符號(hào)對(duì)象 52
2.5.2 操作符號(hào)對(duì)象 58
2.6 微積分 62
2.7 求解符號(hào)方程 66
2.7.1 解代數(shù)方程 66
2.7.2 解微分方程 69
2.8 積分變換 70
2.9 實(shí)例應(yīng)用 71
2.9.1 解多項(xiàng)式 71
2.9.2 解線性方程組 73
2.9.3 求平行六面體體積 74
2.9.4 特征值與特征向量 74
2.9.5 多元數(shù)據(jù) 76
2.9.6 電路問題 77
2.9.7 稀疏矩陣?yán)L圖 78
小結(jié) 79
習(xí)題 79
第3章 編程 83
3.1 Top-Down設(shè)計(jì)模式 83
3.2 偽代碼 85
3.3 順序結(jié)構(gòu) 86
3.4 分支結(jié)構(gòu) 93
3.4.1 關(guān)系算符和邏輯算符 93
3.4.2 if結(jié)構(gòu) 94
3.4.3 switch結(jié)構(gòu) 100
3.4.4 try/catch結(jié)構(gòu) 107
3.5 循環(huán)結(jié)構(gòu) 109
3.5.1 for結(jié)構(gòu) 109
3.5.2 while結(jié)構(gòu) 111
3.6 函數(shù)編寫 114
3.6.1 MATLAB函數(shù) 115
3.6.2 MATLAB中變量傳遞 117
3.6.3 選擇變量相關(guān)函數(shù) 120
3.6.4 全局變量和永久變量 127
3.6.5 子函數(shù)和私人函數(shù) 130
小結(jié) 134
習(xí)題 134
第4章 繪圖 137
4.1 二維繪圖 137
4.1.1 函數(shù)plot 137
4.1.2 圖形參數(shù)設(shè)置 144
4.1.3 特殊二維圖形繪制函數(shù) 151
4.1.4 easy二維繪圖函數(shù) 155
4.2 三維繪圖 157
4.2.1 函數(shù)plot3 157
4.2.2 函數(shù)patch 159
4.2.3 三維網(wǎng)格圖和曲面圖函數(shù) 160
4.2.4 函數(shù)contour和contour3 168
4.2.5 函數(shù)quiver 170
4.2.6 easy三維繪圖函數(shù) 172
4.2.7 三維圖形的參數(shù)設(shè)置 174
4.3 高維圖形可視化 180
4.4 動(dòng)畫制作示例 184
4.4.1 電影程序編寫 185
4.4.2 函數(shù)movie 186
4.5 應(yīng)用實(shí)例 189
4.5.1 布朗運(yùn)動(dòng) 189
4.5.2 相干波 190
4.5.3 帶洞的峰面 192
4.5.4 透視圖 193
4.5.5 能流圖 196
4.6 鼠標(biāo)對(duì)圖形的操作 207
4.7 圖形句柄 209
4.7.1 圖形窗口 210
4.7.2 核心對(duì)象 211
4.7.3 注釋對(duì)象 223
4.7.4 總結(jié) 225
小結(jié) 226
習(xí)題 226
第5章 數(shù)值計(jì)算方法 228
5.1 線性方程組數(shù)值解法 228
5.1.1 直接方法 228
5.1.2 迭代方法 231
5.2 多項(xiàng)式插值與最小二乘曲線擬合 238
5.2.1 多項(xiàng)式插值 238
5.2.2 最小二乘曲線擬合 241
5.3 積分與微分 245
5.3.1 數(shù)值積分 245
5.3.2 數(shù)值微分 247
5.4 矩陣的特征值與特征向量 248
5.4.1 特征值函數(shù) 249
5.4.2 冪法和反冪法 249
5.4.3 Jacobi方法 252
5.4.4 QR方法 253
5.5 常微分方程數(shù)值解法 255
5.5.1 歐拉(Euler)方法 255
5.5.2 龍格庫塔(Runge-Kutta)方法 258
5.5.3 MATLAB的相關(guān)函數(shù) 259
5.6 非線性方程求根 260
5.6.1 二分法 260
5.6.2 牛頓迭代法 261
5.6.3 弦截法 263
小結(jié) 264
習(xí)題 264
第6章 圖形用戶界面設(shè)計(jì)(GUI) 266
6.1 借助函數(shù)guide創(chuàng)建GUI 266
6.2 創(chuàng)建GUI示例 268
6.3 GUI實(shí)例 283
6.4 常用GUI組件創(chuàng)建與設(shè)置 296
6.5 編譯獨(dú)立的應(yīng)用程序 302
6.5.1 編譯器的安裝與配置 302
6.5.2 編譯exe文件 305
小結(jié) 305
習(xí)題 306
第7章 Simulink仿真系統(tǒng) 307
7.1 Simulink基礎(chǔ) 307
7.1.1 啟動(dòng)Simulink 307
7.1.2 Simulink模塊庫瀏覽器 309
7.1.3 Commonly Used Blocks模塊庫 310
7.1.4 Simulink模型窗口 311
7.1.5 Simulink建模仿真示例 313
7.2 Simulink模型操作和仿真系統(tǒng)設(shè)置 317
7.2.1 Simulink模型操作 317
7.2.2 Simulink仿真系統(tǒng)設(shè)置 318
7.3 系統(tǒng)建模實(shí)例 321
7.4 仿真系統(tǒng)中的子系統(tǒng) 329
7.4.1 創(chuàng)建子系統(tǒng) 329
7.4.2 子系統(tǒng)的條件執(zhí)行 331
7.4.3 封裝子系統(tǒng) 333
小結(jié) 335
習(xí)題 335
第8章 MATLAB在數(shù)字信號(hào)中的應(yīng)用 336
8.1 時(shí)域離散信號(hào)和系統(tǒng) 336
8.1.1 信號(hào)、實(shí)現(xiàn)信號(hào)的基本運(yùn)算及求解差分方程 336
8.1.2 序列運(yùn)算 340
8.2 離散時(shí)間傅里葉變換(DTFT)與Z變換函數(shù) 348
8.2.1 函數(shù)freqz 348
8.2.2 函數(shù)zplane 349
8.3 離散傅里葉變換及快速傅里葉變換 352
8.3.1 幾個(gè)擴(kuò)展函數(shù) 353
8.3.2 快速傅里葉變換 355
8.4 IIR濾波器的設(shè)計(jì) 361
8.4.1 濾波器設(shè)計(jì)函數(shù) 362
8.4.2 雙線性變換法及沖激響應(yīng)不變法設(shè)計(jì)IIRDF 367
8.4.3 MATLAB自帶函數(shù)設(shè)計(jì)各類數(shù)字濾波器 378
8.4.4 基于數(shù)字頻帶變換法設(shè)計(jì)數(shù)字濾波器 382
小結(jié) 387
習(xí)題 387
參考文獻(xiàn) 389