MATLAB寶典(第3版)

MATLAB寶典(第3版)

《MATLAB寶典(第3版)》是2011年電子工業出版社出版的圖書,作者是陳杰。

內容簡介

《MATLAB寶典》的前兩版由於講解細緻、內容全面而深受廣大讀者的喜愛,上市以來長期占據各大MATLAB類圖書排行榜的前列。根據廣大讀者的反饋,作者對第2版進行了調整,並增加了這幾年工作中新的MATLAB套用體會。

本書由淺入深、循序漸進地介紹了MATLAB的知識體系及操作方法。全書共分為7個部分23章,另外在光碟上附贈2個章節。其中主要介紹了如何使用MATLAB進行數據分析、數據可視化的方法、MATLAB編程、圖形用戶界面、MATLAB仿真,以及檔案輸入/輸出、編譯器和應用程式接口等高級技術。本書最大的特色在於每一節的例子都經過精挑細選,具有很強的針對性,力求讓讀者通過親自動手做而掌握基本參數及製作技巧,學習儘可能多的知識。

本書適用於初、中級MATLAB用戶,同時也適合使用MATLAB的本科生、研究生和教師以及廣大科研工作人員作為參考用書。

目錄

第1部分 MATLAB基礎知識 1

第1章 MATLAB概述 2

1.1 MATLAB 7簡介 2

1.2 MATLAB 7的安裝 2

1.3 MATLAB 7的工作環境 5

1.3.1 操作界面簡介 6

1.3.2 運行命令視窗 6

1.3.3 命令視窗的顯示方式 7

1.3.4 數值結果的顯示方式 9

1.3.5 命令視窗的標點符號 10

1.3.6 輸入變數 12

1.3.7 處理複數 14

1.3.8 命令視窗的控制命令 15

1.3.9 使用歷史視窗 16

1.3.10 使用實錄命令 20

1.3.11 當前目錄瀏覽器和路徑管理 21

1.3.12 設定當前目錄 22

1.3.13 MATLAB的搜尋路徑 23

1.3.14 工作空間瀏覽器和數組編輯器 25

1.3.15 變數的編輯命令 26

1.3.16 數組編輯器 27

1.3.17 存取數據檔案 28

1.4 MATLAB 7的幫助系統 30

1.4.1 純文本幫助 30

1.4.2 演示(demo)幫助 31

1.4.3 幫助導航/瀏覽器 33

1.4.4 Contents幫助檔案目錄視窗 34

1.4.5 Index幫助檔案索引視窗 35

1.4.6 Search幫助檔案搜尋視窗 35

1.5 小結 36

第2章 數組 37

2.1 創建數值數組 37

2.1.1 一維數組的創建方法 37

2.1.2 二維數組的創建方法 38

2.1.3 使用下標創建三維數組 39

2.1.4 使用低維數組創建三維數組 40

2.1.5 使用創建函式創建三維數組 41

2.1.6 創建低維標準數組 43

2.1.7 創建高維標準數組 44

2.2 運算元值數組 45

2.2.1 選取低維數組的對角元素 45

2.2.2 低維數組的形式轉換 46

2.2.3 選取三角矩陣 47

2.2.4 Kronecker乘法 49

2.2.5 高維數組的對稱交換 50

2.2.6 高維數組的維序號移動 51

2.2.7 高維數組的廣義共軛轉置 52

2.2.8 高維數組的降維操作 53

2.3 小結 54

第3章 矩陣和架構 55

3.1 稀疏矩陣 55

3.1.1 稀疏矩陣的存儲方式 55

3.1.2 創建稀疏矩陣——使用sparse命令 56

3.1.3 創建稀疏矩陣——使用spdiags命令 57

3.1.4 查看稀疏矩陣的信息 58

3.1.5 稀疏矩陣的圖形化信息 59

3.2 字元串數組 60

3.2.1 創建字元串數組——直接輸入法 61

3.2.2 創建字元串數組——使用ASCII碼 61

3.2.3 創建字元串數組——使用函式 62

3.2.4 處理字元串數組的空格 63

3.2.5 讀取字元串數組的信息 64

3.3 構架數組 65

3.3.1 創建單構架數組——使用直接法 66

3.3.2 創建二維構架數組 67

3.3.3 創建三維構架數組 68

3.3.4 使用命令創建構架數組 69

3.3.5 訪問構架數組的數據 69

3.3.6 設定構架數組的域屬性 72

3.4 小結 74

第4章 矩陣分析 75

