本書以MATLAB 2020版本的功能敘述為主,由淺入深地全面講解MATLAB軟件的知識。本書自始至終采用實例描述,內容完整且各章相對獨立,是一本簡明的MATLAB參考書。
本書涉及面廣,涵蓋一般用戶需要使用的各種功能,并詳細介紹MATLAB常用工具箱的使用。全書共15章,前12章主要介紹MATLAB的基礎知識、數組及其操作、數值計算、數據分析、符號運算、關系運算與邏輯運算、函數、程序設計、數據圖形可視化、句柄圖形對象、Simulink仿真等內容,后3章重點介紹MATLAB在圖像處理、信號處理、小波分析中的應用。
本書以實用為目標,講解細致,既適合作為高等院校理工科研究生、本科生教學用書,也可作為廣大科研人員和工程技術人員的參考用書。
前言
第1章 初識MATLAB1
1.1 MATLAB簡介1
1.2 MATLAB R2020a的工作環(huán)境3
1.2.1 操作界面簡介3
1.2.2 命令行窗口3
1.2.3 命令歷史記錄窗口7
1.2.4 變量命名規(guī)則8
1.2.5 當前文件夾窗口和路徑管理9
1.2.6 搜索路徑10
1.2.7 工作區(qū)窗口和數組編輯器12
1.2.8 變量的編輯命令13
1.2.9 存取數據文件14
1.3 MATLAB R2020a的幫助系統(tǒng)15
1.3.1 純文本幫助15
1.3.2 幫助導航16
1.3.3 示例幫助16
1.4 小結17
第2章 MATLAB語言基礎18
2.1 基本概念18
2.1.1 MATLAB數據類型概述18
2.1.2 整數類型19
2.1.3 浮點數類型21
2.1.4 復數23
2.1.5 無窮量和非數值量24
2.1.6 數值類型的顯示格式24
2.1.7 確定數值類型的函數25
2.1.8 常量與變量26
2.1.9 標量、向量、矩陣與數組26
2.1.10 字符串27
2.1.11 運算符28
2.1.12 命令、函數、表達式和語句30
2.2 向量運算31
2.2.1 向量的生成31
2.2.2 向量的加、減、乘、除運算33
2.2.3 向量的點積、叉積運算34
2.3 矩陣運算35
2.3.1 矩陣元素的存儲次序36
2.3.2 矩陣元素的表示及相關操作36
2.3.3 矩陣的創(chuàng)建39
2.3.4 矩陣的代數運算46
2.4 字符串運算53
2.4.1 字符串變量與一維字符數組53
2.4.2 對字符串的操作54
2.4.3 二維字符數組56
2.5 小結57
第3章 數組及其操作58
3.1 MATLAB中的數組58
3.2 數組的創(chuàng)建59
3.2.1 創(chuàng)建空數組59
3.2.2 創(chuàng)建一維數組59
3.2.3 創(chuàng)建二維數組60
3.2.4 創(chuàng)建三維數組61
3.2.5 創(chuàng)建低維標準數組65
3.2.6 創(chuàng)建高維標準數組66
3.3 數組的屬性67
3.3.1 數組的結構68
3.3.2 數組的大小68
3.3.3 數組的維度69
3.3.4 數組的數據類型70
3.3.5 數組的內存占用71
3.4 創(chuàng)建特殊數組71
3.4.1 0-1數組72
3.4.2 對角數數組72
3.4.3 隨機數組73
3.4.4 魔方數組74
3.5 數組操作74
3.5.1 數組的保存和裝載74
3.5.2 數組索引和尋址75
3.5.3 數組的擴展和裁剪78
3.5.4 數組形狀的改變84
3.5.5 數組運算87
3.5.6 數組的查找90
3.5.7 數組的排序91
3.5.8 高維數組的降維92
3.6 多維數組及其操作93
3.6.1 多維數組的屬性93
3.6.2 多維數組的操作94
3.7 小結97
第4章 數值計算98
4.1 矩陣分析98
4.1.1 使用norm函數進行范數分析98
4.1.2 使用normest函數進行范數分析100
4.1.3 條件數分析101
4.1.4 數值矩陣的行列式103
4.1.5 符號矩陣的行列式104
4.1.6 化零矩陣104
4.2 線性方程組求解105
4.2.1 直接法106
4.2.2 迭代法107
4.3 矩陣分解111
4.3.1 Cholesky分解111
4.3.2 使用Cholesky分解求解方程組112
4.3.3 不完全Cholesky分解113
4.3.4 LU分解114
4.3.5 不完全LU分解115
4.3.6 QR分解116
4.3.7 處理QR分解結果118
4.3.8 奇異值分解118
4.4 特征值分析119
4.4.1 特征值和特征向量120
4.4.2 求稀疏矩陣的特征值和特征向量121
4.4.3 特征值問題的條件數122
4.4.4 特征值的復數問題123
4.5 函數的零點125
4.5.1 一元函數的零點125
4.5.2 多元函數的零點126
4.6 數值積分128
4.6.1 一元函數的數值積分128
4.6.2 矩形區(qū)域的多重數值積分130
4.6.3 變量區(qū)域的多重數值積分130
4.7 概率論與數理統(tǒng)計134
4.7.1 雙變量的概率分布134
4.7.2 不同概率分布135
4.7.3 數據分布分析137
4.8 小結138
第5章 數據分析139
5.1 插值139
5.1.1 一維插值命令及實例139
5.1.2 二維插值命令及實例142
5.1.3 樣條插值144
5.2 曲線擬合145
5.2.1 多項式擬合146
5.2.2 加權最小方差擬合原理及實例147
5.3 曲線擬合圖形界面149
5.3.1 曲線擬合窗口149
5.3.2 繪制擬合殘差圖形151
5.3.3 進行數據預測151
5.4 傅里葉分析152
5.4.1 離散傅里葉變換152
5.4.2 FFT和DFT155
5.5 微分方程157
5.5.1 常微分方程的數值解157
5.5.2 偏微分方程的數值解160
5.6 小結165
第6章 符號運算166
6.1 符號運算的基本概念166
6.1.1 符號對象166
6.1.2 創(chuàng)建符號對象的函數sym( )、syms( )與class( )167
6.1.3 符號常量168
6.1.4 符號變量169
6.1.5 符號表達式、符號函數與符號方程170
6.1.6 函數symvar( )171
6.1.7 數組、矩陣與符號矩陣172
6.2 符號運算的基本內容174
6.2.1 符號變量代換及其函數subs( )174
6.2.2 將符號對象轉換為數值對象的函數175
6.2.3 符號表達式的化簡177
6.2.4 其他符號運算函數181
6.2.5 兩種特定的符號運算函數182
6.3 符號微積分運算及應用184
6.3.1 符號極限運算185
6.3.2 符號微分運算187
6.3.3 符號積分運算188
6.4 符號矩陣及其運算189
6.4.1 符號矩陣的建立與訪問189
6.4.2 符號矩陣的基本運算194
6.4.3 符號矩陣的微分與積分199
6.4.4 符號矩陣的Laplace變換200
6.5 符號方程求解201
6.5.1 符號代數方程求解201
6.5.2 符號微分方程求解202
6.6 符號函數圖形計算器FUNTOOL205
6.6.1 符號函數圖形計算器的界面205
6.6.2 符號函數圖形計算器的輸入框操作206
6.6.3 符號函數圖形計算器的按鈕操作206
6.7 小結207
第7章 關系運算與邏輯運算208
7.1 邏輯類型的數據208
7.2 關系運算209
7.3 邏輯運算210
7.3.1 逐個元素的邏輯運算210
7.3.2 捷徑邏輯運算211
7.3.3 逐位邏輯運算212
7.4 邏輯函數與測試函數213
7.5 運算優(yōu)先級214
7.6 小結215
第8章 函數216
8.1 M文件216
8.1.1 M文件概述216
8.1.2 局部變量與全局變量217
8.1.3 M文件的編輯與運行218
8.1.4 M文件的結構219
8.1.5 腳本文件219
8.1.6 函數文件220
8.1.7 函數調用221
8.1.8 M文件調試工具224
8.1.9 M文件分析工具226
8.2 MATLAB的變量229
8.2.1 M文件的變量類型229
8.2.2 M文件的關鍵字230
8.3 函數類型230
8.3.1 匿名函數230
8.3.2 M文件主函數232
8.3.3 嵌套函數232
8.3.4 子函數233
8.3.5 私有函數233
8.3.6 重載函數233
8.4 參數傳遞234
8.4.1 參數傳遞概述234
8.4.2 輸入和輸出參數的數目234
8.4.3 可變數目的參數傳遞235
8.4.4 返回被修改的輸入參數236
8.4.5 全局變量237
8.5 小結238
第9章 程序設計239
9.1 MATLAB的程序結構239
9.1.1 if分支結構239
9.1.2 switch分支結構241
9.1.3 while循環(huán)結構242
9.1.4 for循環(huán)結構243
9.2 MATLAB的控制245
9.2.1 continue命令245
9.2.2 break命令246
9.2.3 return命令247
9.2.4 input命令247
9.2.5 keyboard命令248
9.2.6 error和warning命令248
9.3 數據的輸入與輸出249
9.3.1 鍵盤輸入命令input250
9.3.2 屏幕輸出命令disp250
9.3.3 M數據文件的存儲/加載命令save/load250
9.3.4 格式化文本文件的存儲/讀取命令fprintf/fscanf250
9.3.5 二進制數據文件的存儲/讀取命令fwrite/fread251
9.3.6 數據文件行的存儲/讀取命令fgetl/fgets251
9.4 MATLAB文件操作251
9.5 面向對象程序設計253
9.5.1 面向對象程序設計的基本方法253
9.5.2 面向對象程序設計實例255
9.6 MATLAB程序優(yōu)化258
9.6.1 效率優(yōu)化(時間優(yōu)化)258
9.6.2 內存優(yōu)化(空間優(yōu)化)259
9.6.3 編程注意事項264
9.6.4 幾個常用數學方法的算法程序265
9.7 程序調試274
9.7.1 程序調試命令274
9.7.2 程序剖析275
9.8 小結279
第10章 數據圖形可視化280
10.1 MATLAB圖形窗口280
10.1.1 創(chuàng)建圖形窗口280
10.1.2 關閉與清除圖形框281
10.2 二維圖形的繪制281
10.2.1 繪制二維曲線282
10.2.2 繪制離散序列圖283
10.2.3 其他類型的二維圖284
10.2.4 二維圖形的修飾286
10.2.5 子圖288
10.3 三維圖形的繪制290
10.3.1 三維折線及曲線的基本繪圖命令290
10.3.2 繪制三維曲面292
10.3.3 三維圖形的視角變換295
10.3.4 其他圖形函數296
10.4 圖像299
10.4.1 圖像的類別和顯示299
10.4.2 圖像的讀寫301
10.5 函數繪制302
10.5.1 一元函數繪圖302
10.5.2 二元函數繪圖303
10.6 圖形對象及其屬性設置305
10.6.1 MATLAB的圖形對象305
10.6.2 句柄——圖形對象的標識307
10.6.3 圖形對象屬性的獲取與設定307
10.6.4 圖形對象常用屬性309
10.6.5 圖形可視編輯工具310
10.7 小結311
第11章 句柄圖形對象312
11.1 句柄圖形對象概述312
11.2 get和set函數314
11.2.1 get函數314
11.2.2 set函數315
11.3 查找對象318
11.4 圖形窗口對象320
11.5 核心圖形對象321
11.6 默認屬性322
11.7 非文件式屬性324
11.8 小結325
第12章 Simulink仿真系統(tǒng)326
12.1 Simulink基礎知識326
12.1.1 Simulink概述326
12.1.2 Simulink的特點327
12.1.3 Simulink工作環(huán)境328
12.1.4 Simulink仿真的基本步驟329
12.2 模型的創(chuàng)建330
12.2.1 模型概念及文件操作330
12.2.2 模塊操作332
12.2.3 信號線操作334
12.2.4 對模型的注釋336
12.2.5 Source庫中常用的模塊336
12.2.6 Sink庫中常用的模塊342
12.2.7 仿真的配置347
12.2.8 啟動仿真351
12.3 Simulink系統(tǒng)仿真原理352
12.3.1 Simulink求解器概念353
12.3.2 系統(tǒng)過零的概念與解決方案354
12.3.3 系統(tǒng)代數環(huán)的概念與解決方案358
12.4 高級積分器360
12.5 小結363
第13章 MATLAB與圖像處理364
13.1 圖像類型364
13.1.1 真彩色圖像364
13.1.2 索引色圖像365
13.1.3 灰度圖像365
13.1.4 二值圖像366
13.1.5 多幀圖像366
13.1.6 讀寫圖像數據367
13.1.7 查看圖像文件信息368
13.2 顯示圖像369
13.2.1 默認顯示方式369
13.2.2 添加顏色條370
13.2.3 顯示多幀圖像370
13.2.4 顯示動畫371
13.2.5 三維材質圖像371
13.3 圖像的灰度變換372
13.3.1 圖像的直方圖372
13.3.2 灰度變換373
13.3.3 均衡直方圖375
13.4 小結376
第14章 MATLAB與信號處理377
14.1 產生信號377
14.1.1 鋸齒波、三角波和矩形波發(fā)生器378
14.1.2 周期sinc波379
14.1.3 高斯調幅正弦波380
14.1.4 調頻信號381
14.1.5 高斯分布隨機序列382
14.2 隨機信號處理383
14.2.1 隨機信號的互相關函數383
14.2.2 隨機信號的互協(xié)方差函數385
14.2.3 譜分析——pwelch函數386
14.3 模擬濾波器設計388
14.3.1 巴特沃斯濾波器388
14.3.2 切比雪夫I型濾波器389
14.3.3 切比雪夫Ⅱ型濾波器390
14.4 IIR數字濾波器設計391
14.4.1 巴特沃斯數字濾波器設計392
14.4.2 切比雪夫I 型數字濾波器設計393
14.4.3 切比雪夫II 型數字濾波器設計394
14.5 小結395
第15章 MATLAB與小波分析396
15.1 傅里葉變換到小波分析396
15.1.1 傅里葉變換397
15.1.2 小波分析399
15.1.3 常用的小波函數400
15.2 Mallat算法401
15.2.1 Mallat算法原理401
15.2.2 Mallat算法示例404
15.3 小波分析工具箱408
15.4 小波分析用例409
15.4.1 信號壓縮409
15.4.2 信號去噪410
15.5 小結414
附錄 MATLAB基本命令415