本書基于2014版MATLAB,以編程知識方法與實踐技能并重,以提高綜合編程能力和解決實際工程問題為綱,由淺入深地介紹MATLAB的基本語法、編程技巧和高級應用。前8章為基礎,主要介紹MATLAB基本知識和系統環境、矩陣及其運算、數據可視化、程序設計、數值計算、符號運算、GUI設計、Simulink仿真;后4章為應用,通過結合MATLAB的基本知識與高校其他相關課程及實際應用,主要介紹MATLAB在電路仿真、數字信號處理、數字圖像處理、電磁場與電磁波中的應用。每章末尾包含有相應的習題和實驗,可讓讀者在學完理論知識后上機訓練,以便更好地掌握本書的知識。全書在講解的過程中為突出實用性,穿插了大量實例,圖文并茂。本書可作為高等學校相關課程的教材或教學參考書,也可供MATLAB用戶學習和參考。
本書由淺入深地介紹MATLAB的基本語法、編程技巧和高級應用。全書在講解的過程中為突出實用性,穿插了大量實例,圖文并茂。
重慶理工大學光電信息學院副教授,中國計算機學會會員,美國計算機學會會員。在學科競賽和建模方面,作為指導教師參加全國和國際性競賽,獲得全國一等獎2項和二等獎1項,國際(美國)一等獎2項和二等獎1項,2012年獲得全國本科組一等獎,被評為重慶賽區優秀教練。科研上,主要從事MATLAB算法設計、心血管系統建模與仿真、脈搏波信號的測量和分析、動脈硬化和狹窄檢測、人工智能、模式識別等研究工作。主持和參與國際合作項目2項,主持省部級科研項目2項,主持校級科研項目2項,公開發表論文20余篇,SCI收錄5篇,EI收錄10篇,編著1部,外文編著1部,參編教材2部。
第1章 MATLAB概述及系統環境 1
1.1 MATLAB概述 1
1.1.1 前言 1
1.1.2 MATLAB軟件概述 1
1.1.3 MATLAB桌面環境及入門 2
1.2 MATLAB集成環境 4
1.2.1 MATLAB運行環境 4
1.2.2 MATLAB的安裝 8
1.3 初識MATLAB實例 11
1.4 MATLAB常用命令及學習技巧 12
1.5 MATLAB幫助系統 13
1.5.1 命令窗口幫助系統 13
1.5.2 幫助瀏覽窗口 15
習題1 16
第2章 MATLAB矩陣及其運算 17
2.1 MATLAB的特殊常量 17
2.2 MATLAB變量 17
2.2.1 變量的命名規則 17
2.2.2 變量的定義與賦值 18
2.2.3 變量的顯示 19
2.2.4 變量的存取 20
2.2.5 變量的清除 22
2.3 MATLAB數組與矩陣 22
2.3.1 一維數組 22
2.3.2 二維數組(矩陣) 25
2.3.3 字符數組 28
2.3.4 結構數組 30
2.3.5 元胞數組 33
2.3.6 “非數”與“空”數組 35
2.4 矩陣的運算和操作 38
2.4.1 矩陣的算術運算 38
2.4.2 矩陣的關系運算 40
2.4.3 矩陣的邏輯運算 41
2.4.4 矩陣元素的取整、取模和取余 41
2.4.5 矩陣的綜合操作 43
2.5 MATLAB矩陣分析與處理 45
2.5.1 矩陣的行列式 45
2.5.2 矩陣的秩與跡 46
2.5.3 矩陣的逆與偽逆 47
2.5.4 線性方程組的求解 48
2.5.5 特征值分析 49
2.5.6 矩陣的范數和條件數 49
習題2 51
實驗2 矩陣及運算 52
第3章 MATLAB數據可視化 53
3.1 二維數據可視化 53
3.1.1 基本二維曲線繪制 54
3.1.2 繪圖輔助操作 56
3.1.3 多圖疊繪、雙縱坐標、多子圖 61
3.1.4 特殊二維圖形繪制 64
3.2 三維數據可視化 67
3.2.1 三維曲線繪制 67
3.2.2 三維網格繪制 69
3.2.3 三維曲面繪制 70
3.2.4 準四維圖形繪制 72
3.2.5 其他特殊三維圖形 73
3.3 可視化圖形修飾 75
3.3.1 圖形視角處理 75
3.3.2 圖形色彩處理 78
3.3.3 圖形光照處理 82
3.3.4 圖形裁剪與空間變換 85
3.4 句柄繪圖 87
3.4.1 句柄圖形體系 87
3.4.2 圖形對象句柄的獲取 88
3.4.3 對象屬性的獲取和設置 89
3.4.4 控制圖形輸出 91
習題3 93
實驗3 數據可視化 94
第4章 MATLAB程序設計 95
4.1 M文件 95
4.1.1 M文件的創建、打開和運行 95
4.1.2 M腳本文件 97
4.1.3 M函數文件 97
4.2 MATLAB的結構化程序設計 98
4.2.1 順序結構 98
4.2.2 條件控制結構 98
4.2.3 循環控制結構 102
4.2.4 其他常用語句 104
4.3 函數 107
4.3.1 函數的創建 107
4.3.2 函數的調用與可調性 109
4.3.3 局部變量與全局變量 112
4.3.4 函數句柄 113
4.4 MATLAB程序的調試 113
4.4.1 程序調試的基本概念 113
4.4.2 M編輯器的程序調試 114
4.4.3 程序的性能優化 115
習題4 115
實驗4 程序設計 116
第5章 MATLAB數值計算 117
5.1 線性方程組求解 117
5.1.1 直接求解法 117
5.1.2 迭代法 121
5.2 非線性方程求解 128
5.2.1 非線性方程數值求解基本原理 128
5.2.2 非線性方程求根的MATLAB命令 130
5.2.3 典型非線性方程求解算法及MATLAB實現 132
5.3 MATLAB數據插值與擬合 136
5.3.1 一維插值 136
5.3.2 二維插值 138
5.3.3 曲線擬合 139
5.4 數值微積分 141
5.4.1 數值微分計算 141
5.4.2 數值積分計算 143
習題5 148
實驗5 數值計算 148
第6章 MATLAB符號運算 150
6.1 符號對象的創建 150
6.1.1 符號常量和符號變量 150
6.1.2 符號表達式與符號函數 151
6.1.3 符號矩陣 152
6.2 符號對象的運算 153
6.2.1 符號表達式的基本運算 153
6.2.2 符號矩陣的基本運算 154
6.2.3 其他符號運算 154
6.3 符號函數的微積分應用 157
6.3.1 符號函數的極限與連續性 157
6.3.2 符號函數的微分 159
6.3.3 符號函數的積分 160
6.4 符號級數應用 162
6.4.1 級數求和 162
6.4.2 泰勒級數 162
6.4.3 函數的傅里葉級數展開式 163
6.5 符號積分變換 164
6.5.1 傅里葉變換及其逆變換 164
6.5.2 拉普拉斯變換及其逆變換 164
6.5.3 Z變換及其逆變換 165
6.6 符號方程求解 166
6.6.1 符號代數方程 166
6.6.2 符號常微分方程 167
習題6 168
實驗6 符號運算 169
第7章 MATLAB GUI設計 170
7.1 GUI基本介紹 170
7.1.1 GUI簡介 170
7.1.2 入門示例 171
7.1.3 控件創建 172
7.2 GUI創建 174
7.2.1 菜單設計 174
7.2.2 對話框設計 175
7.2.3 文件管理框 177
7.3 GUI的M文件 178
7.4 GUI實例 179
7.4.1 MATLAB GUI設計步驟 179
7.4.2 設計實例 179
習題7 183
實驗7 GUI設計 184
第8章 MATLAB Simulink仿真 185
8.1 Simulink的基本操作 185
8.1.1 Simulink的啟動 185
8.1.2 Simulink模型窗口的建立 185
8.2 Simulink模塊庫與系統仿真 186
8.2.1 Simulink模塊庫 186
8.2.2 Simulink環境下的仿真運行 188
8.3 Simulink子系統與模塊封裝 190
8.3.1 Simulink子系統的建立 191
8.3.2 子系統的條件執行 193
8.3.3 Simulink子系統的封裝 196
8.4 Simulink仿真實例 199
習題8 201
實驗8 Simulink建模與仿真 202
第9章 MATLAB在電路仿真中的應用 204
9.1 MATLAB電路輔助設計與優化 204
9.2 電阻電路 204
9.2.1 電路描述 204
9.2.2 程序結果驗證描述 205
9.2.3 Simulink建模 205
9.2.4 線性電阻電路方程的建立 207
9.2.5 電路方程的求解 208
9.2.6 MATLAB程序結構設計 209
9.2.7 測試 210
9.3 動態電路的時域分析 213
9.3.1 一階零輸入響應 213
9.3.2 二階零輸入響應 215
9.3.3 單位階躍響應 218
9.4 動態電路的頻率響應 219
9.4.1 一階低通電路的頻率響應 219
9.4.2 二階低通響應 220
9.4.3 頻率響應:二階帶通電路 221
9.4.4 復雜諧振電路的計算 221
9.5 MATLAB電路仿真實例 222
9.5.1 仿真實例1對電路電阻的分析 222
9.5.2 仿真實例2用MATLAB的M文件設計巴特沃斯濾波器 224
9.5.3 仿真實例3信號的分解 225
9.5.4 仿真實例4信號的合成 227
習題9 228
實驗9 MATLAB在電路仿真中的應用 229
第10章 MATLAB在數字信號處理中的應用 230
10.1 信號的MATLAB表示與描述 230
10.1.1 離散信號的MATLAB表示 230
10.1.2 信號序列的產生 232
10.2 MATLAB數字信號處理基礎 235
10.2.1 信號基本運算 235
10.2.2 信號的卷積 238
10.2.3 信號的相關 239
10.3 信號的頻域分析 240
10.3.1 傅里葉級數分析 240
10.3.2 離散傅里葉變換 241
10.3.3 快速傅里葉變換 242
10.3.4 信號窗函數 245
10.4 其他數字信號分析方法 247
10.4.1 離散余弦變換 247
10.4.2 希爾伯特變換 249
10.4.3 倒譜分析 250
10.5 數字濾波器設計 252
10.5.1 數字濾波器基本原理與分類 252
10.5.2 IIR濾波器設計及MALTAB實現 253
10.5.3 FIR濾波器設計及MATLAB實現 258
習題10 261
實驗10 MATLAB在數字信號處理中的應用 262
第11章 MATLAB在數字圖像處理中的應用 263
11.1 圖像基本操作 263
11.1.1 圖像的讀取和顯示 263
11.1.2 圖像的基本運算 264
11.1.3 圖像數據的保存 266
11.2 圖像灰度變換 266
11.2.1 常用灰度變換函數 266
11.2.2 線性灰度變換和非線性灰度變換 268
11.2.3 直方圖均衡化 268
11.3 濾波處理 270
11.3.1 空間濾波 270
11.3.2 頻域濾波 273
11.4 形態學處理 274
11.4.1 膨脹與腐蝕 275
11.4.2 開運算與閉運算 277
11.5 圖像分割 279
11.5.1 邊緣檢測 279
11.5.2 閾值處理 280
11.5.3 區域生長 281
習題11 285
實驗11 數字圖像處理 285
第12章 MATLAB在電磁場與電磁波中的應用 286
12.1 矢量分析 286
12.1.1 矢量基本運算 286
12.1.2 梯度、散度和旋度的計算 289
12.1.3 場的可視化 290
12.2 電磁場的計算與仿真 291
12.2.1 靜電場的計算與仿真 291
12.2.2 恒定磁場的計算與仿真 293
12.3 電磁波的計算與仿真 297
12.3.1 電磁波的合成計算與仿真 297
12.3.2 電磁波駐波的模擬 298
12.3.3 光的多縫衍射模擬 299
12.3.4 電磁波的極化模擬 300
12.3.5 電磁波傳播的模擬 303
習題12 306
實驗12 矢量計算與電磁仿真 307
參考文獻 308