4.1 矩陣計算 75

4.1.1 進行範數分析——使用norm函式 75

4.1.2 進行範數分析——使用normest函式 78

4.1.3 條件數分析 80

4.1.4 數值矩陣的行列式 81

4.1.5 符號矩陣的行列式 82

4.1.6 矩陣的化零矩陣 83

4.2 線性方程組 84

4.2.1 非奇異線性方程組 84

4.2.2 奇異線性方程組 85

4.2.3 欠定線性方程組 87

4.2.4 超定線性方程組 88

4.3 矩陣分解 89

4.3.1 Cholesky分解 89

4.3.2 使用Cholesky分解求解方程組 91

4.3.3 不完全Cholesky分解 92

4.3.4 LU分解 93

4.3.5 不完全LU分解 96

4.3.6 QR分解 100

4.3.7 操作QR分解結果 101

4.3.8 奇異值分解 105

4.4 特徵值分析 107

4.4.1 特徵值和特徵向量 107

4.4.2 稀疏矩陣的特徵值和特徵向量 110

4.4.3 特徵值問題的條件數 111

4.4.4 特徵值的複數問題 113

4.5 小結 114

第2部分 數據分析 115

第5章 函式分析和數值運算 116

5.1 函式的零點 116

5.1.1 一元函式的零點 116

5.1.2 多元函式的零點 118

5.2 數值積分 120

5.2.1 一元函式的數值積分 120

5.2.2 使用Simulink求解數值積分 122

5.2.3 求解瑕積分 123

5.2.4 矩形區域的多重數值積分 124

5.2.5 變數區域的多重數值積分 125

5.3 機率論和數理統計 129

5.3.1 雙變數的機率分布 129

5.3.2 不同機率分布 131

5.3.3 數據分布分析 132

5.3.4 假設檢驗 133

5.4 小結 138

第6章 高級數值運算 139

6.1 插值 139

6.1.1 一維插值 139

6.1.2 人口數量預測——一維插值實例 140

6.1.3 二維插值 143

6.1.4 繪製二元函式圖形——二維插值實例 144

6.1.5 樣條插值 146

6.1.6 牛頓插值 147

6.1.7 多項式插值——牛頓插值實例 148

6.1.8 Chebyshev多項式插值 150

6.1.9 多項式插值——Chebyshev多項式插值實例 150

6.2 曲線擬合 152

6.2.1 多項式擬合 153

6.2.2 加權最小方差擬合 154

6.2.3 數據擬合——適用加權最小方差WLS方法 154

6.3 曲線擬合圖形界面 158

6.3.1 曲線擬合 158

6.3.2 繪製擬合殘差圖形 160

6.3.3 進行數據預測 161

6.4 傅立葉分析 163

6.4.1 離散傅立葉變換 163

6.4.2 FFT和DFT 165

6.4.3 DFT的物理含義 166

6.4.4 使用DFS進行插值 168

6.5 小結 171

第7章 最佳化 172

7.1 常見最佳化問題 172

7.1.1 無約束非線性最佳化 172

7.1.2 求解二元函式的最小值——無約束非線性最佳化 173

7.1.3 非線性最小方差 177

7.1.4 計算函式的非線性最小方差 177

7.1.5 有約束的非線性最佳化 179

7.1.6 計算多元函式的極值——有約束的非線性最佳化 180

7.1.7 最小最大值的最佳化問題 183

7.1.8 最佳化對比 186

7.1.9 線性規劃 187

7.1.10 二次規劃 190

7.1.11 使用遺傳算法求解二次規劃 191

7.2 使用遺傳算法求解最佳化 193

7.2.1 分析目標函式 194

7.2.2 最佳化求解 195

7.2.3 添加結果的可視性 197

7.2.4 設定算法的屬性 198

7.2.5 設定“種群”屬性 198

7.2.6 設定“中止”屬性 200

7.3 最佳化“Banana”函式——最佳化方法對比 201

7.3.1 分析目標函式 201

7.3.2 BFGS最佳化法求解 203

7.3.3 DFP最佳化法求解 204

7.3.4 “無約束非線性”最佳化求解 206

7.3.5 “最小方差”最佳化求解 207

7.4 繪製帳篷——複雜的二次規劃 208

7.4.1 設定約束條件 208

7.4.2 定義目標函式 210

7.4.3 進行最佳化求解 211

7.4.4 繪製最佳化求解的結果 213

7.5 小結 214

第8章 常微分方程 215

8.1 顯性常微分方程 215

