本書以MATLAB 2020版本的功能敘述為主,由淺入深地全面講解MATLAB軟件的知識。本書自始至終采用實例描述,內容完整且各章相對獨立,是一本簡明的MATLAB參考書。
本書涉及面廣,涵蓋一般用戶需要使用的各種功能,并詳細介紹MATLAB常用工具箱的使用。全書共15章,前12章主要介紹MATLAB的基礎知識、數(shù)組及其操作、數(shù)值計算、數(shù)據(jù)分析、符號運算、關系運算與邏輯運算、函數(shù)、程序設計、數(shù)據(jù)圖形可視化、句柄圖形對象、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ū)窗口和數(shù)組編輯器12
1.2.8 變量的編輯命令13
1.2.9 存取數(shù)據(jù)文件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數(shù)據(jù)類型概述18
2.1.2 整數(shù)類型19
2.1.3 浮點數(shù)類型21
2.1.4 復數(shù)23
2.1.5 無窮量和非數(shù)值量24
2.1.6 數(shù)值類型的顯示格式24
2.1.7 確定數(shù)值類型的函數(shù)25
2.1.8 常量與變量26
2.1.9 標量、向量、矩陣與數(shù)組26
2.1.10 字符串27
2.1.11 運算符28
2.1.12 命令、函數(shù)、表達式和語句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 矩陣的代數(shù)運算46
2.4 字符串運算53
2.4.1 字符串變量與一維字符數(shù)組53
2.4.2 對字符串的操作54
2.4.3 二維字符數(shù)組56
2.5 小結57
第3章 數(shù)組及其操作58
3.1 MATLAB中的數(shù)組58
3.2 數(shù)組的創(chuàng)建59
3.2.1 創(chuàng)建空數(shù)組59
3.2.2 創(chuàng)建一維數(shù)組59
3.2.3 創(chuàng)建二維數(shù)組60
3.2.4 創(chuàng)建三維數(shù)組61
3.2.5 創(chuàng)建低維標準數(shù)組65
3.2.6 創(chuàng)建高維標準數(shù)組66
3.3 數(shù)組的屬性67
3.3.1 數(shù)組的結構68
3.3.2 數(shù)組的大小68
3.3.3 數(shù)組的維度69
3.3.4 數(shù)組的數(shù)據(jù)類型70
3.3.5 數(shù)組的內存占用71
3.4 創(chuàng)建特殊數(shù)組71
3.4.1 0-1數(shù)組72
3.4.2 對角數(shù)數(shù)組72
3.4.3 隨機數(shù)組73
3.4.4 魔方數(shù)組74
3.5 數(shù)組操作74
3.5.1 數(shù)組的保存和裝載74
3.5.2 數(shù)組索引和尋址75
3.5.3 數(shù)組的擴展和裁剪78
3.5.4 數(shù)組形狀的改變84
3.5.5 數(shù)組運算87
3.5.6 數(shù)組的查找90
3.5.7 數(shù)組的排序91
3.5.8 高維數(shù)組的降維92
3.6 多維數(shù)組及其操作93
3.6.1 多維數(shù)組的屬性93
3.6.2 多維數(shù)組的操作94
3.7 小結97
第4章 數(shù)值計算98
4.1 矩陣分析98
4.1.1 使用norm函數(shù)進行范數(shù)分析98
4.1.2 使用normest函數(shù)進行范數(shù)分析100
4.1.3 條件數(shù)分析101
4.1.4 數(shù)值矩陣的行列式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 特征值問題的條件數(shù)122
4.4.4 特征值的復數(shù)問題123
4.5 函數(shù)的零點125
4.5.1 一元函數(shù)的零點125
4.5.2 多元函數(shù)的零點126
4.6 數(shù)值積分128
4.6.1 一元函數(shù)的數(shù)值積分128
4.6.2 矩形區(qū)域的多重數(shù)值積分130
4.6.3 變量區(qū)域的多重數(shù)值積分130
4.7 概率論與數(shù)理統(tǒng)計134
4.7.1 雙變量的概率分布134
4.7.2 不同概率分布135
4.7.3 數(shù)據(jù)分布分析137
4.8 小結138
第5章 數(shù)據(jù)分析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 進行數(shù)據(jù)預測151
5.4 傅里葉分析152
5.4.1 離散傅里葉變換152
5.4.2 FFT和DFT155
5.5 微分方程157
5.5.1 常微分方程的數(shù)值解157
5.5.2 偏微分方程的數(shù)值解160
5.6 小結165
第6章 符號運算166
6.1 符號運算的基本概念166
6.1.1 符號對象166
6.1.2 創(chuàng)建符號對象的函數(shù)sym( )、syms( )與class( )167
6.1.3 符號常量168
6.1.4 符號變量169
6.1.5 符號表達式、符號函數(shù)與符號方程170
6.1.6 函數(shù)symvar( )171
6.1.7 數(shù)組、矩陣與符號矩陣172
6.2 符號運算的基本內容174
6.2.1 符號變量代換及其函數(shù)subs( )174
6.2.2 將符號對象轉換為數(shù)值對象的函數(shù)175
6.2.3 符號表達式的化簡177
6.2.4 其他符號運算函數(shù)181
6.2.5 兩種特定的符號運算函數(shù)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 符號代數(shù)方程求解201
6.5.2 符號微分方程求解202
6.6 符號函數(shù)圖形計算器FUNTOOL205
6.6.1 符號函數(shù)圖形計算器的界面205
6.6.2 符號函數(shù)圖形計算器的輸入框操作206
6.6.3 符號函數(shù)圖形計算器的按鈕操作206
6.7 小結207
第7章 關系運算與邏輯運算208
7.1 邏輯類型的數(shù)據(jù)208
7.2 關系運算209
7.3 邏輯運算210
7.3.1 逐個元素的邏輯運算210
7.3.2 捷徑邏輯運算211
7.3.3 逐位邏輯運算212
7.4 邏輯函數(shù)與測試函數(shù)213
7.5 運算優(yōu)先級214
7.6 小結215
第8章 函數(shù)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 函數(shù)文件220
8.1.7 函數(shù)調用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 函數(shù)類型230
8.3.1 匿名函數(shù)230
8.3.2 M文件主函數(shù)232
8.3.3 嵌套函數(shù)232
8.3.4 子函數(shù)233
8.3.5 私有函數(shù)233
8.3.6 重載函數(shù)233
8.4 參數(shù)傳遞234
8.4.1 參數(shù)傳遞概述234
8.4.2 輸入和輸出參數(shù)的數(shù)目234
8.4.3 可變數(shù)目的參數(shù)傳遞235
8.4.4 返回被修改的輸入?yún)?shù)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 數(shù)據(jù)的輸入與輸出249
9.3.1 鍵盤輸入命令input250
9.3.2 屏幕輸出命令disp250
9.3.3 M數(shù)據(jù)文件的存儲/加載命令save/load250
9.3.4 格式化文本文件的存儲/讀取命令fprintf/fscanf250
9.3.5 二進制數(shù)據(jù)文件的存儲/讀取命令fwrite/fread251
9.3.6 數(shù)據(jù)文件行的存儲/讀取命令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 幾個常用數(shù)學方法的算法程序265
9.7 程序調試274
9.7.1 程序調試命令274
9.7.2 程序剖析275
9.8 小結279
第10章 數(shù)據(jù)圖形可視化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 其他圖形函數(shù)296
10.4 圖像299
10.4.1 圖像的類別和顯示299
10.4.2 圖像的讀寫301
10.5 函數(shù)繪制302
10.5.1 一元函數(shù)繪圖302
10.5.2 二元函數(shù)繪圖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函數(shù)314
11.2.1 get函數(shù)314
11.2.2 set函數(shù)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)代數(shù)環(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 讀寫圖像數(shù)據(jù)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 產(chǎn)生信號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 隨機信號的互相關函數(shù)383
14.2.2 隨機信號的互協(xié)方差函數(shù)385
14.2.3 譜分析——pwelch函數(shù)386
14.3 模擬濾波器設計388
14.3.1 巴特沃斯濾波器388
14.3.2 切比雪夫I型濾波器389
14.3.3 切比雪夫Ⅱ型濾波器390
14.4 IIR數(shù)字濾波器設計391
14.4.1 巴特沃斯數(shù)字濾波器設計392
14.4.2 切比雪夫I 型數(shù)字濾波器設計393
14.4.3 切比雪夫II 型數(shù)字濾波器設計394
14.5 小結395
第15章 MATLAB與小波分析396
15.1 傅里葉變換到小波分析396
15.1.1 傅里葉變換397
15.1.2 小波分析399
15.1.3 常用的小波函數(shù)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