MATLAB 修煉之道:編程實例透析

祁彬彬,馬良,靳歡

  • 出版商: 北京航空航天大學
  • 出版日期: 2022-08-01
  • 售價: $414
  • 貴賓價: 9.5$393
  • 語言: 簡體中文
  • 頁數: 304
  • 裝訂: 平裝
  • ISBN: 7512438435
  • ISBN-13: 9787512438439
  • 相關分類: Matlab
  • 立即出貨

買這商品的人也買了...

商品描述

本書主要介紹MATLAB編程基本操作方法與技巧。
由於MATLAB近幾年在基本操作和數據類型等方面發生了巨大變化,本書對於新版本MATLAB,
尤其是R2019b到R2021b中的比較引人注意的新增函數與實用功能,結合代碼示例說明其具體的應用方法。
全書共10章,
第1~4章介紹基本環境設置、代碼調試工具使用方法、數據類型等,
結合案例講解包括隱式擴展與逗號表達式等基本操作在內的綜合運用;
第6~10章講述函數與腳本、子函數與匿名函數在工程計算中的運用,
以及繪圖和實時腳本中的一些新老函數與代碼案例。

本書包含大量代碼案例,展示了MATLAB的基本操作方法、
函數命令與數據類型是如何有機融合在一起來解決實際問題的。
全書通俗易懂,適合具有一定基礎但希望更進一步理解和掌握MATLAB編程語言特點的讀者閱讀,
也可為科學研究工作者、教師在運用MATLAB語言解決實際編程問題時提供代碼編寫技巧與求解方法的參考。

作者簡介

祁彬彬
畢業於中國石油大學(北京)地球探測與信息技術專業,畢業後一直從事石油軟件研發工作。
曾多次參加數學建模比賽,並獲得全國一等獎、二等獎多次。
近10年來,一直活躍在MATLAB的各大論壇,擔任版主職務。
在MATLAB官方的Cody程序解答活動中,目前排名全球第二。

馬良
博士畢業於東北大學,副教授,從事現代機械設計理論相關研究。
自2003年開始學習MATLAB語言,作為一名高校教師,
近兩年來在工作中開始致力於研究如何合理與綜合地運用MATLAB等工具軟件,
輔助大學生數學建模的培訓與教學,指導學生在2021~2022年連續取得了高教社杯國家一等獎、Mathorcup一等獎和美賽M獎的成績。

靳歡
博士畢業於美國愛荷華大學,現任寧波諾丁漢大學助理教授,寧波市領軍與拔尖人才。
2016—2019年任麻省理工學院(MIT)兼職研究員。
從事優化方法與機器學習方法在物流交通領域的應用、理論和實證產業結合的研究,
運用優化理論和機器學習方法在國際SCI期刊上發表十餘篇學術論文。
主持和參與多項國家級及市級自然科學基金項目。

目錄大綱