8.1.1 剛性和非剛性方程組 216

8.1.2 設定允許誤差屬性 219

8.1.3 設定輸出參數屬性 221

8.1.4 設定解法器其他屬性 225

8.2 加權常微分方程 227

8.3 延遲微分方程 230

8.4 常微分方程的邊界問題 232

8.4.1 MATLAB求解邊界問題——bvp4c命令 232

8.4.2 求解帶邊界的常微分方程 233

8.5 小結 236

第9章 符號計算 237

9.1 符號對象和符號表達式 237

9.1.1 創建符號對象——使用sym命令 237

9.1.2 創建符號對象——使用syms命令 240

9.1.3 符號計算的運算符和函式 241

9.1.4 識別對象 242

9.1.5 確定符號表達式中的變數 243

9.2 符號精度計算 244

9.3 操作符號表達式 245

9.3.1 合併表達式——collect函式 246

9.3.2 展開表達式——expand函式 247

9.3.3 因式分解——factor函式 248

9.3.4 嵌套表達式——horner函式 249

9.3.5 計算最小分母公因式——numden函式 250

9.3.6 簡化表達式——simplify函式 251

9.3.7 最簡化表達式——simple函式 252

9.3.8 按書寫方式顯示表達式——pretty函式 254

9.4 替換符號表達式 256

9.4.1 替換重複字元串——subexpr函式 256

9.4.2 替換特定符號——subs函式 257

9.5 符號函式 259

9.5.1 求反函式——finverse函式 259

9.5.2 求複合函式——compose函式 260

9.6 符號微積分 261

9.6.1 求微分——diff函式 261

9.6.2 化簡微分結果 262

9.6.3 求解矩陣微分 263

9.6.4 向量微分jacobian函式 264

9.6.5 符號極限 265

9.6.6 求解無限極限 266

9.6.7 求解左右極限 266

9.6.8 符號積分 267

9.6.9 矩陣積分 269

9.6.10 證明積分等式 269

9.6.11 互動近似積分 270

9.6.12 符號級數求和 272

9.7 符號積分變換 273

9.7.1 傅立葉變換 273

9.7.2 拉普拉斯變換 275

9.7.3 Z變換 276

9.8 符號矩陣的計算 277

9.8.1 線性代數運算 277

9.8.2 特徵值運算 280

9.9 符號代數方程的求解 282

9.9.1 solve命令 283

9.9.2 求解非線性方程組 283

9.9.3 求解含參數方程組 283

9.9.4 求解超越方程組 284

9.10 符號微分方程的求解 284

9.10.1 dsolve命令 285

9.10.2 求解常微分方程 285

9.10.3 求解二階常微分方程 286

9.10.4 求解常微分方程組 286

9.11 利用maple的資源 287

9.11.1 調用maple的相關命令 287

9.11.2 查看maple的幫助 289

9.12 可視化符號分析 290

9.12.1 單變數函式分析界面 291

9.12.2 泰勒級數逼近分析界面 293

9.13 小結 294

第3部分 數據可視化 295

第10章 二維圖形 296

10.1 圖形的基礎知識 296

10.1.1 離散數據(函式)的可視化 296

10.1.2 連續函式的可視化 297

10.1.3 繪製圖表的基礎步驟 299

10.2 繪製二維圖形 299

10.2.1 繪製二維圖形——使用plot命令 300

10.2.2 設定曲線的屬性 302

10.2.3 設定坐標軸範圍 304

10.2.4 設定坐標軸顯示方式 305

10.2.5 設定坐標軸系統 306

10.2.6 圖形標識 307

10.2.7 疊繪 309

10.2.8 繪製雙坐標軸圖形 311

10.2.9 繪製多子圖 312

10.2.10 互動式圖形 313

10.2.11 使用fplot命令繪製圖形 315

10.2.12 使用ezplot命令繪製圖形 316

10.3 特殊圖形 318

10.3.1 繪製面積圖 318

10.3.2 繪製直方圖 319

10.3.3 繪製二維餅圖 321

10.3.4 繪製矢量圖 321

10.3.5 繪製等高線 322

10.3.6 繪製偽色彩圖 323

10.3.7 繪製誤差棒 324

10.3.8 繪製二維離散桿圖 325

10.3.9 繪製散點圖 326

10.3.10 極坐標圖形 328

10.3.11 柱坐標圖形 328

10.4 小結 329

第11章 三維圖形 330

11.1 繪製三維曲線 330

