MATLAB程序設(shè)計(jì)(原書第3版)
定 價(jià):89 元
叢書名:計(jì)算機(jī)科學(xué)叢書
- 作者:(美)斯蒂芬 J.查普曼(Stephen J. Chapman)
- 出版時(shí)間:2018/7/1
- ISBN:9787111603016
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP312MA
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書展示使用MATLAB解決各種典型問題的方法和技巧,不僅指導(dǎo)讀者編寫清晰、高效、良好的MATLAB程序,還介紹了大量MATLAB的實(shí)用函數(shù)。全書共9章,前7章涵蓋MATLAB的基本概念和實(shí)現(xiàn),后2章引入更多的高級(jí)應(yīng)用。本書內(nèi)容全面,通俗易懂,適合作為工程和計(jì)算機(jī)專業(yè)教材,同時(shí)也可作為廣大科技工作者掌握MATLAB計(jì)算工具的自學(xué)用書。
前 言Essentials of MATLAB Programming, Third EditionMATLAB(MATrix LABoratory的簡稱,即矩陣實(shí)驗(yàn)室)是由MathWorks公司開發(fā)的專業(yè)工程與科學(xué)計(jì)算軟件,其最初的設(shè)計(jì)目的是進(jìn)行矩陣的數(shù)學(xué)運(yùn)算。然而,近年來,MATLAB逐漸發(fā)展成為一個(gè)能夠從根本上解決各種重要技術(shù)問題并且極其靈活的計(jì)算系統(tǒng)。
MATLAB軟件執(zhí)行MATLAB語言編寫的程序,同時(shí)還提供十分豐富的預(yù)定義函數(shù)庫,簡化編程過程,提高編程效率。與其他編程語言(如Fortran或C)相比,豐富的MATLAB庫函數(shù)能夠幫助用戶更容易地解決工程技術(shù)問題。本書將基于MATLAB R2014b版本介紹MATLAB語言的特點(diǎn),并展示如何使用它來解決經(jīng)典的技術(shù)問題。
通過對(duì)MATLAB編程語言的學(xué)習(xí),學(xué)生將學(xué)會(huì)如何使用MATLAB編寫整潔、高效、文檔化的程序。另外,本書無意在此對(duì)所有的MATLAB函數(shù)逐一介紹,僅講解如何使用MATLAB編程,以及如何利用聯(lián)機(jī)幫助工具查找需要的MATLAB函數(shù)。
本書適合計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的大學(xué)一年級(jí)學(xué)生使用,可作為“編程與問題求解導(dǎo)論”課程的教材。具體課時(shí)可安排9周,每周3小時(shí)。
第3版修訂本書適用于MATLAB R2014b及更高版本。MATLAB R2014b是MATLAB啟用新的H2圖形系統(tǒng)后的首個(gè)版本,其中H2圖形系統(tǒng)旨在實(shí)現(xiàn)更高質(zhì)量的圖形輸出效果。目前,圖形組件成為帶有句柄的MATLAB對(duì)象,其屬性可通過MATLAB對(duì)象標(biāo)記進(jìn)行訪問。下面將為大家簡單介紹此版本的修訂之處。
自上一版以來,面向?qū)ο笏枷牒兔嫦驅(qū)ο缶幊痰腗ATLAB實(shí)現(xiàn)越發(fā)成熟,在此將進(jìn)行詳細(xì)介紹。此外,仍對(duì)舊關(guān)鍵字–值方法提供支持。
前面章節(jié)大幅縮短,以便更合理地安排內(nèi)容讓大家理解和掌握重要部分,F(xiàn)將分支部分和循環(huán)部分分別獨(dú)立成章,并將函數(shù)部分分為兩章進(jìn)行討論。
第3章著重介紹二維繪圖,并整理所有繪圖相關(guān)信息以確保大家理解。
第8章是對(duì)三維繪圖的拓展,該章有助于加強(qiáng)并深化學(xué)生對(duì)三維繪圖的學(xué)習(xí)和理解。
第9章介紹了最新的H2圖形的特征。
本書特色本書的特色在于不斷強(qiáng)調(diào)如何編寫可靠的MATLAB程序。無論是對(duì)于初學(xué)者,還是對(duì)于已有基礎(chǔ)的相關(guān)從業(yè)人員,本書都能給予一定的幫助。下面詳細(xì)介紹本書特色。
1.注重自頂向下的設(shè)計(jì)方法本書第4章介紹了一種自頂向下的設(shè)計(jì)方法,并將其運(yùn)用于書中的其余部分。首先,此方法鼓勵(lì)大家在開始編程之前認(rèn)真考慮好如何設(shè)計(jì)程序,即重點(diǎn)需要弄清楚所要解決問題的明確定義、所需的輸入和輸出等。其次,一旦清楚問題定義,下面就是考慮如何逐步將任務(wù)成功地分解為較小的子任務(wù),并將各個(gè)子任務(wù)作為單獨(dú)的子程序或函數(shù)來實(shí)現(xiàn)。最后,要理解在編程過程中測試的重要性,不管是組件程序的單元測試,還是最終程序的詳細(xì)測試,都需要認(rèn)真進(jìn)行。
本書所講授的通用設(shè)計(jì)過程可概括如下。
(1)清楚地陳述所要解決的問題。
(2)定義程序所需的輸入和產(chǎn)生的輸出。
(3)描述程序中的實(shí)現(xiàn)算法。涉及自頂向下設(shè)計(jì)和任務(wù)逐步分解,需用偽代碼或流程圖。
(4)將算法轉(zhuǎn)換成MATLAB語句。
(5)測試MATLAB程序,包括對(duì)特定函數(shù)的單元測試,以及不同數(shù)據(jù)集下最終程序的詳細(xì)測試。
2.注重函數(shù)本書重視函數(shù)的使用,其可在邏輯上將任務(wù)分解為更小的子任務(wù),并具有數(shù)據(jù)隱藏的優(yōu)點(diǎn)。同時(shí),還強(qiáng)調(diào)了函數(shù)在組合到最終程序之前單獨(dú)測試的重要性。此外,本書介紹了使用函數(shù)所犯的常見錯(cuò)誤,以及如何避免這些錯(cuò)誤。
3.注重MATLAB工具本書介紹了如何正確使用MATLAB的內(nèi)置工具,使編程和調(diào)試更加容易。所涵蓋的工具包括編輯器/調(diào)試器、工作空間瀏覽器、幫助瀏覽器和GUI設(shè)計(jì)工具。
4.“良好編程習(xí)慣”框這些框用來突出良好的編程實(shí)踐。此外,在章節(jié)的最后會(huì)給大家總結(jié)良好編程習(xí)慣。下面是一個(gè)“良好編程習(xí)慣”框的示例。
良好編程習(xí)慣始終將if結(jié)構(gòu)的主體縮進(jìn)兩個(gè)或更多空格,以提高代碼的可讀性。
5.“編程誤區(qū)”框這些框用來突出常見的錯(cuò)誤,以便避免它們。下面是一個(gè)“編程誤區(qū)”框的示例。
編程誤區(qū)確保在前63個(gè)字符中變量名是唯一的。否則,MATLAB將無法分辨出它們之間的區(qū)別。
MATLAB編程的優(yōu)勢與傳統(tǒng)的計(jì)算機(jī)編程語言相比,MATLAB在解決工程技術(shù)問題方面具有諸多優(yōu)勢,下面重點(diǎn)介紹幾個(gè)。
1.易用性MATLAB是一種解釋型語言,如同各種版本的Basic語言。與Basic一樣,它也非常容易使用。該程序可作為便簽式計(jì)算器來求解在命令行輸入的表達(dá)式的值,或者用于執(zhí)行預(yù)先編寫好的大型程序。在內(nèi)置集成開發(fā)環(huán)境中,可以方便地編寫和修改程序,并使用MATLAB調(diào)試器來調(diào)試程序。正是基于這種語言的易用性,對(duì)于快速建立新程序的原型,它是一個(gè)理想的工具。
MATLAB還提供了許多程序開發(fā)工具,包括集成的編輯器/調(diào)試器、在線文檔和手冊(cè)、工作空間瀏覽器以及大量示例。
2.平臺(tái)獨(dú)立性MATLAB支持多種操作系統(tǒng),并提供了大量的平臺(tái)獨(dú)立措施。在撰寫本書時(shí),Windows 7/8/10、Linux、Unix、Mac OS X 10.10和10.11等系統(tǒng)都支持MATLAB。對(duì)于MATLAB而言,在一個(gè)平臺(tái)上編寫的程序在其他平臺(tái)上一樣可以正常運(yùn)行,在一個(gè)平臺(tái)上編寫的數(shù)據(jù)文件在其
斯蒂芬 J.查普曼(Stephen J. Chapman)擁有路易斯安那州立大學(xué)電氣工程學(xué)士學(xué)位、佛羅里達(dá)中央大學(xué)電氣工程碩士學(xué)位,并在萊斯大學(xué)進(jìn)一步深造。他曾供職于美國海軍、休斯敦大學(xué)、MIT林肯實(shí)驗(yàn)室,目前在墨爾本負(fù)責(zé)澳大利亞BAE系統(tǒng)建模和運(yùn)營分析,開發(fā)了一個(gè)軍艦自我防御的模型,這個(gè)模型包含超過40萬行的MATLAB代碼且運(yùn)行了十余年。他是電氣和電子工程師學(xué)會(huì)的高級(jí)會(huì)員,也是澳大利亞工程師學(xué)會(huì)的會(huì)員。
目 錄
Essentials of MATLAB Programming, Third Edition
出版者的話
譯者序
前言
第1章 MATLAB簡介 1
1.1 MATLAB優(yōu)勢所在 1
1.2 MATLAB不足之處 3
1.3 MATLAB工作環(huán)境 3
1.3.1 操作界面 3
1.3.2 命令窗口 4
1.3.3 工具欄 5
1.3.4 命令歷史窗口 6
1.3.5 文檔窗口 6
1.3.6 圖形窗口 8
1.3.7 窗口停靠與取消? 9
1.3.8 工作空間 9
1.3.9 工作空間瀏覽器 10
1.3.10 當(dāng)前文件夾瀏覽器 11
1.3.11 獲取幫助 11
1.3.12 幾個(gè)重要命令 13
1.3.13 MATLAB搜索路徑 14
1.4 MATLAB應(yīng)用示例——計(jì)算器 15
1.5 本章小結(jié) 17
1.6 本章習(xí)題 17
第2章 MATLAB基礎(chǔ)知識(shí) 19
2.1 變量和數(shù)組 19
2.2 創(chuàng)建和初始化變量 21
2.2.1 在賦值語句中初始化變量 22
2.2.2 使用快捷表達(dá)式初始化 23
2.2.3 使用內(nèi)置函數(shù)初始化 24
2.2.4 使用鍵盤輸入初始化變量 25
2.3 多維數(shù)組 26
2.3.1 在內(nèi)存中存儲(chǔ)多維數(shù)組 27
2.3.2 用一維方式訪問多維數(shù)組 28
2.4 子數(shù)組 28
2.4.1 函數(shù)end 28
2.4.2 在賦值語句左側(cè)使用子數(shù)組 29
2.4.3 將標(biāo)量賦值給子數(shù)組 30
2.5 特殊值 30
2.6 顯示輸出數(shù)據(jù) 32
2.6.1 更改默認(rèn)格式 32
2.6.2 函數(shù)disp 33
2.6.3 使用函數(shù)fprintf標(biāo)準(zhǔn)化輸出 33
2.7 數(shù)據(jù)文件 34
2.8 標(biāo)量和數(shù)組運(yùn)算 36
2.8.1 標(biāo)量運(yùn)算 36
2.8.2 數(shù)組和矩陣運(yùn)算 37
2.9 運(yùn)算級(jí)別 39
2.10 MATLAB內(nèi)置函數(shù) 41
2.10.1 任意返回值 41
2.10.2 使用數(shù)組作為MATLAB函數(shù)輸入 42
2.10.3 常見MATLAB函數(shù) 42
2.11 繪圖簡介 43
2.11.1 使用簡單xy繪圖 43
2.11.2 打印繪圖 44
2.11.3 將繪圖導(dǎo)出為圖像文件 44
2.11.4 多個(gè)繪圖 46
2.11.5 線條顏色、線條類型、標(biāo)記類型和圖例 46
2.11.6 對(duì)數(shù)刻度 49
2.12 示例 50
2.13 調(diào)試MATLAB程序 54
2.14 本章小結(jié) 56
2.14.1 良好編程習(xí)慣總結(jié) 56
2.14.2 MATLAB總結(jié) 57
2.15 本章習(xí)題 59
第3章 二維繪圖 65
3.1 二維繪圖的其他功能 65
3.1.1 對(duì)數(shù)刻度 65
3.1.2 控制x軸和y軸范圍 68
3.1.3 同一軸上繪制多個(gè)繪圖 70
3.1.4 創(chuàng)建多個(gè)圖形 70
3.1.5 子圖 72
3.1.6 控制繪圖上的點(diǎn)間距 72
3.1.7 繪制線的高級(jí)控制 75
3.1.8 文本字符串的高級(jí)控制 75
3.2 極坐標(biāo)繪圖 78
3.3 注釋與保存繪圖 79
3.4 二維繪圖的其他類型 82
3.5 二維數(shù)組繪圖 85
3.6 本章小結(jié) 87
3.6.1 良好編程習(xí)慣總結(jié) 87
3.6.2 MATLAB總結(jié) 87
3.7 本章習(xí)題 88
第4章 分支結(jié)構(gòu)與程序設(shè)計(jì) 91
4.1 自頂向下設(shè)計(jì)技術(shù)簡介 91
4.2 偽代碼的使用 93
4.3 邏輯數(shù)據(jù)類型 94
4.3.1 關(guān)系運(yùn)算符與邏輯運(yùn)算符 94
4.3.2 關(guān)系運(yùn)算符 94
4.3.3 運(yùn)算符==和~=的注意事項(xiàng) 95
4.3.4 邏輯運(yùn)算符 96
4.3.5 邏輯函數(shù) 99
4.4 分支 100
4.4.1 if結(jié)構(gòu) 100
4.4.2 if結(jié)構(gòu)示例 102
4.4.3 if結(jié)構(gòu)的注意事項(xiàng) 106
4.4.4 switch結(jié)構(gòu) 108
4.4.5 try/catch結(jié)構(gòu) 109
4.5 調(diào)試MATLAB程序的更多信息 115
4.6 本章小結(jié) 120
4.6.1 良好編程習(xí)慣總結(jié) 120
4.6.2 MATLAB總結(jié) 121
4.7 本章習(xí)題 121
第5章 循環(huán)結(jié)構(gòu)和向量化 125
5.1 while循環(huán) 125
5.2 for循環(huán) 129
5.2.1 操作細(xì)節(jié) 134
5.2.2 向量化:更快的循環(huán)選擇 136
5.2.3 MATLAB即時(shí)編譯器 136
5.2.4 break語句和continue語句 138
5.2.5 嵌套循環(huán) 140
5.3 邏輯數(shù)組和向量化 141
5.4 MATLAB探查器 143
5.5 其他示例 145
5.6 函數(shù)textread 155
5.7 本章小結(jié) 157
5.7.1 良好編程習(xí)慣總結(jié) 157
5.7.2 MATLAB總結(jié) 157
5.8 本章習(xí)題 158
第6章 用戶自定義函數(shù)基本特性 163
6.1 MATLAB函數(shù)簡介 164
6.2 MATLAB變量傳遞:值傳遞機(jī)制 166
6.3 可選參數(shù) 175
6.4 使用全局內(nèi)存共享數(shù)據(jù) 178
6.5 函數(shù)調(diào)用之間的數(shù)據(jù)存儲(chǔ) 183
6.6 MATLAB內(nèi)置函數(shù):排序函數(shù) 187
6.7 MATLAB內(nèi)置函數(shù):隨機(jī)數(shù)生成函數(shù) 189
6.8 本章小結(jié) 189
6.8.1 良好編程習(xí)慣總結(jié) 189
6.8.2 MATLAB總結(jié) 190
6.9 本章習(xí)題 190
第7章 用戶自定義函數(shù)高級(jí)特性 195
7.1 函數(shù)的函數(shù) 195
7.2 本地函數(shù)、私有函數(shù)和嵌套函數(shù) 198
7.2.1 本地函數(shù) 198
7.2.2 私有函數(shù) 199
7.2.3 嵌套函數(shù) 199
7.2.4 函數(shù)執(zhí)行順序 201
7.3 函數(shù)句柄 201
7.3.1 創(chuàng)建和使用函數(shù)句柄 202
7.3.2 函數(shù)句柄的優(yōu)點(diǎn) 204
7.3.3 函數(shù)句柄和嵌套函數(shù) 204
7.3.4 應(yīng)用示例:常微分方程的求解 206
7.4 匿名函數(shù) 210
7.5 遞歸函數(shù) 211
7.6 繪圖函數(shù) 212
7.7 直方圖 214
7.8 本章小結(jié) 218
7.8.1 良好編程習(xí)慣總結(jié) 218
7.8.2 MATLAB總結(jié) 218
7.9 本章習(xí)題 219
第8章 其他數(shù)據(jù)類型和繪圖類型 224
8.1 復(fù)數(shù) 224
8.1.1 復(fù)數(shù)變量 225
8.1.2 復(fù)數(shù)關(guān)系運(yùn)算 225
8.1.3 復(fù)數(shù)函數(shù) 226
8.1.4 繪制復(fù)數(shù) 229
8.2 字符串和字符串函數(shù) 231
8.2.1 字符串轉(zhuǎn)換函數(shù) 232