第1章緒論1
1.1培養MATLAB編程的代碼直覺1
1.1.1案例1:用MATLAB實現快速排序算法2
1.1.2案例2:MATLAB計算“親密數”4
1.2使用新版本MATLAB6
第2章MATLAB環境設置與代碼調試工具10
2.1設置MATLAB工作環境10
2.1.1修改默認工作文件路徑10
2.1.2工作文件夾間的快速切換10
2.1.3一鍵調換界面背景配色方案12
2.1.4幫助文檔的基本設置與有效利用14
2.1.5MATLAB代碼編寫環境16
2.2代碼註釋與智能縮進19
2.3MATLAB中的代碼調試20
2.3.1MATLAB代碼調試工具20
2.3.2代碼調試示例1:逐行順序調試22
2.3.3代碼調試示例2:用Pause on Errors調試循環體23
2.3.4代碼調試示例3:添加邏輯斷點或assert函數24
2.4Visual Studio Code編寫和運行MATLAB代碼25
2.4.1VS Code編寫MATLAB代碼的環境配置26
2.4.2VS Code運行MATLAB代碼28
2.5MATLAB編程語言的特點與代碼示例分析28
2.5.1案例1:指定元素包含的判斷問題29
2.5.2案例2:矩陣中的運算操作32
2.5.3案例3:列元素交換位置34
2.6總結36
第3章運算操作符與數據類型37
3.1運算操作符37
3.1.1MATLAB 中的常用運算符38
3.1.2最“MATLAB”的操作方式:矢量化運算39
3.1.3低調而強大的隱式擴展47
3.2數據類型52
3.2.1MATLAB中的基本數據類型52
3.2.2cell/struct/table 類型特徵辨析53
3.2.3技巧:神秘的逗號表達式55
3.2.4技巧:兩種快速生成結構數組的方法57
3.2.5文本類型:char 或string58
3.2.6R2020b新功能:pattern模式搜索匹配string文本63
3.2.7用於時間描述的數據類型:datetim65
3.2.8關於映射表結構:containers.Map67
3.3總結69
第4章邏輯關係、邏輯運算與索引尋址70
4.1邏輯關係和邏輯運算70
4.1.1邏輯條件裡的8個“是非”斷定70
4.1.26種MATLAB 邏輯運算操作72
4.1.3進階:“短路”運算與常規數組邏輯操作特徵辨析73
4.1.4邏輯運算代碼示例1:分段函數76
4.1.5邏輯運算代碼示例2:構造字形矩陣78
4.2數組的索引尋址80
4.2.1多角標的高維索引80
4.2.2單一角標的低維索引81
4.2.3索引查找函數find82
4.2.4進階:示例解析不同索引應用方法83
4.3總結91
第5章MATLAB 腳本與函數92
5.1腳本、函數的基本功能辨析92
5.2m-function 的基本結構剖析93
5.3varargout/varargin 定制數量可變的輸入輸出95
5.4用inputParser 解析輸入變量97
5.5R2019b 新功能:用arguments 解析輸入變量99
5.5.1arguments 調用格式與基本功能100
5.5.2示例1: 解析輸入包含“名稱值”屬性參數對的函數101
5.5.3示例2:用自定義解析函數輸入變量102
5.5.4示例3:解析輸入包含varargin的函數103
5.6增強程序條理性的利器:子函數104
5.7函數和腳本綜合運用實例105
5.7.1MATLAB 中的數值積分106
5.7.2非線性方程(組) 計算——求解器式與問題式方案110
5.7.3常微分方程及參數傳遞116
5.8總結120
第6章MATLAB 程序控制流程121
6.1控制流程概述121
6.2for/while 循環流程示例122
6.2.1for 循環122
6.2.2while 循環125
6.2.3for/while 流程綜合示例:十一抽殺問題126
6.3多路分支的if 和switchcase 流程130
6.3.1克拉茲序列中if 流程解讀130
6.3.2今天星期幾——switch 流程做文本選擇132
6.4總結136
第7章匿名函數及其應用137
7.1匿名函數概念與基本用法137
7.1.1匿名函數調用方法137
7.1.2應用示例1:匿名函數與參數化的繪圖138
7.1.3應用示例2:以數據“反調用”匿名函數句柄140
7.2嵌套匿名函數與參數傳遞141
7.3嵌套匿名函數示例1:含參變量數值積分142
7.3.1匿名函數構造一重數值積分被積表達式142
7.3.2匿名函數構造帶參數非矩形區域三重積分被積表達式143
7.4嵌套匿名函數示例2:含參變量的非線性方程組144
7.5嵌套匿名函數示例3:含參變量的常微分方程146
7.5.1ODE 的匿名函數基本解法146
7.5.2嵌套匿名函數構造含參變量常微分方程組148
7.5.3嵌套匿名函數結構數組傳遞參數149
7.5.4嵌套匿名函數構造隱式微分代數方程(組) 模型152
7.5.5嵌套匿名函數構造攜帶分段參變量微分方程模型154
7.5.6匿名函數與ODE 中的Events 事件構造156
7.6總結159
第8章圖形技術160
8.1圖形對象160
8.1.1概念:MATLAB圖形的對象父子結構關係161
8.1.2示例:空間參數曲線與圖形對象層級162
8.2平面圖形繪製基本方法概述163
8.2.1示例:曲線圖繪製及屬性參數設置代碼分析163
8.2.2示例:曲線圖和屬性值設置初步165
8.2.3示例:圖形屬性參數的進一步設置167
8.2.4示例:多坐標軸子圖的subplot 和tiledlayout 函數170
8.2.5繪圖函數plot 的數據邏輯175
8.2.6用stackedplot 函數繪製堆疊圖183
8.2.7函數histcounts/histogram 與頻數直方圖188
8.2.8柱狀圖195
8.2.9用polarplot 繪製極坐標圖209
8.2.10用xline/yline 繪製垂直和水平線210
8.2.11R2018b 新功能:增強的圖軸和數據交互工具212
8.2.12R2020b 新增:線圖對象的數據點標記214
8.3三維曲線(面) 和數據可視化217
8.3.1對流線切片示例的拓展思考217
8.3.2三維數據圖形的“動畫”視效實現222
8.3.3光源和視效美化初步223
8.3.4綜合示例:幾何體堆疊畫法和patch補片機理分析226
8.4R2019b 新功能:通過圖表容器類自定義圖形對象234
8.5MATLAB圖形輸出237
8.5.1MATLAB圖形輸出方式與類別237
8.5.2用Export Setup(hgexport) 輸出圖形238
8.5.3R2020a 新函數:用copygraphics 輸出圖形239
8.5.4用pirnt/exportgraphics 函數打印和輸出圖片240
8.6總結243
第9章數據和文件I/O244
9.1數據I/O概述244
9.2load/save讀寫數據245
9.2.1用save保存數據245
9.2.2用load讀取數據247
9.3用importdata讀取數據249
9.4用textscan讀取數據250
9.5R2013b 函數:readtable/writetable讀寫數據254
9.5.1簡述新增數據讀寫高級命令254
9.5.2table 數據類型的基本知識255
9.5.3示例:readtable/writetable 讀寫dat/txt 數據259
9.5.4示例:readtable 讀取csv 數據261
9.5.5示例:readtable/writetable 讀寫Excel 數據262
9.5.6示例:readvars 從文件中讀取變量264
9.6R2019a 新函數:readcell/writecell 讀寫數據265
9.6.1示例:writecell 將多個Word 表格導入Excel 文件265
9.6.2示例:readcell 將數據讀入MATLAB267
9.7R2019a 新函數:readmatrix/writematrix 讀寫數據270
9.7.1示例:writematrix cellfun 實現數據讀取與類型變換270
9.7.2示例:複雜數值型數據的提取與讀寫272
9.8R2020b 新函數:用readstruct 讀取xml 數據文件276
9.9xlsread/xlswrite 成為“不推薦函數”原因初探279
9.10總結279
第10章實時代碼編輯器(Live Editor)281
10.1引言281
10.2Live Editor 主要功能簡介283
10.2.1新建實時腳本和實時函數283
10.2.2初識實時腳本的文本和代碼環境283
10.2.3實時腳本中的大綱目錄分級284
10.2.4文本環境中的公式插入285
10.2.5插入超鏈接286
10.2.6Code Example 功能287
10.2.7實時腳本中的互動式控件288
10.3實時腳本插入App 實現交互任務289
10.4Live Editor 符號計算替代MuPAD 的原因分析292
10.4.1Live Editor 符號計算:合乎習慣的公式顯示效果292
10.4.2Live Editor符號計算:一致的語法風格293
10.5R2020b 新功能:交互式優化建模計算示例296
10.5.1空域飛行管理問題描述與數學模型297
10.5.2優化模型與實現代碼297
10.5.3實時腳本嵌入交互式優化App300
10.6總結303
參考文獻304