11.1.1 繪製三維圖形——plot3命令 330

11.1.2 繪製三維曲線圖——mesh命令 331

11.1.3 繪製等高線 333

11.1.4 繪製曲面圖——surf命令 333

11.2 編輯三維圖形 335

11.2.1 控制視角——view命令 335

11.2.2 控制旋轉——rotate命令 336

11.2.3 設定背景顏色 338

11.2.4 設定圖形顏色 339

11.2.5 設定數值軸的顏色 340

11.2.6 添加顏色標尺 341

11.2.7 設定圖形的著色 343

11.2.8 控制照明——light命令 344

11.2.9 控制照明——lighting命令 345

11.2.10 控制材質——material命令 345

11.2.11 控制透視 346

11.2.12 控制透明 347

11.3 三維圖形的簡易命令 349

11.4 四維圖形 351

11.4.1 繪製切片圖——slice命令 351

11.4.2 繪製切面等位線圖 352

11.4.3 繪製流線切面圖 353

11.5 圖形視窗 353

11.5.1 創建和控制圖形視窗 354

11.5.2 使用工具列編輯圖形 355

11.5.3 使用繪圖工具編輯圖形 358

11.5.4 使用圖形視窗進行數據分析 364

11.6 繪製複數變數圖形 367

11.6.1 繪製複數圖形原理 367

11.6.2 繪製複數圖形——CPLXMAP命令 368

11.6.3 繪製複數曲面圖——CPLXROOT命令 369

11.7 圖形的列印和輸出 370

11.7.1 圖形列印的選單操作方式 370

11.7.2 圖形列印的命令操作方式 372

11.8 小結 372

第4部分 MATLAB編程 373

第12章 MATLAB編程基礎知識 374

12.1 簡單實例——排序函式 374

12.1.1 編寫函式檔案 374

12.1.2 編寫腳本檔案 376

12.1.3 運行代碼 377

12.1.4 檢測代碼 378

12.2 M檔案編輯器 379

12.2.1 打開檔案編輯器 379

12.2.2 設定M檔案編輯器的屬性 380

12.2.3 設定M檔案編輯器的列印屬性 382

12.3 MATLAB的變數和關係式 383

12.3.1 M檔案的變數類型 383

12.3.2 M檔案的關鍵字 384

12.3.3 關係表達式 384

12.3.4 關係表達式的優先權 386

12.3.5 截斷誤差問題 387

12.3.6 邏輯表達式 388

12.3.7 邏輯運算函式 390

12.4 程式結構 390

12.4.1 順序結構 390

12.4.2 if分支結構 391

12.4.3 switch分支結構 394

12.4.4 try-catch結構 395

12.4.5 while循環結構 396

12.4.6 for循環結構 398

12.4.7 繪製拋物線軌跡——綜合實例 400

12.5 控制語句 404

12.5.1 結束循環——continue命令 404

12.5.2 終止循環——break命令 405

12.5.3 轉換控制——return命令 406

12.5.4 輸入控制權——input命令 407

12.5.5 使用鍵盤——keyboard命令 408

12.5.6 提示警告信息——error和warning命令 408

12.6 小結 410

第13章 MATLAB編程高級話題 411

13.1 程式的向量化 411

13.1.1 程式的向量化 411

13.1.2 向量化和循環結構對比 413

13.1.3 邏輯數組 415

13.1.4 使用logical命令創建邏輯數組 415

13.1.5 邏輯數組和向量化 416

13.2 腳本和函式 418

13.2.1 編寫腳本檔案 418

13.2.2 編寫函式檔案 419

13.2.3 編寫P碼檔案 420

13.3 變數傳遞 421

13.3.1 變數檢測命令 421

13.3.2 “變長度”變數函式 422

13.3.3 跨空間計算表達式的數值 426

13.3.4 跨空間賦值 428

13.4 字元串演算函式 429

13.4.1 內聯函式——inline 429

13.4.2 求解函式零點 429

13.4.3 繪製函式圖形 431

13.4.4 求解最值 433

13.5 程式的調試和剖析 435

13.5.1 直接調試法 435

13.5.2 工具調試法 438

13.5.3 程式剖析 441

13.6 小結 444

第5部分 圖形用戶界面 445

第14章 句柄圖形 446

14.1 句柄圖形體系 446

14.1.1 圖形對象 447

14.1.2 句柄對象 447

14.1.3 句柄圖形的結構 447

14.1.4 圖形對象的屬性 448

14.2 圖形句柄的操作 448

