本書詳細介紹了MATLAB R2007的全新操作界面,在此基礎上詳細介紹了MATLAB R2007的基本應用,主要包括基本運算方法、數(shù)組操作、矩陣運算、多項式與插值運算、M語言程序設計、圖形繪制、GUI設計、Simulink建模與仿真等,并結(jié)合相應的實例說明了各部分功能的具體應用,可使學習者快速入門并熟練掌握各部分功能的應用。
本書結(jié)構(gòu)清晰、內(nèi)容翔實,可以作為理工科高等院校相關(guān)專業(yè)的教材,也可以作為用戶學習 MATLAB 的參考書。
l由基礎到提高,循序漸進地講解各章節(jié)內(nèi)容。
l從實用角度出發(fā),詳盡介紹MATLAB的常用功能與操作。
l結(jié)合大量實例,深入講解各部分功能的應用。
◆MATLAB R2007入門
◆常用數(shù)學運算與操作
◆數(shù)組操作與矩陣代數(shù)運算
◆M語言程序設計流程
◆GUI用戶界面設計
◆Simulink建模與仿真
前 言
MATLAB是當前最優(yōu)秀的科學計算軟件之一,也是許多科學領域中分析、應用和開發(fā)的基本工具。MATLAB的全稱是 Matrix Laboratory,是由美國Mathworks公司于上世紀80年代推出的數(shù)學軟件,最初它是一種專門用于矩陣運算的軟件,經(jīng)過多年的發(fā)展,MATLAB已經(jīng)發(fā)展成為一種功能全面的軟件,幾乎可以解決科學計算中的所有問題。而且MATLAB編寫簡單、代碼效率高等優(yōu)點使得MATLAB在通信、信號處理、金融計算等領域都已經(jīng)被廣泛應用。
MATLAB R2007b為2007年的最新版本。新版本在原有版本的基礎上,升級了Simulink等模塊,增加了新功能,并支持Windows Vista等操作系統(tǒng),進一步增強了系統(tǒng)的功能及穩(wěn)定性。本書詳細介紹了MATLAB R2007b的功能和使用方法,并且按照由淺入深的順序安排章節(jié),依次介紹了MATLAB R2007b的基本應用、數(shù)學計算功能及高級應用,如編程功能、繪圖、GUI設計及Simulink建模等。通過詳細介紹各功能中的常用函數(shù)、函數(shù)的使用方法,并講解這些函數(shù)的具體應用,來使讀者掌握這些功能。每一章的開始部分簡要介紹本章的基本內(nèi)容,并且指定學習目標,使讀者能夠明確學習任務。課后配有習題,課后習題緊扣每章內(nèi)容,通過這些習題的訓練,讀者可以加深對MATLAB的了解,更加熟悉MATLAB的應用。通過閱讀此書,讀者可以快速、全面掌握MATLAB R2007b的使用方法,通過書中的實例及課后的習題訓練,可以達到熟練應用和融會貫通。
本書內(nèi)容共有13章。第1章介紹MATLAB的發(fā)展歷史、基本功能特點和軟件使用界面;第2章介紹MATLAB數(shù)學計算基本使用方法,包括MATLAB的常用數(shù)學函數(shù)、數(shù)據(jù)類型、操作函數(shù)及MATLAB腳本文件等,熟悉MATLAB的基本運算功能;第3章介紹MATLAB中的一維、二維和多維數(shù)組的創(chuàng)建、數(shù)組的基本運算、數(shù)組的常用操作;第4章介紹MATLAB中向量、數(shù)組的代數(shù)運算,包括矩陣運算、矩陣線性代數(shù)以及稀疏矩陣的相關(guān)操作;第5章介紹MATLAB的數(shù)學計算功能,包括函數(shù)運算、數(shù)據(jù)插值及微分方程求解等;第6章介紹MATLAB的其他數(shù)據(jù)結(jié)構(gòu),包括字符串、單元數(shù)組和結(jié)構(gòu)體,為MATLAB編程及更多功能的實現(xiàn)打下基礎;第7章介紹MATLAB程序設計,包括MATLAB程序設計的基本語法、規(guī)則及程序調(diào)試、程序優(yōu)化和異常處理等;第8章介紹MATLAB的符號運算工具箱,包括功能和實現(xiàn)等;第9章介紹MATLAB繪圖,繪圖是MATLAB的一個重要特點,主要介紹基本的圖形繪制、繪制圖形的常用操作、特殊圖形的繪制等內(nèi)容;第10章介紹MATLAB句柄圖形,為學習MATLAB圖形用戶接口(GUI)設計做好準備;第11章介紹MATLAB GUI設計;第12章介紹Simulink,主要是介紹Simulink建模的基本操作、Simulink的功能模塊庫以及S函數(shù);第13章介紹MATLAB中的常用輸入輸出操作。
本書是多人智慧的結(jié)晶,除封面署名的作者外,參與編寫和資料整理的人員還有王毅、姜輝、王丙峰、王國賢、周友文、趙梅、陳道允、湯杰、李秀竹、董宇飛 、王慶海 、李啟陽、王瑋、王立文等。由于時間較緊,書中難免有錯誤與不足之處,懇請專家和廣大讀者批評指正。在編寫本書的過程中參考了相關(guān)文獻,在此向這些文獻的作者深表感謝。我們的信箱是huchenhao@263.net。
目 錄
第1章 MATLAB R2007簡介1
1.1 MATLAB簡介1
1.1.1 初識 MATLAB1
1.1.2 MATLAB的基本功能2
1.1.3 獲取 MATLAB的新信息3
1.2 MATLAB R2007b
用戶界面概述3
1.2.1 啟動 MATLAB R2007b4
1.2.2 MATLAB R2007b
的主界面4
1.2.3 MATLAB R2007b
的主菜單及其功能4
1.2.4 MATLAB R2007b的窗口9
1.3 MATLAB R2007b
的路徑搜索11
1.3.1 MATLAB R2007b
的當前目錄11
1.3.2 MATLAB R2007b
的路徑搜索11
1.4 習題12
第2章 基本使用方法13
2.1 簡單的數(shù)學運算13
2.1.1 最簡單的計算器使用法13
2.1.2 MATLAB中的
常用數(shù)學函數(shù)14
2.1.3 MATLAB的數(shù)學運算符17
2.1.4 標點符號的使用19
2.2 常用的操作命令和快捷鍵20
2.3 MATLAB R2007b的
數(shù)據(jù)類型21
2.3.1 整數(shù)21
2.3.2 浮點數(shù)23
2.3.3 復數(shù)24
2.3.4 邏輯變量25
2.3.5 各種數(shù)據(jù)類型之間的轉(zhuǎn)換28
2.3.6 數(shù)據(jù)類型操作函數(shù)29
2.3.7 變量30
2.3.8 系統(tǒng)預定義的特殊變量31
2.4 MATLAB R2007b的運算符32
2.4.1 關(guān)系運算符33
2.4.2 邏輯運算符33
2.4.3 運算符優(yōu)先級34
2.5 MATLAB的一些基礎函數(shù)35
2.5.1 位操作函數(shù)35
2.5.2 邏輯運算函數(shù)35
2.5.3 集合函數(shù)36
2.5.4 時間與日期函數(shù)37
2.6 MATLAB腳本文件39
2.6.1 腳本文件的用法39
2.6.2 塊注釋40
2.6.3 代碼單元40
2.7 習題41
第3章 數(shù)組和數(shù)組運算42
3.1 數(shù)組的創(chuàng)建42
3.1.1 一維數(shù)組的創(chuàng)建42
3.1.2 二維數(shù)組的創(chuàng)建43
3.1.3 用其他方式生成數(shù)組44
3.2 數(shù)組尋址、查找和排序46
3.2.1 數(shù)組尋址與查找46
3.2.2 數(shù)組查找47
3.2.3 數(shù)組排序48
3.3 數(shù)組運算50
3.3.1 數(shù)組的數(shù)值運算50
3.3.2 數(shù)組的關(guān)系運算52
3.4 數(shù)組的擴展與裁剪53
3.5 多維數(shù)組58
3.5.1 多維數(shù)組的創(chuàng)建59
3.5.2 多維數(shù)組的其他運算61
3.6 數(shù)組的保存和裝載62
3.7 習題62
第4章 矩陣的代數(shù)運算63
4.1 向量、矩陣及其運算63
4.1.1 向量的點乘、叉乘
和混合積63
4.1.2 矩陣的基本運算65
4.1.3 特殊矩陣生成66
4.1.4 向量和矩陣的范數(shù)69
4.1.5 矩陣的條件數(shù)69
4.2 矩陣和線性代數(shù)70
4.2.1 線性方程組70
4.2.2 矩陣的逆、秩和行列式71
4.2.3 矩陣分解73
4.2.4 矩陣指數(shù)函數(shù)和冪函數(shù)77
4.2.5 矩陣特征值、特征向量
及特征多項式79
4.2.6 矩陣的標準正交基80
4.2.7 矩陣奇異值分解81
4.3 稀疏型矩陣82
4.3.1 稀疏型矩陣的生成82
4.3.2 稀疏矩陣與滿矩陣的
相互轉(zhuǎn)化84
4.3.3 稀疏矩陣的操作87
4.4 習題89
第5章 MATLAB的數(shù)學運算91
5.1 多項式與插值91
5.1.1 多項式的表示91
5.1.2 多項式的四則運算92
5.1.3 多項式的其他運算93
5.1.4 數(shù)據(jù)插值95
5.2 函數(shù)運算99
5.2.1 函數(shù)的表示99
5.2.2 數(shù)學函數(shù)圖像的繪制100
5.2.3 函數(shù)極值101
5.2.4 函數(shù)求解105
5.2.5 數(shù)值積分107
5.2.6 含參數(shù)函數(shù)的使用110
5.3 微分方程112
5.3.1 常微分方程初值問題112
5.3.2 常微分方程邊值問題116
5.4 習題117
第6章 字符串、單元數(shù)組
和結(jié)構(gòu)體119
6.1 字符串119
6.1.1 字符串的生成119
6.1.2 字符串的操作121
6.1.3 字符串與數(shù)值之間的轉(zhuǎn)化125
6.2 單元數(shù)組127
6.2.1 單元數(shù)組的生成127
6.2.2 單元數(shù)組的操作128
6.3 結(jié)構(gòu)體131
6.3.1 結(jié)構(gòu)體的生成132
6.3.2 結(jié)構(gòu)體的操作133
6.4 習題135
第7章 MATLAB R2007b
程序設計136
7.1 M文本文件介紹136
7.1.1 腳本M文件介紹137
7.1.2 函數(shù)M文件介紹138
7.2 函數(shù)流程控制138
7.2.1 順序結(jié)構(gòu)139
7.2.2 判斷語句(if…else…end)139
7.2.3 分支語句142
7.2.4 循環(huán)語句144
7.2.5 try…catch…end語句146
7.2.6 其他流程控制函數(shù)147
7.3 函數(shù)變量148
7.4 函數(shù)類型149
7.4.1 匿名函數(shù)149
7.4.2 主函數(shù)150
7.4.3 子函數(shù)150
7.4.4 嵌套函數(shù)150
7.4.5 私有函數(shù)152
7.4.6 重載函數(shù)152
7.5 函數(shù)操作153
7.5.1 函數(shù)句柄153
7.5.2 函數(shù)參數(shù)154
7.5.3 函數(shù)調(diào)用158
7.6 MATLAB編程錯誤處理158
7.6.1 通過try-catch語句
檢測錯誤158
7.6.2 對錯誤進行處理并且
從錯誤中恢復160
7.6.3 消息標志符162
7.6.4 警告處理165
7.7 程序設計的輔助函數(shù)165
7.7.1 表達式與函數(shù)的評估165
7.7.2 計時器函數(shù)167
7.8 調(diào)試程序168
7.8.1 直接調(diào)試法168
7.8.2 利用調(diào)試工具169
7.9 優(yōu)化程序171
7.9.1 通過Profiler進行
程序運行分析171
7.9.2 通過tic、toc函數(shù)進行
程序運行分析174
7.9.3 程序優(yōu)化的常用方法174
7.10 習題176
第8章 MATLAB的符號計算功能178
8.1 符號運算簡介178
8.1.1 符號對象179
8.1.2 符號變量、表達式
的生成180
8.1.3 findsym函數(shù)和subs函數(shù)182
8.1.4 符號和數(shù)值之間的轉(zhuǎn)化184
8.1.5 任意精度的計算185
8.1.6 創(chuàng)建符號方程186
8.2 符號表達式的化簡與替換187
8.2.1 符號表達式的化簡187
8.2.2 符號表達式的替換191
8.3 符號函數(shù)圖形繪制192
8.3.1 符號函數(shù)曲線的繪制192
8.3.2 符號函數(shù)曲面網(wǎng)格圖
及表面圖的繪制195
8.3.3 等值線的繪制196
8.4 符號微積分197
8.4.1 符號表達式求極限197
8.4.2 符號微分198
8.4.3 符號積分199
8.4.4 級數(shù)求和200
8.4.5 Taylor級數(shù)200
8.5 符號線性代數(shù)201
8.5.1 基本代數(shù)運算201
8.5.2 線性代數(shù)運算202
8.5.3 矩陣的特征值分解203
8.5.4 Jordon標準型205
8.5.5 奇異值分解205
8.6 符號方程的求解206
8.6.1 代數(shù)方程的求解207
8.6.2 求解代數(shù)方程組207
8.6.3 微分方程的求解208
8.6.4 微分方程組的求解209
8.6.5 復合方程210
8.6.6 反方程211
8.7 符號積分變換211
8.7.1 符號傅立葉變換212
8.7.2 符號拉普拉斯變換213
8.7.3 符號Z變換215
8.8 MAPLE函數(shù)的調(diào)用216
8.8.1 maple函數(shù)的使用216
8.8.2 mfun函數(shù)的使用217
8.9 符號函數(shù)計算器217
8.9.1 單變量符號函數(shù)計算器218
8.9.2 Taylor逼近計算器220
8.10 習題221
第9章 MATLAB繪圖224
9.1 MATLAB圖形窗口224
9.1.1 圖形窗口的創(chuàng)建與控制224
9.1.2 圖形窗口的菜單欄228
9.1.3 圖形窗口的工具欄233
9.2 基本圖形的繪制234
9.2.1 二維圖形的繪制234
9.2.2 三維圖形的繪制239
9.2.3 圖形的其他操作241
9.3 特殊圖形的繪制243
9.3.1 條形圖和面積圖
(Bar and Area Graphs)244
9.3.2 餅狀圖(Pie Charts)247
9.3.3 直方圖248
9.3.4 離散型數(shù)據(jù)圖249
9.3.5 方向矢量圖和
速度矢量圖250
9.3.6 等值線的繪制
(Contour Plots)252
9.4 圖形注釋253
9.4.1 添加基本注釋253
9.4.2 添加其他注釋255
9.5 三維圖形的高級控制264
9.5.1 查看圖形264
9.5.2 圖形的色彩控制270
9.5.3 光照控制272
9.6 習題273
第10章 句柄圖形274
10.1 MATLAB的圖形對象274
10.1.1 Root對象275
10.1.2 Figure對象275
10.1.3 Core對象276
10.1.4 Plot對象278
10.1.5 Annotation對象279
10.1.6 Group對象280
10.2 圖形對象的屬性280
10.3 圖形對象屬性值的
設置和查詢281
10.3.1 屬性值的設置282
10.3.2 對象的默認屬性值282
10.3.3 屬性值的查詢284
10.4 習題285
第11章 GUI(圖形用戶接口)設計286
11.1 GUI簡介286
11.1.1 GUI簡介286
11.1.2 GUI的可選控件287
11.1.3 創(chuàng)建簡單的GUI288
11.2 通過向?qū)?chuàng)建GUI界面295
11.2.1 啟動GUIDE295
11.2.2 向GUI中添加控件296
12.2.3 創(chuàng)建菜單298
11.3 編寫GUI代碼302
11.3.1 GUI文件302
11.3.2 響應函數(shù)303
11.3.3 控件編程307
11.3.4 通過GUIDE創(chuàng)建
GUI實例307
11.4 通過程序創(chuàng)建GUI310
11.4.1 用于創(chuàng)建GUI的函數(shù)310
11.4.2 程序創(chuàng)建GUI示例313
11.5 習題322
第12章 Simulink的建模與仿真323
12.1 Simulink模型的建立323
12.1.1 Simulink的啟動323
12.1.2 Simulink模型窗口
的建立324
12.1.3 Simulink模塊間
連線處理325
12.1.4 Simulink模塊
基本操作326
12.1.5 Simulink仿真設置327
12.2 Simulink模塊庫簡介332
12.2.1 連續(xù)模塊(Continuous)332
12.2.2 非連續(xù)模塊
(Discontinuous)332
12.2.3 離散模塊(Discrete)333
12.2.4 邏輯和位操作模塊(Logic
and Bit Operations)334
12.2.5 查表模塊
(Lookup Table)335
12.2.6 數(shù)學模塊
(Math Operations)335
12.2.7 模型檢測模塊
(Model Verification)337
12.2.8 模型擴充模塊
(Model-Wide Utilities)337
12.2.9 端口和子系統(tǒng)模塊
(Port and Subsystems)338
12.2.10 信號屬性模塊
(Signal Attributes)339
12.2.11 信號線路模塊
(Signal Routing)340
12.2.12 接收模塊(Sinks)341
12.2.13 輸入模塊(Sources)341
12.2.14 用戶自定義函數(shù)模塊
(User-Defined
Functions)342
12.3 S函數(shù)設計與應用343
12.3.1 S函數(shù)的介紹343
12.3.2 S函數(shù)的調(diào)用343
12.3.3 S函數(shù)設計344
12.4 Simulink仿真應用實例347
12.5 習題349
第13章 文件和數(shù)據(jù)的導入與導出350
13.1 數(shù)據(jù)基本操作350
13.1.1 文件的存儲350
13.1.2 數(shù)據(jù)導入351
13.1.3 文件的打開352
13.2 文本文件的讀寫353
13.3 低級文件I/O357
13.4 利用界面工具導入數(shù)據(jù)360
13.5 習題361
參考文獻362