內容簡介
MATLAB語言是進行科學計算的利器。本書系統地論述了MATLAB功能及使用MATLAB語言編程的方法。全書內容包括MATLAB語言的常用數據結構和語句結構、矩陣的代數運算、**函式的計算方法與數據處理的方法、MATLAB語言的流程控制結構與套用、MATLAB函式編寫與調試,以及MATLAB的科學可視化方法。此外,本書還介紹了MATLAB語言的接口設計、面向對象的程式設計方法與圖形用戶界面設計方法等。 本書可作為一般讀者學習和掌握MATLAB語言的工具圖書,也可以作為高等學校理工科各類專業的本科生與研究生學習計算機數學語言(MATLAB)的教材。
圖書目錄
第1章計算機數學語言概述
1.1 數學問題計算機求解概述1
1.1.1 為什麼要學習計算機數學語言· 1
1.1.2 數學問題的解析解與數值解· 5
1.1.3 數學運算問題軟體包發展概述· 6
1.1.4 常規計算機語言的局限性 7
1.2 計算機數學語言簡介 9
1.2.1 計算機數學語言的出現 9
1.2.2 有代表性的計算機數學語言· 10
1.3 科學運算問題的三步求解方法 10
本章習題 13
第2章MATLAB語言程式設計基礎 15
2.1 MATLAB命令視窗與操作· 17
2.1.1 MATLAB的命令視窗· 17
2.1.2 MATLAB的工作路徑設定 18
2.1.3 注釋語句· 19
2.1.4 MATLAB的工作空間與管理 20
2.1.5 MATLAB的其他輔助工具 20
2.1.6 在線上幫助系統 21
2.2 MATLAB基本操作命令· 23
2.2.1 變數名命名規則 23
2.2.2 保留的常數· 23
2.2.3 顯示格式的設定 25
2.2.4 底層作業系統命令 25
2.2.5 MATLAB的人機互動函式 26
2.3 常用數據結構· 26
2.3.1 數值型數據· 26
2.3.2 符號型數據· 28
2.3.3 符號型函式· 30
2.3.4 任意符號型矩陣的生成 30
2.3.5 任意矩陣函式生成 31
2.3.6 整型變數與邏輯變數 32
2.3.7 數據結構類型的識別 32
2.3.8 矩陣的維數與長度 32
2.3.9 屬性驗證函式 33
2.4 字元串數據結構· 34
2.4.1 一般字元串的表示 34
2.4.2 字元串的處理方法 35
2.4.3 字元串的轉換與讀寫方法 36
2.4.4 字元串命令的執行 38
2.4.5 MuPAD 接口函式的編寫· 38
2.4.6 字元串的雙引號描述方法 39
2.5 其他常用數據結構 39
2.5.1 多維數組· 39
2.5.2 單元數組· 40
2.5.3 表格數據· 41
2.5.4 結構體· 43
2.5.5 其他數據結構 44
2.6 MATLAB 的基本語句結構· 44
2.6.1 直接賦值語句 45
2.6.2 函式調用語句 45
2.6.3 多樣的函式調用機制 46
2.6.4 冒號表達式· 46
2.6.5 子矩陣的提取 47
2.6.6 等間距行向量的生成 47
2.7 數據檔案的讀取與存儲 48
2.7.1 數據檔案的讀取與存儲命令· 48
2.7.2 檔案讀寫的底層方法 49
2.7.3 Excel檔案的讀取與存儲· 50
本章習題 52
第3章基本數學運算· 54
3.1 矩陣的算術運算· 55
3.1.1 矩陣的轉置、翻轉與旋轉· 55
3.1.2 矩陣的四則運算 56
3.1.3 複數矩陣及其變換 57
3.1.4 矩陣乘方與開方 58
3.1.5 矩陣的點運算 59
3.2 矩陣的邏輯運算與比較運算 60
3.2.1 矩陣的邏輯運算 60
3.2.2 矩陣的比較運算 61
3.2.3 矩陣元素的查詢命令 61
3.2.4 屬性判定語句 62
3.2.5 非零元素個數統計 63
3.3 超越函式的計算· 64
3.3.1 指數函式與對數函式的計算· 64
3.3.2 三角函式的計算 65
3.3.3 反三角函式的計算 66
3.3.4 矩陣的超越函式 67
3.4 符號表達式的化簡與變換 69
3.4.1 多項式的運算 69
3.4.2 多項式矩陣的計算 70
3.4.3 三角函式的變換與化簡 71
3.4.4 符號表達式的化簡 72
3.4.5 符號表達式的變數替換 73
3.4.6 符號運算結果的轉換 74
3.4.7 數學歸納法的實現 75
3.5 基本數據運算· 76
3.5.1 數據的取整與有理化運算 76
3.5.2 向量的排序、最大值與最小值 77
3.5.3 數據的均值、方差與標準差· 79
3.5.4 質因數與質因式 80
3.5.5 排列與組合· 81
3.5.6 格線數據的生成 83 本章習題 84
第4章MATLAB語言的流程結構 88
4.1 循環結構· 89
4.1.1 for 循環結構 89
4.1.2 while 循環結構 91
4.1.3 疊代方法的循環實現 92
4.1.4 遞推方法與實現 93
4.1.5 循環結構的輔助語句 95
4.1.6 冗長符號表達式的完全顯示· 97
4.2 條件轉移結構· 98
4.2.1 簡單的條件轉移結構 98
4.2.2 條件轉移結構的一般形式 98
4.2.3 流程控制的套用——方程的整數解· 100
4.3 向量化編程· 101
4.3.1 向量化編程實現 101
4.3.2 方程整數解的向量化方法 103
4.3.3 分段函式的向量化表示 104
4.4 開關結構· 107
4.5 試探結構· 109 本章習題 111
第5章函式編寫與調試 114
5.1 MATLAB 的腳本程式· 115
5.2 MATLAB 語言函式的基本結構 116
5.2.1 函式的基本結構 116
5.2.2 函式名的命令規則 118
5.2.3 函式編寫舉例 118
5.2.4 變元的檢測段落 122
5.3 函式編寫的技巧· 124
5.3.1 遞歸調用· 124
5.3.2 可變輸入輸出個數的處理 126
5.3.3 輸入變元的容錯處理 128
5.3.4 全局變數· 129
5.3.5 存取MATLAB工作空間中的變數 130
5.3.6匿名函式與inline函式· 131
5.3.7 子函式與私有函式 133
5.3.8 駐留變數與鎖定函式 134
5.4 MATLAB 程式的調試· 134
5.4.1 MATLAB 程式的跟蹤調試 134
5.4.2 偽代碼與代碼保密處理 137
5.4.3 MATLAB 函式的排錯· 138
5.5 MATLAB 實時編輯器· 138
5.5.1 實時文檔編輯界面 139
5.5.2 建立一個簡單的文檔 139
5.5.3 嵌入代碼的運行 140
5.5.4 在實時編輯器中嵌入對象 141
5.5.5 由LATEX描述數學公式· 143
5.5.6 實時編輯文檔的輸出 146 本章習題 146
第6章二維圖形繪製· 149
6.1 二維曲線的繪製· 150
6.1.1 二元數據的曲線繪製 150
6.1.2 數學函式的曲線繪製 153
6.1.3 分段函式的曲線繪製 155
6.1.4 參數方程的曲線繪製 156
6.1.5 二維圖形的標題處理 158
6.1.6 多縱軸曲線的繪製 159
6.2 圖形修飾· 161
6.2.1 基於命令的修飾方法 161
6.2.2 利用界面的修飾方法 164
6.2.3LATEX支持的修飾命令· 165
6.2.4 數學公式疊印與宏包設計 165
6.3 其他二維圖形繪製語句 166
6.3.1 極坐標曲線的繪製 166
6.3.2 離散信號的圖形表示 169
6.3.3 直方圖與餅圖 170
6.3.4 填充圖· 172
6.3.5 箱線圖· 173
6.3.6 對數坐標圖· 174
6.3.7 誤差限圖· 175
6.3.8 動態軌跡顯示 175
6.3.9 二維動畫的顯示 176
6.4 圖形視窗的操作與分割 177
6.4.1 圖形視窗的操作 177
6.4.2 圖形視窗的規範分割 178
6.4.3 圖形視窗的任意分割 179
6.5 隱函式繪製及套用 180
6.5.1 二元隱函式的曲線繪製 181
6.5.2 曲線的光滑處理 183
6.5.3 二元聯立方程的圖解法 183
6.6 圖像的顯示與簡單處理 185
6.6.1 圖像的輸入· 185
6.6.2 圖像的編輯與顯示 186
6.6.3 顏色空間轉換 187
6.6.4 邊緣檢測· 187
6.6.5 直方圖均衡化 187
6.7 MATLAB 圖形的輸出方法· 189
6.7.1 圖形輸出選單與套用 189
6.7.2 列印預覽對話框 190
6.7.3 圖形輸出命令 190
本章習題 191
第7章三維圖形表示· 194
7.1 三維曲線繪製· 195
7.1.1 三維曲線繪製命令 195
7.1.2 已知數學函式的三維曲線繪製· 196
7.1.3 三維填充圖· 197
7.1.4 三維直方圖與餅圖 198
7.1.5 條帶圖· 200
7.2 三維曲面繪製· 202
7.2.1 格線圖與表面圖 202
7.2.2 表面圖的陰影與光照 206
7.2.3 其他表面圖繪製 207
7.2.4 圖像檔案的三維表面圖 209
7.2.5 已知函式的表面圖 210
7.2.6 散點數據的表面圖繪製 211
7.3 三維圖形視角設定 212
7.3.1 視角的定義· 213
7.3.2 三視圖的設定 214
7.3.3 任意視角的設定 214
7.4 其他三維繪圖· 215
7.4.1 等高線· 215
7.4.2 曲面的交線· 216
7.4.3 矢量圖· 219
7.4.4 三元隱函式的繪圖 220
7.4.5 隱函式曲面的交線 221
7.4.6 參數方程的表面圖 223
7.4.7 複變函數的三維表面圖 224
7.4.8 球面與柱面· 225
7.4.9 Voronoi圖與Delaunay剖分· 228
7.5 三維圖形的特殊處理 230
7.5.1 三維曲面的旋轉 230
7.5.2 坐標軸變換的三維曲面 232
7.5.3 三維圖形的剪下 232
7.5.4 三維表面圖貼面處理 233
7.6 四維圖形繪製· 234
7.6.1 三維動畫的製作與播放 234
7.6.2 切片圖· 235
7.6.3 體視化界面· 236 本章習題 238
第8章MATLAB語言與其他語言的接口· 240
8.1 C語言環境下提供的MATLAB變數格式及函式概述· 241
8.1.1 編譯程式的環境設定 241
8.1.2 Mex下的數據結構 242
8.1.3 Mex檔案的結構 243
8.1.4 Mex檔案的編寫方法與步驟· 246
8.2 不同數據結構的Mex處理 248
8.2.1 不同類型輸入輸出變元的處理· 248
8.2.2 字元串變數的讀寫 249
8.2.3 多維數組的處理 250
8.2.4 單元數組的處理 251
8.2.5 MAT 檔案的讀寫方法· 252
8.3 C程式中直接調用MATLAB函式 255
8.4 MATLAB 函式的獨立程式轉換 259
8.5 並行計算簡介· 260 本章習題 263
第9章面向對象程式設計基礎 264
9.1 面向對象編程的基本概念 265
9.1.1 類與對象的概念 265
9.1.2 類與對象數據結構 266
9.2 類的設計· 267
9.2.1 類的設計方法 268
9.2.2 類的定義與輸入 268
9.2.3 類的顯示· 270
9.3 重載函式的編寫· 271
9.3.1 加法的重載函式編寫 272
9.3.2 合併同類項的化簡函式 273
9.3.3 減法重載函式 274
9.3.4 乘法重載函式 274
9.3.5 乘方運算重載函式 277
9.3.6 其他回響函式 278
9.3.7 域的賦值與提取 279
9.4 類的繼承與擴展· 279
9.4.1 擴展類的定義與顯示 280
9.4.2 ftf對象的連線重載函式 282
9.4.3 分數階傳遞函式的頻域分析· 285
本章習題 287
第10章圖形用戶界面設計技術· 289
10.1 MATLAB 語言圖形界面編程基礎· 290
10.1.1 MATLAB 圖形界面中各對象的關係· 290
10.1.2 視窗對象及屬性設定· 291
10.1.3 視窗的常用屬性· 291
10.1.4 對象屬性的讀取與修改· 291
10.1.5 簡易對話框 294
10.1.6 標準對話框及其調用· 296
10.2 MATLAB 圖形界面設計基本組件
10.2.1 MATLAB 支持的基本組件· 300
10.2.2 組件的常用屬性· 301
10.2.3 組件句柄的獲取· 302
10.2.4 組件的另一種描述方法 303
10.3 App設計工具——AppDesigner303
10.3.1 App Designer 簡介 303
10.3.2 界面設計方法簡介· 305
10.3.3App的輸入變元· 309
10.3.4多視窗App設計· 312
10.4 圖形用戶界面的高級技術· 314
10.4.1 選項卡組的使用· 314
10.4.2 選單與工具列的設計· 316
10.4.3 ActiveX 組件的嵌入與編程 317
10.5 程式打包與發布· 319
10.5.1 App轉換為執行檔· 319
10.5.2 工具箱的打包處理· 321
本章習題 322
參考文獻· 324
MATLAB 函式名索引· 326
術語索引· 333