14.2.1 創建圖形對象 449

14.2.2 訪問圖形對象的句柄 451

14.2.3 使用句柄操作圖形對象 453

14.3 圖形對象的操作 455

14.3.1 設定圖像屬性——set命令 455

14.3.2 使用結構體設定屬性 457

14.3.3 查詢圖形對象的屬性——get命令 460

14.3.4 查看圖形對象的默認屬性 462

14.3.5 設定不同級別的屬性 463

14.3.6 設定圖形對象的默認屬性 465

14.4 高層繪圖命令 466

14.4.1 設定父對象屬性——NextPlot屬性 467

14.4.2 檢查NextPlot屬性——newplot命令 467

14.4.3 高層繪圖檔案的構成 468

14.5 坐標軸對象 469

14.5.1 坐標軸的幾何屬性 469

14.5.2 坐標軸的刻度屬性 471

14.5.3 坐標軸的照相機屬性 472

14.6 綜合實例 474

14.6.1 穿越圖形 475

14.6.2 動態反射圖形 478

14.7 小結 485

第15章 圖形用戶界面基礎 486

15.1 圖形用戶界面概述 486

15.2 使用M檔案創建GUI對象 487

15.2.1 編寫程式代碼 487

15.2.2 運行程式代碼 492

15.3 使用GUIDE創建GUI對象 494

15.3.1 啟動GUIDE 494

15.3.2 添加“編輯框”控制項 496

15.3.3 查看程式代碼 497

15.3.4 運行GUI對象 497

15.3.5 創建GUI的注意事項 498

15.4 小結 500

第16章 創建選單 501

16.1 定製標準選單 501

16.2 使用GUIDE創建自定義選單 502

16.2.1 創建圖形界面 503

16.2.2 設定選單屬性 506

16.2.3 添加控制項 507

16.2.4 添加“File”選單的回調函式 509

16.2.5 添加“Thresholding Method”選單的回調函式 511

16.2.6 添加“滾動條”控制項的回調函式 517

16.2.7 添加其他控制項的回調函式 519

16.2.8 編寫主調函式 520

16.2.9 運行GUI對象 521

16.3 使用M檔案創建自定義選單 523

16.3.1 演示GUI的功能 523

16.3.2 添加“File”選單的功能代碼 524

16.3.3 添加“Options”選單的功能代碼 526

16.3.4 添加“Graphs”選單的功能代碼 527

16.3.5 添加主調函式 531

16.3.6 運行GUI對象 533

16.4 創建快捷選單 535

16.4.1 編寫程式代碼 535

16.4.2 運行GUI對象 540

16.5 小結 542

第17章 添加控制項 543

17.1 創建GUI對象的用戶控制項 543

17.1.1 添加控制項組件 544

17.1.2 添加控制項的功能代碼 547

17.1.3 運行程式代碼 553

17.2 圖像切割界面——綜合案例 555

17.2.1 分析GUI對象 556

17.2.2 規劃GUI的設計過程 556

17.2.3 創建GUI的工具列對象 557

17.2.4 準備圖形對象的基礎檔案 558

17.2.5 處理指針對象 567

17.2.6 設定圖形對象的屬性 571

17.2.7 編寫主程式代碼 574

17.2.8 設定GUI對象的選單選項 601

17.2.9 檢測程式代碼 612

17.3 小結 618

第6部分 MATLAB仿真 619

第18章 Simulink基礎知識 620

18.1 Simulink概述 620

18.1.1 安裝Simulink 621

18.1.2 啟動Simulink 622

18.2 一個簡單的仿真系統 622

18.2.1 添加模組 623

18.2.2 設定模組屬性 624

18.2.3 連線模組 626

18.2.4 運行仿真系統 627

18.3 Simulink的工作環境 628

18.3.1 Simulink模型視窗界面 630

18.3.2 使用“File”選單 631

18.3.3 使用“Edit”選單 632

18.3.4 使用“View”選單 633

18.3.5 使用“Simulation”選單 635

18.3.6 使用“Help”選單 636

18.4 Simulink中的數據類型 636

18.4.1 Simulink支持的數據類型 637

18.4.2 數據傳遞 639

18.4.3 向量化模組 641

18.4.4 使用Mux模組 642

18.4.5 標量擴展 644

18.5 Simulink的基本操作 645

18.5.1 Simulink模型的工作原理 645

18.5.2 操作模組 646

18.5.3 顯示模組的屬性 647

18.5.4 顯示輸出數值 648

