本書由紙質媒體和電子媒體有機結合而成。紙質媒體便于讀者進行系統、、長時間連續地閱讀,便于隨心翻閱、瀏覽;而電子媒體向讀者提供色彩信息和動態交互的軟件環境,提供讀者實踐本書內容所需的各種文件。
本書包含MATLAB使用和數學知識的豐富層次。編著本書有四個主要目的:(1)幫助初學者順利跨入MATLAB大門;(2)、多層次、細致而深入地敘述MATLAB中數值、字符串、胞元、構架、邏輯、函數句柄六種重要數據類型的應用規則、相互配用和編程規范;(3)由淺入深地闡述MATLAB三種建模、分析、仿真環境——數值計算、符號計算和Simulink環境的特征和使用要領;(4)以實例講述MATLAB代表的現代計算能力對傳統算法和思維的影響。
全書包含276個算例。所有算例的程序都是、完整的。讀者可以完整、地重現本書所提供的算例結果,以掌握要領,舉一反三,到達靈活應用的境地。
本書正文和算例所涉及的指令全部羅列在"附錄C索引"中。該索引與目錄組合,可為讀者提供比較完善的快速查閱環境。
隨書光盤中包含:黑白紙質印刷版無法表現的各種彩色圖形;用Mbook模板制作的"活性"的各章DOC文檔;各算例運行所需的M文件和MAT數據文件;Simulink塊圖模型的MDL文件;圖形用戶界面的FIG文件。
本書既可作為理工科院校研究生、本科生系統學習的教材,又可以作為廣大科技工作者借助MATLAB進行科學計算及仿真的自學和參考用書。
張志涌 籍貫無錫,教授,博士生導師,享受國務院專項津貼;IEEE高級會員、中國智能自動化專委會委員、中國機器人競賽工作委員會委員、江蘇省自動化學會常務理事;先后受教育于清華大學、上海交通大學、荷蘭王國Eindhoven技術大學。
1989年至今,先后用MATLAB 3.0及以后各版本,從事系統辨識、故障診斷、系統仿真、智能計算和控制、無線信道盲辨識及盲均衡、仿真機器人足球和多智能體等方面的研究,先后主持和完成國家自然科學基金、省部基金資助的科研項目10多項,以及時作者身份80余篇。
1993年起,先后為研究生、本科生講授模式識別、系統辨識、故障診斷、自控原理、盲系統辨識和盲信號處理、MATLAB與仿真等課程。其中MATLAB與仿真課程,至今已有十多年的持續講授經驗。
2003年起,利用MATLAB作為研究基礎和仿真平臺,從事SCILAB科學計算開放軟件和RoboCup 2D/3D仿真足球機器人研究,指導學生在國內外大賽中持續取得包括全國冠軍、世界冠軍在內的優異成績。
1992年對MATLAB 3.0實現漢化,并編寫相應講義。1997年出版《掌握和精通MATLAB》;2000年出版《精通MATLAB 5.3版》;2001年出版《MATLAB教程——基于6.x版本》。2003年出版《精通MATLAB 6.5版》;2006年出版《MATLAB教程》的及時版,該書每年都作更新,以及時適應MATLAB的變化,版已升級至R2011a;2011年出版本書《精通MATLAB R2011a》。
第1章 基礎準備及入門1
1.1MATLAB的安裝和工具包選擇1
1.2Desktop操作桌面的啟動2
1.2.1MATLAB的啟動2
1.2.2Desktop操作桌面簡介2
1.3Command Window運行入門3
1.3.1Command Window指令窗簡介3
1.3.2最簡單的計算器使用法3
1.3.3數值、變量和表達式5
1. 數值的記述5
2. 變量命名規則5
3. MATLAB默認的數學常數5
4. 運算符和表達式7
5. 面向復數設計的運算——MATLAB特點之一8
6. 面向數組設計的運算——MATLAB特點之二11
1.4Command Window操作要旨14
1.4.1指令窗的顯示方式14
1. 默認的輸入顯示方式14
2. 運算結果顯示14
3. 顯示方式的長期設置15
1.4.2指令行中的標點符號15
1.4.3常用控制指令17
1.4.4指令窗中指令行的編輯17
1.5歷史指令窗(Command History)18
1.5.1Command History歷史指令窗簡介18
1.5.2歷史指令的再運行19
1.6當前目錄瀏覽器(Current Directory)、路徑設置器和文件管理19
1.6.1當前目錄瀏覽器簡介20
1.6.2用戶目錄和當前目錄設置21
1.6.3MATLAB的搜索路徑21
1.6.4MATLAB搜索路徑的擴展22
1. 何時需要修改搜索路徑22
2. 利用設置路徑對話框修改搜索路徑22
3. 利用指令path設置路徑22
1.7工作空間瀏覽器和變量編輯器23
1.7.1工作空間瀏覽器和變量可視化23
1.7.2工作空間的管理指令25
1. 查詢指令who及whos25
2. 從工作空間中刪除變量和函數的指令clear25
3. 整理工作空間內存碎片的指令pack25
1.7.3Variable Editor變量編輯器26
1.7.4數據文件和變量的存取26
1. 借助工作空間瀏覽器產生保存變量的MAT文件26
2. 借助輸入向導Import Wizard向工作空間裝載變量26
3. 存取數據的操作指令save和load27
1.8Editor/Debugger和腳本編寫初步28
1.8.1Editor/Debugger M文件編輯器簡介28
1.8.2M腳本文件編寫初步29
1.9幫助系統及其使用30
1.9.1幫助體系的三大系統30
1.9.2常用幫助指令30
1. 函數搜索指令30
2. 詞條搜索指令31
1.9.3Help 幫助瀏覽器32
1. 幫助瀏覽器的導出32
2. 幫助瀏覽器界面簡介32
3. 幫助瀏覽器默認顯示的利用34
第2章數值數組及向量化運算39
2.1數值數組的創建和尋訪39
2.1.1一維數組的創建39
1. 遞增/減型一維數組的創建39
2. 其他類型一維數組的創建40
2.1.2二維數組的創建41
1. 小規模數組的直接輸入法41
2. 中規模數組的數組編輯器創建法41
3. 中規模的M文件創建法42
4. 利用MATLAB函數創建數組43
2.1.3二維數組元素的標識和尋訪45
1. 數組的維數和大小45
2. 數組的標識和尋訪46
2.1.4數組的擴縮和特殊操作47
1. 數組的擴充和收縮47
2. 數組的特殊操作49
3. 數組操作函數51
2.2數組運算52
2.2.1數組運算的由來和規則52
1. 函數關系數值計算模型的分類52
2. 提高程序執行性能的三大措施52
3. 數組運算規則52
4. 數組運算符及數組運算函數53
2.2.2數組運算和向量化編程54
2.2.3數組特殊運算指令匯總57
2.3高維數組59
2.3.1高維數組的創建59
2.3.2高維數組的孤維刪除61
2.3.3高維數組的維度重排62
2.4"非數"和"空"數組64
2.4.1非數NaN64
2.4.2"空"數組66
2.5關系操作和邏輯操作67
2.5.1關系操作67
2.5.2邏輯操作69
2.5.3常用邏輯函數71
第3章字符串、胞元和構架數組72
3.1MATLAB的數據類型72
3.2字符串數組73
3.2.1串數組的屬性和標識73
3.2.2復雜串數組的創建75
1. 多行字符串數組的創建75
2. 利用胞元數組創建復雜字符串77
3.2.3串轉換函數78
3.2.4串操作函數82
3.3胞元數組82
3.3.1胞元數組的創建和顯示83
1. 胞元標識尋訪和內容編址尋訪的不同83
2. 胞元數組的創建和顯示83
3.3.2胞元數組的擴充、收縮和重組84
3.3.3胞元數組內容的獲取和配置85
3.3.4胞元與數值數組之間的轉換87
3.3.5對胞元數組運算的cellfun指令88
3.3.6胞元數組的操作函數匯總90
3.4構架數組90
3.4.1構架數組的創建和顯示91
1. 直接創建法及顯示91
2. 利用構造函數創建構架數組92
3.4.2構架數組域中內容的調取和設置93
3.4.3構架數組的擴縮、域的增刪和域名重排96
3.4.4構架數組和胞元數組之間的轉換97
3.4.5對構架域運算的structfun和arrayfun指令100
3.4.6構架數組的操作函數匯總102
第4章數值計算103
4.1MATLAB的浮點數體系103
4.2數值微積分104
4.2.1數值極限104
4.2.2數值差分106
4.2.3數值積分(Numerical Integration)108
1. 一元函數積分(Quadrature)108
2. 樣條法求一元數值積分112
3. 用SIMULINK求一元數值積分112
4.2.4多重數值積分113
1. 常限重積分113
2. 變限重積分114
4.3矩陣分析117
4.3.1矩陣運算和特征參數117
1. 矩陣運算117
2. 矩陣的標量特征參數118
4.3.2奇異值分解和矩陣結構119
1. 奇異值分解119
2. 與奇異值相關的矩陣結構119
4.4特征值分解和矩陣函數123
4.4.1特征值分解問題123
4.4.2矩陣的譜分解和矩陣函數125
4.5解線性方程126
4.5.1求解線性方程的相關指令127
4.5.2線性方程矩陣除解法127
4.5.3線性二乘問題的解129
4.5.4一般代數方程的解130
4.6隨機數的產生及其特征描述133
4.6.1隨機數的產生及重現控制133
1. 默認全局隨機流的簡明管理指令133
2. 三種基本隨機數發生指令134
3. 用戶隨機流的創建和使用136
4. 隨機流的重現控制140
5. 獨立隨機數序列和隨機流的產生143
6. 隨機數重現控制舊版指令的使用建議148
4.6.2數據樣本分布可視化描述149
4.6.3隨機分布的數字特征及其統計量150
1. 隨機分布的中心位置統計量150
2. 隨機分布的聚散度統計量151
3. 斜度和峭度高階統計量152
4.7多項式運算和卷積157
4.7.1多項式的運算函數157
1. 多項式表達方式的約定157
2. 多項式運算函數157
4.7.2卷積161
1. 兩有限長序列的卷積161
2. 有限長序列與無限長序列的卷積164
4.8多項式擬合和非線性最小二乘165
4.8.1線性擬合和最小二乘165
4.8.2多項式擬合166
4.8.3非線性最小二乘擬合172
1. 偽線性化處理172
2. 非線性最小二乘擬合172
4.9插值和樣條176
4.9.1一維插值176
4.9.2高維函數的插值179
4.9.3樣條插值181
4.9.4樣條函數的應用183
1. 樣條函數的微積分183
2. 樣條函數的零點和最小值186
4.10 Fourier分析191
4.10.1快速Fourier變換和逆變換指令191
4.10.2連續時間函數的Fourier級數展開192
1. 展開系數的積分求取法192
2. Fourier級數與DFT之間的數學聯系193
3. MATLAB算法實現193
4.10.3利用DFT計算連續函數Fourier變換CFT201
1. CFT與DFT之間的數學聯系201
2. MATLAB算法實現202
4.11常微分方程205
4.11.1常微分方程初值問題的解算205
1. 求解初值問題的思路205
2. 解算指令的調用格式206
3. 解算指令的屬性及其設置207
4. 嵌套函數法傳遞解算參數209
5. 匿名函數法傳遞解算參數213
6. 帶事件設置的微分方程解算215
4.11.2常微分方程的邊值問題解218
1. bvp4c求解邊值問題的思路219
2. 求解邊值問題的配套指令220
3. 求解含未知參數的邊值問題222
4.12最小值優化問題227
4.12.1MATLAB最小值優化指令概述227
4.12.2單變量局域優化指令fminbnd228
4.12.3多變量無約束局域優化指令fminsearch232
4.12.4多變量約束局域優化指令fmincon236
4.12.5GlobalSearch實施的全域優化242
第5章符號計算250
5.1符號對象的產生和識別250
5.1.1基本符號對象的創建250
1. 定義符號數字和符號常數
2. 定義基本符號變量251
3. 定義元符號表達式251
5.1.2符號計算中的算符和函數指令252
1. 符號計算中的算符252
2. 符號計算中的函數指令252
5.1.3符號對象、變量、自由變量的識別253
1. 符號對象的識別253
2. 符號變量及自由變量的認定254
5.1.4符號運算機理和變量假設259
1. 符號運算的工作機理259
2. 對符號變量的限定性假設259
3. 清除變量和撤銷假設260
5.1.5符號幫助及其他常用指令263
1. 符號運作的幫助體系263
2. 服務于符號運算的其他指令267
5.2數字類型轉換及符號表達式操作268
5.2.1數字類型及轉換268
1. 三種數字類型及轉換指令268
2. 雙精度數字向符號數字轉換269
3. 符號數字向雙精度數字轉換274
4. 符號數字的任意精度表達形式275
5.2.2符號表達式的簡化操作277
5.2.3表達式中的置換操作280
1. 公因子法簡化表達280
2. 通用置換指令282
5.3符號微積分285
5.3.1極限和導數的符號計算285
5.3.2序列/級數的符號求和290
5.3.3符號積分291
5.4微分方程的符號解法295
5.4.1符號解法和數值解法的互補作用295
5.4.2求微分方程符號解的一般指令295
5.4.3微分方程符號解示例296
5.5符號變換和符號卷積299
5.5.1Fourier變換及其反變換299
5.5.2Laplace變換及其反變換303
5.5.3Z變換及其反變換305
5.5.4符號卷積308
5.6符號矩陣分析和代數方程解309
5.6.1符號矩陣分析309
5.6.2線性方程組的符號解310
5.6.3一般代數方程組的解311
5.7符號算法的綜合應用313
5.7.1三維根軌跡和數據探索313
5.7.2代數狀態方程求符號傳遞函數319
1. 結構框圖的代數狀態方程解法320
2. 信號流圖的代數狀態方程解法322
3. 多輸入、多輸出系統傳遞矩陣的求取324
5.8符號計算結果的可視化326
5.8.1直接可視化符號表達式326
1. 單獨立變量符號函數的可視化327
2. 雙獨立變量符號函數的可視化329
5.8.2符號計算結果的數值化繪圖330
5.8.3可視化與數據探索332
5.9符號計算資源的數值環境應用335
5.9.1符號表達式、串操作及數值計算M碼間的轉換335
5.9.2符號工具包資源表達式轉換成M碼函數337
1. 轉換指令matlabFunction337
2. 把符號包資源轉換成M碼函數的示例338
3. 把MuPAD資源轉換為M碼函數的示例344
5.9.3用符號表達式創建Simulink用戶模塊345
1. 轉換指令emlBlock345
2. 把符號包資源轉換為Simulink模塊的示例346
5.10MuPAD資源的深層利用349
5.10.1借助mfun調用MuPAD特殊函數349
5.10.2直接調用MuPAD的函數352
1. 非mfunlist列表MuPAD函數的調用步驟353
2. 借助evalin運行MuPAD函數353
3. 借助feval運行MuPAD函數356
第6章數據可視及探索359
6.1引導359
6.1.1離散數據和離散函數的可視化359
6.1.2連續函數的可視化360
6.1.3可視化的一般步驟362
1. 繪制二維圖形的一般步驟362
2. 繪制三維圖形的一般步驟363
6.2二維線圖及修飾操作364
6.2.1基本指令plot的調用格式365
1. 基本調用格式365
2. 衍生調用格式366
3. 帶屬性設置的調用格式367
6.2.2坐標控制和圖形標識369
1. 坐標軸的控制369
2. 分格線和坐標框371
3. 圖形標識指令371
4. 標識字符的精細控制372
6.2.3多次疊繪、雙縱坐標和多子圖375
1. 多次疊繪375
2. 雙縱坐標圖376
3. 多子圖377
6.3三維繪圖及修飾操作378
6.3.1三維線圖指令plot3378
6.3.2三維曲面/網線圖指令379
1. 基本調用格式379
2. 衍生調用格式380
3. 色圖colormap381
4. 濃淡處理shading381
6.3.3視點控制和圖形的旋動382
1. 視點控制view382
2. 圖形旋動rotate383
6.3.4光照、材質和透視384
1. 光照light384
2. 材質處理material384
3. 透明處理386
6.3.5消隱、鏤空和裁切390
1. 網線的消隱390
2. 圖形的鏤空390
3. 圖形的裁切391
6.4高維可視化392
6.4.1二維半圖線392
6.4.2準四維表現393
6.4.3四維切片及等位線394
6.5動態圖形396
6.5.1高層指令生成動態圖形396
1. 彗星狀軌跡圖396
2. 色圖的變幻397
3. 影片動畫397
6.5.2低層指令生成實時動畫398
6.6特殊圖形指令401
6.6.1彩色份額圖401
1. 面域圖area401
2. 直方圖bar, barh, bar3, bar3h402
3. 餅圖pie, pie3402
6.6.2有向線圖402
6.6.3多面體異形圖403
1. 德洛奈三角剖分和Voronoi圖403
2. 填色圖fill,fill3404
3. 不規則數據的網線圖和曲面圖405
4. 彩帶圖ribbon406
6.6.4散點圖scatter和plotmatrix407
6.6.5泛函繪圖指令fplot408
6.7圖像409
6.7.1圖像的類別和顯示410
6.7.2圖像的讀寫411
6.8圖形窗的編輯探索功能414
6.8.1圖形窗的結構414
1. 圖形窗的功能分區414
2. 圖形窗工具條415
3. 主要構件與對應菜單416
6.8.2指令鼠標混合操作生成繪圖文件418
6.8.3數據探針422
6.8.4數據刷424
6.8.5數據鏈和數據聯動427
第7章M文件和函數句柄432
7.1M碼編程的基本構件432
7.2MATLAB的數據流控制434
7.2.1for循環和while循環控制434
1. 循環結構的基本形式434
2. 輔助控制指令continue和break438
7.2.2if?elseif?else條件分支控制440
7.2.3switch?case切換多分支控制442
7.2.4try?catch容錯控制443
7.2.5編程用的其他指令446
1. return返回和pause暫定446
2. error出錯信息和warning警告447
3. 與鍵盤交互指令input和keyboard447
7.3M文件和P文件448
7.3.1M文件448
1. M腳本文件448
2. M函數文件449
7.3.2P碼文件的創建、查詢和清除452
7.4MATLAB的函數類別453
7.4.1主函數和子函數454
7.4.2匿名函數456
7.4.3嵌套函數456
7.5函數句柄458
7.5.1函數作用域和優先等級458
7.5.2函數句柄的創建459
1. 直接函數句柄的創建法459
2. 匿名函數句柄的創建法459
7.5.3函數句柄的調用格式460
1. 直接函數句柄調用格式460
2. 匿名函數句柄調用格式460
7.5.4觀察函數句柄的內涵461
7.6泛函演算指令462
7.6.1eval462
7.6.2feval464
7.6.3內聯對象465
7.7變量的使用域和跨內存交換466
7.7.1輸入輸出檢測指令466
7.7.2"變長度"輸入輸出量467
7.7.3局域變量、全域變量和持存變量471
7.7.4跨內存計算及賦值472
1. 跨內存計算串表達式472
2. 跨內存賦值474
7.8編輯調試器的應用深入475
7.8.1詞串彩化和定界符匹配提示475
1. 詞串彩化475
2. 定界符匹配提示475
7.8.2M?Lint代碼分析器477
1. 檢測信息的界面靜態標識477
2. 詳細檢測信息的鼠標動態獲取478
7.8.3M文件調試器479
1. 直接調試法480
2. 交互式調試器的界面480
3. 調試器應用示例482
第8章Simulink交互式仿真486
8.1引導486
8.1.1Simulink模型本質和一般結構486
8.1.2創建塊
很好的一本書,對于學習這個軟件的人來說幫助很大,很多的實例,挺好的
這本書很全面,由淺入深,實例都有m文件參考 適合matlab初學入門和進一步精通
快遞很給力,第一天傍晚下單,第二天中午就到了,服務態度很好,就是書的封面有些褶皺,可能發貨給壓的吧,整體很好,內容也很好,畢業論文要用到
學習matlab這本書很適合,是有點厚,又可以當做工具書來查,里面的例子也很經典。建議學習matlab的人手一本!
matlab經典教材 不知道能不能適用2014a
很厚啊,作為工具書使用,但不方便攜帶。內容由淺入深。
好的Matlab書會促進學習熱情。這本書更方面都不錯,也看了光盤,更是很難得,竟然有書的所有電子版內容,真是方便啊。推薦
書籍很厚,有質感與厚重感,內容呢,在每一類別都非常詳細,不過,在前面講的知識,會穿插后面的內容,不過對于有一定基礎的人來說,這個不是問題
主要集中在基本函數的應用上,與文件等外部程序對接上描述的相對較少,適合當作工具書備用
書包裹的一般,還好沒有折痕,光盤也沒有壞,建議這種帶光盤的書包裹時注意邊角,總體還算滿意。
很經典,比較基礎,不是那種專門用于哪方面的,針對的是MATLAB整體的使用
精通MATLAB R2011a這本書適合于入門者,工具書。不是用來拔高的
此書適合剛接觸matlab且對它感興趣的學生,內容詳細,由易入難,且配有電子版范例,電子版本書和常用命令附錄。目錄分層詳細,便于查找,對應的matlab版本也非常新~~確實是本好書~~
最為全面的一本講MATLAB的書了,學習學習
聽說作者是大牛。這本書比較久經考驗和名氣大。
買來當字典查,哈哈,特別基礎詳細,對于初學者有很大的幫助
基礎性很強的書,入門的也能看懂。但例題沒有直接的工程問題
這是一本類似工具書,內容很詳細,能耐下性子看真的會有很大的收獲。我雖然還沒有開始學matlab,但感覺到這是很有用的軟件,可以應用各種行業,學長調侃道:matlab太強大了,都可以生孩子了。所以我很有興趣學好它。列位童鞋一起加油吧!
當字典查,很好。不過學MATLAB還是要通過做實例啊!
東西不錯!火氣全是因為萬博快遞!太墨跡了!在石家莊愣是呆了一整天,第二天才到我手里!還有!當當你什么時候能不給我發貨物延遲通知!每次都延遲!延遲!省會二環內還延遲?!
很好的工具書。 才看了數值計算和simulink兩部分,前一部分講的不夠詳細,但不能要求一本書面面俱到,并且這部分網上的資料也很豐富;后一部分講的很詳細,有些小錯誤,但不影響閱讀。總體喜歡
好好好的確實驗室內容易被子女生活的確實驗室內容易被子啊!,我說了算是嗎啡我說了算是嗎啡我說了算是嗎啡我說了算是嗎啡我115吖…你說話劇組建設性別樣式我也想想想想想想想想想想想想想想想想想想呵!了!了!了!了!了!了!了!了!了!了!了!了!了!了!了!了!了!了!
書內容詳實,配的光盤非常不錯,里面有這本書的內容的全部文字和代碼。紙質書可以方便翻閱,電子的word方便電腦上看,代碼可以直接運行。光盤里出了本書內容之外,還有上一版的全部內容和代碼。非常不錯的書。強烈推薦。
今年5月份的時候用MATLAB GUI做了一個膜系計算專用界面、感覺MATLAB功能強大、于是就選擇再深入的去學習、由于是自學、所以選了這本學長給推薦的書、希望物有所值、能學到更多的東西。