關(guān)于我們
書單推薦
新書推薦
|
MATLAB編程與工程應(yīng)用(第三版)
本書的主旨是讓讀者熟練掌握MATLAB,在解決工程應(yīng)用時,具備所需要的基本編程概念和技能。本書在函數(shù)、內(nèi)容與結(jié)構(gòu)、練習(xí)題、函數(shù)接口等方面較前一版有改動。全書分成兩大部分:第一部分講述用MATLAB進(jìn)行程序設(shè)計及解決實際問題,包括MATLAB程序設(shè)計概念與組織、選擇、循環(huán)、字符串操作、單元陣列及結(jié)構(gòu)、高級文件輸入/輸出及高級函數(shù)等;第二部分針對實際應(yīng)用,包括用MATLAB繪圖、解線性代數(shù)方程組、進(jìn)行基本統(tǒng)計、集合、排序和索引、處理聲音和圖像,以及高等數(shù)學(xué)中的曲線擬合、復(fù)數(shù)計算、微積分等。
MATLAB是MatrixLaboratory的簡寫,是一款由美國MathWorks公司開發(fā)的商業(yè)數(shù)學(xué)軟件,是一個集科學(xué)計算、可視化及交互式程序設(shè)計的計算環(huán)境。它將數(shù)值分析、矩陣計算、科學(xué)數(shù)據(jù)可視化及非線性動態(tài)系統(tǒng)的建模和仿真等諸多功能,集成在一個易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計及需要有效數(shù)值計算的學(xué)科領(lǐng)域提供了方便,在一定程度上擺脫了傳統(tǒng)非交互式程序設(shè)計語言的編譯模式,簡化了計算形式,所以有很好的工程應(yīng)用背景。
作者斯托米?阿塔韋(StormyAttaway),在美國波士頓大學(xué)機(jī)械工程系工作,是該系教學(xué)副主任。二十多年來一直是波士頓大學(xué)工程計算課程的課程協(xié)調(diào)人,她本人講授過許多不同計算機(jī)語言及軟件包方面的程序設(shè)計課程,具有豐富的教學(xué)及實踐經(jīng)驗。 本書是美國許多大學(xué)的理工科學(xué)生的教學(xué)用書,深受學(xué)生歡迎。全書講解深入淺出,圍繞實際工程應(yīng)用,通過解釋MATLAB強(qiáng)大的函數(shù)功能,實現(xiàn)用MATLAB進(jìn)行編程。它使工程技術(shù)人員能夠全面理解和掌握如何利用MATLAB解決工程實際問題。與傳統(tǒng)的專業(yè)程序設(shè)計概念不同,MATLAB程序設(shè)計強(qiáng)調(diào)的是用貼近人們?nèi)粘A?xí)慣的數(shù)學(xué)書寫方式快速解決實際問題,所以它并不像專業(yè)程序設(shè)計那樣突出語法規(guī)范和參數(shù)定義規(guī)則。 國內(nèi)外有不少關(guān)于MATLAB方面的書,但有特色的較少,斯托米?阿塔韋(StormyAttaway)撰寫的這本是比較有特色的書之一。本書主要以MATLAB函數(shù)調(diào)用為主線,采用靈活的方式介紹程序設(shè)計概念,并能將其用于解決實際問題,比較適合廣大非計算機(jī)專業(yè)學(xué)生作為程序設(shè)計課程的教材。書中第一部分主要講述的就是這些內(nèi)容,包括:MATLAB簡介及MATLAB程序設(shè)計、程序控制語句類的選擇和循環(huán)、MATLAB程序組織形式、字符串操作、程序設(shè)計中對加工對象數(shù)據(jù)的結(jié)構(gòu)組織(單元陣列及結(jié)構(gòu))、高級文件輸入/輸出及高級函數(shù)等。當(dāng)然,本書也可以作為工程技術(shù)人員解決實際問題的參考書。書中第二部分內(nèi)容涉及的主要就是實際應(yīng)用,包括用MATLAB繪圖、解線性代數(shù)方程組、進(jìn)行基本統(tǒng)計、集合、排序和索引、處理聲音和圖像,以及高等數(shù)學(xué)中的曲線擬合、復(fù)數(shù)計算、微積分等。 全書章節(jié)安排合理,內(nèi)容規(guī)劃有助于學(xué)生理解和記憶,編寫生動有趣,書中隨時采用一些問答題的方式講述基本概念,容易引起讀者的注意;通過例題和練習(xí)題講解關(guān)鍵知識點并加深學(xué)生的記憶;對比用編程方法和直接調(diào)用內(nèi)部函數(shù)的快速方法,加深理解MATLAB內(nèi)部函數(shù)的作用;每章末尾總結(jié)通常易犯的錯誤,提供程序設(shè)計風(fēng)格指南以及本章中用到的MATLAB函數(shù)和命令。通過解決實際問題來講解知識點的方式容易激發(fā)學(xué)生的學(xué)習(xí)興趣。 對于非計算機(jī)專業(yè)的理工科大學(xué)生來說,把MATLAB作為第一門算法語言,繞開了冗長復(fù)雜的程序設(shè)計概念細(xì)節(jié),容易使學(xué)生掌握,并能在線性代數(shù)等課程及實際中應(yīng)用。所以我們認(rèn)為本書的教學(xué)和使用效果比較好。 本書的翻譯出版是由電子工業(yè)出版社的馬嵐編輯和楊博編輯組織策劃的。西安電子科技大學(xué)魚濱老師和趙元哲老師在第二版的基礎(chǔ)上進(jìn)行了翻譯和校對。其中趙元哲翻譯和校對了前7章,魚濱翻譯和校對了第8章到第14章;宋力老師參加了部分翻譯工作,研究生李孟鴿、袁丹、趙劼等參加了翻譯和文字錄入工作。原書中一些筆誤的地方,翻譯時都進(jìn)行了更正,并對代碼進(jìn)行了驗證。 希望本書的翻譯出版能夠為廣大MATLAB的使用者提供方便,但由于我們水平所限,書中錯誤之處在所難免,歡迎讀者批評指正! 譯者2016年11月 前言 目標(biāo) 本書的目的是把MATLAB作為一種工具使用,講解解決基本問題所需的基本編程概念和技能。MATLAB是一款功能強(qiáng)大的軟件,它包含完成從數(shù)學(xué)運(yùn)算到三維成像多種任務(wù)的內(nèi)置函數(shù)。另外,MATLAB擁有一套完整的編程結(jié)構(gòu),允許用戶定制自己的程序規(guī)范。 介紹MATLAB的書有很多。這些書有兩個基本特色:一些書除了一到兩章介紹一些程序概念之外,主要闡述MATLAB中內(nèi)置函數(shù)的使用;另一些書僅僅覆蓋了編程結(jié)構(gòu),而沒有涉及使MATLAB得到有效使用的許多內(nèi)置函數(shù)。僅僅學(xué)習(xí)內(nèi)置函數(shù)的讀者能很好地使用MATLAB,但是不能理解基本的編程概念。因而對沒有學(xué)習(xí)其他入門課程或沒有閱讀其他關(guān)于編程概念的書的讀者,很難進(jìn)一步學(xué)習(xí)C++或Java等編程語言。相反,首先只學(xué)習(xí)編程概念(使用任何語言)的讀者傾向于使用高效率的控制語句來解決問題,并沒有意識到在MATLAB中,許多情況下并不需要這樣做。 本書采取一種混合式的方法,同時介紹編程和有效用法。學(xué)生們面臨的挑戰(zhàn)是幾乎不能預(yù)測他們將來是否需要知道編程概念,或者像MATLAB這樣的軟件包是否能滿足他們的職業(yè)需要。因而,對入門的學(xué)生來說,最好的方法就是同時給出編程概念和有效的內(nèi)置函數(shù)。因為MATLAB非常容易使用,應(yīng)用這種混合式方法來講授編程和解決問題是一個完美的平臺。 因為編程概念在本書中是非常關(guān)鍵的,所以本書的重點不是放在MATLAB的每個新版本如何節(jié)省時間的特點上。例如,在當(dāng)前的MATLAB版本中,統(tǒng)計數(shù)字變量顯示在工作臺窗口中。在本書中沒有顯示任何細(xì)節(jié),因為這一特點是否可用取決于軟件的版本,而且本書是以解釋概念為目的的。 第三版修訂的內(nèi)容 本書第三版的修改包括: 1.每章結(jié)束新增了“探索其他有趣特征”部分,列舉了讀者可能希望了解的相關(guān)語言結(jié)構(gòu)、函數(shù)和工具。 2.擴(kuò)大覆蓋范圍: ●圖像處理,包括圖像矩陣中不同數(shù)據(jù)類型的使用 ●繪圖功能,包括了那些使用對數(shù)尺的函數(shù) ●圖形用戶界面 3.MATLAB的R2012b版本的使用。 4.修訂和新增“練習(xí)”問題。 5.修訂并新增了有些章末的習(xí)題,使其更具有挑戰(zhàn)性。 6.一些材料的重組,主要是: ●將向量和矩陣單獨作為一章(第2章),包括向量和矩陣的函數(shù)和操作符,并安排了向量化代碼 ●更早給出了矩陣乘法(在第2章) ●向量化代碼放在循環(huán)章節(jié),為了比較數(shù)組的循環(huán)使用和向量化代碼 7.用randi代替round(rand)。 8.用true/false代替logical(1)/logical(0)。 9.擴(kuò)大了基礎(chǔ)數(shù)學(xué)函數(shù)的覆蓋范圍,包括mod、sqrt、nthroot、log、log2和log10,以及更多的三角函數(shù)。 10.新增附錄列出了書中用到的所有函數(shù),以及讀者或許想要了解的工具箱。 主要特點 編程概念和內(nèi)置函數(shù)并行 本書最重要和獨特的特點是并行地講授MATLAB中的編程概念和內(nèi)置函數(shù)的使用。本書以基本的編程概念開始,例如變量、賦值、輸入/輸出、選擇和循環(huán)語句。本書通常先介紹一個問題然后使用“編程概念”和“有效方法”來解決。 系統(tǒng)方法 本書的另一個特點是采用系統(tǒng)的、逐步的方法將概念貫穿于全書中。在一個MATLAB教材中提前使用注釋“我們將在以后介紹”來顯示內(nèi)置函數(shù)或特點是很常用的做法。本書并不這樣做,在例子中需要用到的函數(shù)在之前就已經(jīng)介紹過了。另外,對基本的編程概念將仔細(xì)和系統(tǒng)地解釋。例如,通過循環(huán)來計算總和、條件循環(huán)中的計數(shù)和差錯檢測這些非常基本的概念,在其他書中并不會介紹,但都包含在本書中。 文件輸入/輸出 工程和科學(xué)中的許多應(yīng)用涉及操縱大量的數(shù)據(jù)集,這些數(shù)據(jù)集存儲在外部文件中。大部分MATLAB書至少要提到save和load函數(shù),并且在一些例子中也會提到低層的文件輸入/輸出函數(shù)。因為文件輸入和輸出對許多應(yīng)用來說是非常基礎(chǔ)的,所以本書將覆蓋幾種低層的文件輸入/輸出函數(shù),以及從電子表格文件中讀數(shù)據(jù)和將數(shù)據(jù)寫到電子表格文件中。在以后的章節(jié)中還將處理音頻和圖像文件。這些文件輸入/輸出的概念將逐步介紹:首先在第3章中介紹load和save,然后在第9章中介紹低層函數(shù),最后在第13章中介紹聲音和圖像。 用戶自定義函數(shù) 用戶自定義函數(shù)是一個非常重要的編程概念。許多時候,函數(shù)類型、函數(shù)調(diào)用與函數(shù)頭等之間的細(xì)微差別,容易被初學(xué)者混淆。因此本書將逐步介紹這些概念。首先,在第3章中闡述計算和返回一個單精度值的最容易理解的函數(shù)類型;然后,無返回值的函數(shù)和返回多個值的函數(shù)在第6章中介紹;最后,第10章介紹高級函數(shù)的特點。 高級編程概念 除了基本的編程概念,本書中還覆蓋了一些高級編程概念,如字符串操作、數(shù)據(jù)結(jié)構(gòu)、遞歸、匿名函數(shù)和函數(shù)參數(shù)的變量數(shù)目。另外也會介紹排序、查找和索引。所有這些也采取了系統(tǒng)的方法,例如單元數(shù)組在應(yīng)用于文件輸入函數(shù)和作為餅圖的圖例之前介紹。 解決問題的工具 除了編程概念,解決問題的一些必要的基礎(chǔ)數(shù)學(xué)知識也將涉及。主要包括統(tǒng)計函數(shù)、求解線性代數(shù)方程組和數(shù)據(jù)擬合曲線。另外還將介紹復(fù)數(shù)和一些計算(積分和微分)的使用。闡述基礎(chǔ)數(shù)學(xué),描述在MATLAB中執(zhí)行這些任務(wù)的內(nèi)置函數(shù)。 作圖、圖像和GUI 本書首先介紹簡單的二維作圖(第3章),這樣作圖的例子可以貫穿全書。第11章將給出更多的作圖類型并闡述定制作圖和在MATLAB中怎樣處理圖形屬性,這一章使用字符串和單元(cell)數(shù)組來定制標(biāo)簽。在第13章中對圖像處理和理解圖形用戶界面(GUI)編程的基礎(chǔ)知識進(jìn)行介紹。 向量化代碼 MATLAB內(nèi)置操作符和函數(shù)功能的有效使用都在書中做了演示。為了強(qiáng)調(diào)有效使用MATLAB的重要性,對編寫向量化代碼所需的概念和內(nèi)置函數(shù)提前到了第2章。然后在第5章中采用一些技巧如預(yù)先分配向量和使用邏輯向量,替代向量和矩陣中的選擇語句和循環(huán)語句。同時還介紹了怎樣才能使代碼有效的方法。 全書布局 全書分為兩部分。第一部分介紹編程結(jié)構(gòu),并闡述編程與解決問題的內(nèi)置函數(shù)的有效使用。第二部分講述應(yīng)用,包括作圖、圖像處理和解決基礎(chǔ)問題所需要的數(shù)學(xué)知識。前6章包括MATLAB中和編程中非常 收起全部↑
魚濱,男,博士,西安電子科技大學(xué)計算機(jī)學(xué)院教授,碩士生導(dǎo)師。早年為西北大學(xué)軟件學(xué)院副院長,曾赴意大利作為訪問學(xué)者一年,后被西電出國優(yōu)秀博士計劃引進(jìn)。
主要研究方向為軟件工程,醫(yī)學(xué)影像處理(國家自然基金項目),基于Internet的軟件技術(shù),pi演算,虛擬現(xiàn)實,andriod視頻采集等。曾獲省部級獎三項,發(fā)表論文多篇。負(fù)責(zé)國家自然科學(xué)基金項目一項(2012-2015),參加國家自然科學(xué)基金重點課題和面上項目各一項,承擔(dān)本科生地“軟件工程”和“編譯原理”課程。2001年獲陜西省教學(xué)成果一等獎。
第一部分 用MATLAB進(jìn)行程序設(shè)計
第1章 MATLAB簡介 1.1 初識MATLAB 1.2 MATLAB桌面環(huán)境 1.3 變量和賦值語句 1.3.1 初始化、遞增和遞減 1.3.2 變量名 1.3.3 類型 1.4 表達(dá)式 1.4.1 format函數(shù)和省略號 1.4.2 運(yùn)算符 1.4.3 內(nèi)置函數(shù)和help命令 1.4.4 常量 1.4.5 隨機(jī)數(shù) 1.5 字符和編碼 1.6 關(guān)系表達(dá)式 探索其他有趣的特征 總結(jié) 習(xí)題 第2章 向量和矩陣 2.1 向量和矩陣 2.1.1 創(chuàng)建行向量 2.1.2 創(chuàng)建列向量 2.1.3 創(chuàng)建矩陣變量 2.1.4 維數(shù) 2.1.5 空向量 2.1.6 三維矩陣 2.2 用作函數(shù)參數(shù)的向量和矩陣 2.3 向量和矩陣上的標(biāo)量運(yùn)算和 數(shù)組運(yùn)算 2.4 矩陣乘法 2.4.1 向量的矩陣乘法 2.5 邏輯向量 2.5.1 含有向量和矩陣的關(guān)系 表達(dá)式 2.5.2 邏輯內(nèi)置函數(shù) 2.6 應(yīng)用: diff和meshgrid函數(shù) 探索其他有趣的特征 總結(jié) 習(xí)題 第3章 MATLAB程序設(shè)計概述 3.1 算法 3.2 MATLAB腳本 3.2.1 文檔 3.3 輸入與輸出 3.3.1 輸入函數(shù) 3.3.2 輸出語句:disp和fprintf 3.4 腳本的輸入和輸出 3.5 用腳本生成和定制簡單圖形 3.5.1 plot函數(shù) 3.5.2 與plot相關(guān)的函數(shù) 3.6 文件輸入/輸出簡介 3.6.1 向文件中寫數(shù)據(jù) 3.6.2 向文件中追加數(shù)據(jù) 3.6.3 從文件中讀數(shù)據(jù) 3.7 返回單個值的用戶自定義 函數(shù) 3.7.1 函數(shù)定義 3.7.2 函數(shù)調(diào)用 3.7.3 從腳本中調(diào)用用戶自定義 函數(shù) 3.7.4 傳遞多個參數(shù) 3.7.5 函數(shù)中的局部變量 3.7.6 范圍介紹 3.8 命令和函數(shù) 探索其他有趣的特征 總結(jié) 習(xí)題 第4章 選擇語句 4.1 if語句 4.1.1 邏輯真和邏輯假的表示 4.2 ifelse語句 4.3 嵌套的ifelse語句 4.3.1 elseif子句 4.4 switch語句 4.5 menu函數(shù) 4.6 MATLAB中的is函數(shù) 探索其他有趣的特征 總結(jié) 習(xí)題 第5章 循環(huán) 5.1 for循環(huán) 5.1.1 實際應(yīng)用中不使用迭代 變量的for循環(huán) 5.1.2 for循環(huán)的輸入 5.1.3 求和與積 5.1.4 預(yù)分配向量 5.1.5 for循環(huán)示例: subplot 5.2 for嵌套循環(huán) 5.2.1 for嵌套循環(huán)和if語句的 混合使用 5.3 while循環(huán) 5.3.1 while循環(huán)中的多重條件 5.3.2 在while循環(huán)中讀文件 5.3.3 while循環(huán)中的輸入 5.3.4 while循環(huán)中的計數(shù) 5.3.5 while循環(huán)中對用戶輸入信息 的差錯檢測 5.4 向量和矩陣的循環(huán): 向量化 代碼 5.4.1 向量化求和與求積 5.4.2 向量化與選擇語句 相關(guān)的循環(huán) 5.4.3 編寫高效代碼的技巧 5.5 計時 探索其他有趣的特征 總結(jié) 習(xí)題 第6章 MATLAB程序 6.1 其他類型的用戶自定義函數(shù) 6.1.1 返回多值的函數(shù) 6.1.2 完成任務(wù)無返回值的 函數(shù) 6.1.3 帶返回值并可打印的 函數(shù) 6.1.4 向函數(shù)傳遞參數(shù) 6.2 MATLAB程序的組織 6.2.1 模塊化程序 6.2.2 子函數(shù) 6.3 應(yīng)用:菜單驅(qū)動的模塊程序 6.4 變量作用域 6.4.1 持續(xù)變量 6.5 調(diào)試技術(shù) 6.5.1 錯誤類型 6.5.2 追蹤 6.5.3 編輯器/調(diào)試程序 6.5.4 函數(shù)樁 6.5.5 代碼元和發(fā)布代碼 探索其他有趣的特征 總結(jié) 習(xí)題 第7章 字符串操作 7.1 創(chuàng)建字符串變量 7.1.1 字符串向量 7.2 字符串操作 7.2.1 連接 7.2.2 創(chuàng)建自定義字符串 7.2.3 刪除空白字符 7.2.4 變換大小寫 7.2.5 字符串比較 7.2.6 查找、 替換和分割 字符串 7.2.7 字符串求值 7.3 有關(guān)字符串的 is函數(shù) 7.4 字符串和數(shù)值之間的轉(zhuǎn)換 探索其他有趣的特征 總結(jié) 習(xí)題 第8章 數(shù)據(jù)結(jié)構(gòu):元胞數(shù)組和結(jié)構(gòu)體 8.1 元胞數(shù)組 8.1.1 創(chuàng)建元胞數(shù)組 8.1.2 查看和顯示元胞數(shù)組 的元素和屬性 8.1.3 在元胞數(shù)組中存放 字符串 8.2 結(jié)構(gòu)體 8.2.1 創(chuàng)建和修改結(jié)構(gòu)體變量 8.2.2 將結(jié)構(gòu)體傳遞給函數(shù) 8.2.3 相關(guān)結(jié)構(gòu)體函數(shù) 8.2.4 結(jié)構(gòu)體向量 8.2.5 嵌套結(jié)構(gòu)體 8.2.6 嵌套結(jié)構(gòu)體向量 探索其他有趣的特征 總結(jié) 習(xí)題 第9章 高級文件輸入/輸出 9.1 低級文件I/O函數(shù) 9.1.1 打開和關(guān)閉文件 9.1.2 讀取文件 9.1.3 寫入文件 9.1.4 追加文件 9.2 寫入和讀取電子表格類文件 9.3 使用MAT文件變量 9.3.1 將變量寫入文件中 9.3.2 將變量追加到MAT 文件中 9.3.3 從MAT文件中讀取 探索其他有趣的特征 總結(jié) 習(xí)題 第10章 高級函數(shù) 10.1 匿名函數(shù) 10.2 函數(shù)句柄的使用 10.2.1 函數(shù)的函數(shù) 10.3 參數(shù)數(shù)目可變 10.3.1 輸入?yún)?shù)數(shù)目可變 10.3.2 輸出參數(shù)數(shù)目可變 10.4 嵌套函數(shù) 10.5 遞歸函數(shù) 探索其他有趣的特征 總結(jié) 習(xí)題 第二部分 用MATLAB解決問題的進(jìn)階 第11章 MATLAB作圖 11.1 圖形函數(shù) 11.2 動畫 11.3 三維圖形 11.4 定制圖形 11.5 句柄圖形和圖形屬性 11.5.1 圖形對象和屬性 11.5.2 核心對象 11.6 plot的應(yīng)用 11.6.1 從函數(shù)中繪圖 11.6.2 繪制文件數(shù)據(jù) 11.7 保存和打印圖形 探索其他有趣的特征 總結(jié) 習(xí)題 第12章 基本統(tǒng)計、集合、排序和索引 12.1 統(tǒng)計函數(shù) 12.1.1 平均值 12.1.2 方差和標(biāo)準(zhǔn)差 12.1.3 眾數(shù) 12.1.4 中間值 12.2 集合操作 12.3 排序 12.3.1 對結(jié)構(gòu)體向量排序 12.3.2 字符串排序 12.4 索引 12.4.1 結(jié)構(gòu)體向量的索引 12.5 查找 12.5.1 順序查找 12.5.2 二分查找 探索其他有趣的特征 總結(jié) 習(xí)題 第13章 聲音和圖像 13.1 聲音文件 13.2 圖像處理 13.2.1 色圖 13.2.2 真彩色矩陣 13.2.3 圖像文件 13.3 圖形用戶界面的介紹 13.3.1 GUI基礎(chǔ) 13.3.2 文本框、 按鈕和滾動條 13.3.3 在 GUI 中畫圖和處理 圖像 13.3.4 規(guī)范化單位和按鈕組 探索其他有趣的特性 總結(jié) 習(xí)題 第14章 高等數(shù)學(xué)應(yīng)用 14.1 數(shù)據(jù)擬合曲線 14.1.1 多項式 14.1.2 曲線擬合 14.1.3 內(nèi)插值和外插值 14.2 復(fù)數(shù) 14.2.1 復(fù)數(shù)的判等 14.2.2 復(fù)數(shù)相加減 14.2.3 復(fù)數(shù)乘法 14.2.4 共軛復(fù)數(shù)和絕對值 14.2.5 表示為多項式的復(fù)數(shù) 方程式 14.2.6 極坐標(biāo)形式 14.2.7 繪圖 14.3 矩陣求解線性代數(shù)方程組 14.3.1 矩陣屬性 14.3.2 線性代數(shù)方程組 14.4 符號數(shù)學(xué) 14.4.1 符號變量和表達(dá)式 14.4.2 簡化函數(shù) 14.4.3 顯示表達(dá)式 14.4.4 解方程 14.5 微積分:積分和微分 14.5.1 積分和梯形法則 14.5.2 微分 14.5.3 符號數(shù)學(xué)工具箱中的微積分 探索其他有趣的特征 總結(jié) 習(xí)題 附錄1 MATLAB函數(shù) 附錄2 MATLAB和動態(tài)仿真工具箱
你還可能感興趣
我要評論
|