18.5.5 連線線的分支 649

18.5.6 彩色顯示信號線 650

18.5.7 設定連線線的屬性 651

18.6 Simulink的信號 651

18.6.1 創建信號 651

18.6.2 添加信號標籤 652

18.6.3 複數信號 652

18.6.4 虛擬信號 653

18.6.5 控制信號 655

18.6.6 信號匯流排 657

18.6.7 信號組 661

18.6.8 使用自定義信號源 666

18.6.9 信號接收器 668

18.7 Simulink仿真的設定 672

18.7.1 設定解算器參數 673

18.7.2 仿真數據的輸入輸出設定 674

18.7.3 仿真診斷設定 676

18.8 小結 677

第19章 Simulink建模和子系統 678

19.1 Simulink線性系統建模 678

19.1.1 線性系統建模簡介 678

19.1.2 求解拋投小球的軌跡 680

19.1.3 求解二階微分方程 682

19.1.4 使用傳遞函式 686

19.1.5 使用狀態方程 687

19.1.6 “積分器”模組的工作原理 688

19.2 非線性系統建模 689

19.2.1 非線性系統建模簡介 690

19.2.2 求解非線性摩擦模型 692

19.3 子系統 699

19.3.1 子系統的基礎知識 699

19.3.2 創建子系統 699

19.3.3 使用模組組合子系統 701

19.4 信號輸出系統——子系統實例 703

19.4.1 添加控制信號 703

19.4.2 添加子系統模組 704

19.4.3 運行仿真系統 706

19.5 封裝子系統 707

19.5.1 封裝子系統的創建方法 708

19.5.2 封裝子系統的步驟 708

19.6 ABS系統——封裝子系統實例 711

19.6.1 添加“Bang-bang controller”子系統 711

19.6.2 添加“brake torque”子系統 713

19.6.3 添加“tire torque”子系統 713

19.6.4 添加子系統的程式代碼 715

19.6.5 添加“Subsystem”子系統 717

19.6.6 運行仿真系統 719

19.7 使能子系統 721

19.7.1 創建使能子系統 721

19.7.2 信號輸出系統——使能子系統實例 722

19.8 觸發子系統 726

19.8.1 觸發子系統簡介 726

19.8.2 觸發子系統的屬性 726

19.9 觸發子系統實例 728

19.9.1 添加系統模組 729

19.9.2 設定“Throttle & Manifold”子系統屬性 730

19.9.3 設定“Intake”子系統屬性 731

19.9.4 設定“Compression”子系統屬性 732

19.9.5 設定“Combustion”子系統屬性 733

19.9.6 設定“Drag Torque”子系統屬性 733

19.9.7 設定“Vehicle Dynamics”子系統屬性 734

19.9.8 設定“valve timing”子系統屬性 734

19.9.9 運行仿真系統 735

19.10 小結 736

第20章 S函式和仿真結果分析 737

20.1 S函式 737

20.1.1 S函式概述 737

20.1.2 S函式的運行機理 738

20.1.3 S函式模板 738

20.1.4 添加S函式模組 741

20.1.5 添加S函式程式代碼 743

20.1.6 運行仿真 745

20.2 振盪運行系統——S函式綜合實例 746

20.2.1 添加系統模組 746

20.2.2 添加S函式的程式代碼 748

20.2.3 添加子系統模組 750

20.2.4 運行仿真系統 753

20.3 分析仿真結果 754

20.3.1 分析Simulink模型的特徵 754

20.3.2 使用Sim命令 756

20.3.3 使用simset命令 757

20.3.4 模型的線性化 760

20.3.5 系統平衡點分析 762

20.4 交替執行系統——綜合實例1 764

20.4.1 添加系統模組 764

20.4.2 設定系統模組的屬性 765

20.4.3 添加“Enabled”子系統 768

20.4.4 運行仿真系統 771

20.5 雷達軌跡分析——綜合實例2 772

20.5.1 系統模組簡介 772

20.5.2 添加系統模組 772

20.5.3 添加“Cross-Axis Acceleration Model”子系統 775

20.5.4 添加“Cartesian to Polar”子系統 775

20.5.5 添加“Radar Kalman Filter”子系統 777

20.5.6 添加程式代碼 779

20.5.7 運行仿真系統 781

20.6 小結 782

第7部分 高級套用 783

第21章 檔案I/O 784

21.1 處理檔案名稱稱 784

21.2 打開和關閉檔案 786

21.2.1 打開檔案 786

21.2.2 關閉檔案 788

21.3 處理二進制檔案 789

21.3.1 讀取M檔案 789

21.3.2 讀取TXT檔案 792

21.3.3 寫入二進制檔案 794

21.4 處理文本檔案 795

21.4.1 讀取文本檔案 795

21.4.2 使用csvwrite命令讀入文本檔案 800

21.4.3 使用dlmwrite命令讀入文本檔案 801

21.5 處理圖像 802

21.6 小結 805

第22章 MATLAB編譯器 806

22.1 編譯器概述 806

22.1.1 編譯器的功能 806

22.1.2 Complier 4.0的性能改進 807

22.2 編譯器的安裝和配置 807

22.2.1 前提準備 807

22.2.2 配置編譯器 808

22.3 編譯過程 813

22.3.1 安裝MCR 813

22.3.2 代碼的編譯過程 814

22.4 編譯命令 815

22.4.1 編譯命令的格式和選項 815

22.4.2 處理腳本檔案 816

22.5 創建獨立運行的程式 818

22.5.1 編譯M檔案 818

22.5.2 編譯M和C的混合檔案 821

22.5.3 編譯包含繪圖命令的M檔案 823

22.6 小結 828

第23章 應用程式接口 829

23.1 C語言MEX檔案 829

23.1.1 MEX檔案的數據 829

23.1.2 MEX檔案的結構 830

23.1.3 MEX檔案的實例 833

23.2 MAT檔案 837

23.2.1 使用C語言創建MAT檔案 838

23.2.2 使用Fortran語言創建MAT檔案 841

23.3 MATLAB引擎技術 844

23.3.1 引擎技術概念 845

23.3.2 引擎技術套用 845

23.4 Java接口 849

23.4.1 Java接口 849

23.4.2 Java接口套用 855

23.5 小結 860

配套光碟中的內容

第8部分 用戶工具箱 861

第24章 圖形圖像工具箱 862

24.1 MATLAB中的圖像 862

24.1.1 圖像類型 862

24.1.2 多幀圖像 864

24.1.3 讀取圖像檔案 865

24.1.4 查看圖像檔案信息 867

24.2 顯示圖像 869

24.2.1 默認顯示方式 869

24.2.2 添加顏色條 869

24.2.3 顯示多幀圖像 870

24.2.4 顯示動畫 871

24.2.5 三維材質圖像 872

24.3 圖像的幾何運算 873

24.3.1 縮放圖像 873

24.3.2 旋轉圖像 875

24.3.3 裁剪圖像 877

24.4 圖像的灰度變換 878

24.4.1 圖像的直方圖 878

24.4.2 灰度變換 880

24.4.3 均衡直方圖 882

24.5 圖像的濾波 883

24.6 分析圖像 886

24.6.1 分析圖像的像素信息 886

24.6.2 分析圖像的灰度信息 887

24.6.3 繪製等高圖 888

24.7 小結 889

第25章 信號工具箱 890

25.1 產生信號 890

25.1.1 周期方波和鋸齒波 890

25.1.2 周期sinc波 891

25.1.3 高斯調幅正弦波 892

25.1.4 調頻信號 893

25.1.5 高斯分布隨機序列 894

25.2 隨機信號處理 895

25.2.1 隨機信號的互相關函式 895

25.2.2 隨機信號的互協方差函式 896

25.2.3 譜分析——psd函式 897

25.2.4 譜分析——pwelch函式 899

25.3 模擬濾波器設計 900

25.3.1 巴特沃斯濾波器 900

25.3.2 切比雪夫Ⅰ型濾波器 901

25.3.3 切比雪夫Ⅱ型濾波器 902

25.4 IIR數字濾波器設計 903

25.4.1 巴特沃斯數字濾波器設計 904

25.4.2 切比雪夫I型數字濾波器設計 905

25.4.3 切比雪夫II型數字濾波器設計 907

25.5 小結 908

附錄A MATLAB常用函式檢索表 909

前言

MATLAB是Mathworks公司推出的一套高性能數值計算和可視化軟體,它集數值分析、矩陣運算、信號處理和圖形顯示於一體,在系統建模和仿真、科學和工程繪圖及應用程式開發等方面有著廣泛套用。MATLAB以著名的線性代數軟體包LINPAK和特徵值計算軟體包EISPACK的子程式為基礎,發展為一種開發性程式設計軟體,因此MATLAB已經由簡單的矩陣計算軟體分析發展成為通用性極高、帶有多種實用工具的運算操作平台。

為了幫助眾多從業者提高軟體使用及操作水平,作者精心編著了本書。本書依照讀者的學習規律,首先介紹基本概念和基本操作,在讀者掌握了這些基本概念和基本操作的基礎上,再對內容進行深入的講解,嚴格遵循由淺入深、循序漸進的原則。本書按照MATLAB內在的聯繫將各種工具、命令和命令面板交織編排在一起,這樣編排雖然不像幫助文檔那樣有層次感,但是對理解和掌握MATLAB卻是大有幫助的。

本書在內容的編排和目錄組織上都十分講究,爭取讓讀者能夠快速掌握軟體的使用方法。講解具體知識的時候,儘量避免冗長的知識講解,直接切入主題,告訴讀者如何實現特定功能,讓讀者在實際操作中熟悉軟體的使用。

和其他書籍相比,本書有何特點

1.取材廣泛,內容充實

作者在講解每一個知識點之前,充分考慮了MATLAB的知識和實踐工作的結合,精心挑選數學研究、圖形設計、工程運用等各個領域的套用,使讀者不僅僅單純地學到MATLAB的操作技巧,而且對創意、思路有所提高。

2.內容深入

本書的所有實例都有一定的代表性和通用性,並不是為單純介紹某個命令而選取的,因此有些實例的步驟比較多,綜合了MATLAB的多個知識點,能夠提高用戶綜合使用知識的能力。

3.講解仔細

每個實例的製作步驟都以通俗易懂的語言闡述,並穿插講解和技巧文字,在閱讀時就像聽課一樣詳細而貼切。讀者只需按照步驟操作,就可以學習到MATLAB的相關功能。

本書包括的內容

本書總共包括8個部分25章的內容,全面地介紹了MATLAB的各方面套用,下面詳細介紹各章節的內容。

第1部分(第1章至第4章)介紹了MATLAB的基礎知識,主要包括MATLAB概述、數組、矩陣和架構及矩陣分析。

第2部分(第5章至第9章)主要講解如何使用MATLAB進行數據分析,內容包括函式分析和數值運算、高級數值運算、最佳化、常微分方程和符號運算。

第3部分(第10章和第11章)詳細分析了數據可視化的方法,主要講解了二維圖形和三維圖形的內容。

第4部分(第12章和第13章)介紹了MATLAB編程的內容,主要包括MATLAB編程的基礎知識和高級話題。

第5部分(第14章至第17章)詳細講解了圖形用戶界面的內容,主要包括句柄圖形、GUI基礎、創建選單和添加控制項等。

第6部分(第18章至第20章)主要介紹了MATLAB仿真的內容,包括Simulink基礎知識、Simulink建模和子系統、S函式和仿真結果分析。

第7部分(第21章至第23章)講解了MATLAB的高級套用,包括檔案輸入/輸出、編譯器和應用程式接口。

第8部分(第24章和第25章)將放在隨書附贈的光碟中,主要內容是用戶工具箱,主要介紹了圖形圖像工具箱和信號工具箱。

讀者評價摘選

本書第一版上市以來獲得喜人銷量,同時得到了讀者的廣泛好評。下面節選幾位熱心讀者在噹噹網上的評價,以饗讀者。

很實用的一本書!而且講得也比較系統。

——網友ID:zml829@***.***

堪稱MATLAB界的權威之作!

——網友ID:liuyanhe

內容非常豐富!對於科研來說已經足夠!讚一個!

——網友ID:yanxhia

儘管作為一個初學者,但是擁有《MATLAB寶典》,我確實能自由應對美國大學生數學建模比賽的各種情況了。希望在初學階段,每個人都擁有一本。不必記住所有,但能運用一切。

——網友ID:沙灘紅葉

本書作者

本書主要由陳杰編寫。其他參與編寫的人員有張增強、於鋒、張偉、曾廣平、劉海峰、劉濤、趙寶永、鄭蓮華、張濤、楊強、陳濤、羅淵文、李居英、郭永勝等。在此對所有參與編寫的人表示感謝!

本書知識全面、實例精彩、指導性強,力求以全面的知識性及豐富的實例來指導讀者透徹學習MATLAB各方面的技術。本書適用於初、中級MATLAB用戶,同時也適合使用MATLAB的本科生、研究生和教師以及廣大科研工作人員作為參考用書,對高級讀者也有一定的啟發意義。

作者

2010年歲末

相關詞條

相關搜尋

熱門詞條

聯絡我們