MATALB向量化編程基礎精講 版權信息
- ISBN:9787512422094
- 條形碼:9787512422094 ; 978-7-5124-2209-4
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
MATALB向量化編程基礎精講 本書特色
本書使用MATLAB*版本2016a,揀選Mathworks官方群組Cody中一些有趣的代碼問題,分6章講解這些優秀示例代碼中使用數組、字符串操作、正則表達式以及匿名函數等方面的MATLAB編程技巧,并對其中較為典型和精彩的用法做扼要點評,對一些復雜思路或代碼的細節和步驟,還逐一展開了延伸分析,使學習MATLAB編程的用戶,能迅速體會MATLAB矢量化編程語言的基本特色。
本書適合所有MATLAB編程愛好者和使用MATLAB的不同專業大學生閱讀,還可供研究生、科研工作人員及高校教師參考。
MATALB向量化編程基礎精講 內容簡介
關于MATLAB編程,關于Mathworks官方的Cody,如果您希望有所了解并和全世界的高手“肩并肩”,這本書一定能不負你望。兩位作者在各大MATLAB論壇任版主多年,都是MATLAB骨灰級用戶,他們用平實的語言,剖析MATLAB的本質和系列編程技巧,因此,編程在這本書里是有趣的,讓人欲罷不能的。MATLAB中文論壇為本書設有專門的交流版塊,您有任何與本書有關的疑問,敬請來詢。
MATALB向量化編程基礎精講 目錄
第1章數組操作初步·1
1.1數組基礎訓練:算盤里的學問·1
1.1.1逐列循環結合正反向搜索·3
1.1.2利用累積乘積函數cumprod·6
1.1.3構造特殊的乘積因子·7
1.2數組基礎訓練:非零元素賦值為1·8
1.2.1循環 判斷·8
1.2.2利用邏輯判斷 矢量索引·9
1.2.3利用abs和sign·9
1.2.4min函數更改nanflag設置參數·10
1.3數組基礎訓練:將指定元素換成0·11
1.3.1循環 判斷·12
1.3.2高低維索引轉換后賦值·13
1.3.3利用bsxfun單一維擴展構造邏輯判斷條件·15
1.3.4利用sparse函數對全零稀疏矩陣相關元素賦值·16
1.3.5利用累積方式構造向量的accumarray函數·17
1.4數組基礎訓練:正反對角線互換·19
1.4.1尋找元素行列索引關系循環賦值·20
1.4.2利用低維索引查找正反對角元素關系賦值·20
1.4.3結合邏輯數組或點乘構造對角線元素·21
1.4.4利用邏輯“或”操作·26
1.5數組基礎訓練:尋找真約數·28
1.5.1函數factor和組合命令nchoosek·28
1.5.2*大公約數命令·29
1.5.3含求余函數mod和rem的邏輯判斷·30
1.6數組基礎訓練:康威的《生命游戲》·31
1.6.1枚舉·32
1.6.2循環·34
1.6.3疊加與卷積·35
1.7數組基礎訓練:尋找*大尺碼的“空盒子”·40
1.7.1循環·41
1.7.2利用conv2函數·42
1.8數組基礎訓練:尋找對角線上的*多連續質數·47
1.8.1卷積命令·48
1.8.2靈活的max diff find函數組合·53
1.9數組基礎訓練:掃雷棋盤模擬·59
1.9.1循環遍歷元素 判斷·60
1.9.2構造三對角矩陣的連乘方案·62
1.9.3利用卷積命令conv2·62
1.10數組基礎訓練:移除向量中的NaN及其后兩個數字·65
1.10.1循環·66
1.10.2矢量化索引操作·67
1.11數組基礎訓練:把NaN用左邊相鄰數字替代·70
1.11.1循環 判斷·70
1.11.2利用cumsum構造符合要求的索引·72
1.12數組基礎訓練:涉及類型轉換的數據替代·75
1.12.1利用循環判斷·76
1.12.2cellfun賦值符合條件的索引位元素·77
1.12.3利用原邏輯索引在cell數組中引用賦值·77
1.12.4統一邏輯索引以多輸出方式賦值·77
1.13數組基礎訓練:遞歸中的輸入輸出變量交互·79
1.14小結·81
第2章字符串操作初步·82
2.1字符串基礎訓練:字符取反的七種武器·82
2.1.1利用循環 判斷的傳統方式·84
2.1.2矢量化索引與不同函數組合的替換取反·85
2.1.3函數sprintf 邏輯索引構造·85
2.1.4函數char 邏輯數組 四則運算符的多種字符串構造方式·87
2.1.5冒號操作做字符格式歸并 ASCII碼值運算轉換·88
2.1.6函數num2str及其靈活的設定參數·90
2.1.7構造字符向量以輸入做邏輯索引取反·91
2.2字符串基礎訓練:星號排布·92
2.2.1循環·93
2.2.2矢量化構造方式·95
2.3字符串基礎訓練:“開心”的2013·95
2.3.1
循環 利用函數unique判斷·96
2.3.2循環 num2str轉化年份為字符串分離數字·96
2.3.3num2str分離數字 排序做差·97
2.4字符串基礎訓練:尋找“輪轉”的子字符串·99
2.4.1幾種不同的循環方式·100
2.4.2利用卷積命令conv2 測試矩陣·105
2.4.3利用cellfun strfind 測試矩陣gallery·105
2.5字符串基礎訓練:猜測密碼·106
2.5.1循環 判斷·107
2.5.2矢量化索引方式·108
2.6字符串基礎訓練:用指定數量填充字符·108
2.6.1循環判斷及repmat擴展序列·109
2.6.2利用索引構造擴展·110
2.6.3try流程省略判斷 函數strjoin拼接向量·110
2.6.4利用2015a版本中的新函數repelem·112
2.7字符串基礎訓練:帶判斷條件的字符串替代·112
2.7.1循環 判斷·113
2.7.2矢量化索引構造·114
2.8字符串基礎訓練:抽取指定位數數字組成向量并排序·116
2.8.1floor log10 mod組合·117
2.8.2轉換為字符串提取單字符·118
2.9字符串基礎訓練:二進制字符中查找*長的“1”序列·122
2.9.1查找邏輯索引做差·123
2.9.2字符匹配方式處理字符串·124
2.9.3查找字符替換為空格·125
2.10字符串基礎訓練:剔除指定數字的序列求和·126
2.10.1利用log10或mod等函數的數值處理·126
2.10.2利用進制轉換函數dec2base·128
2.10.3利用數值轉字符函數num2str構造邏輯索引·129
2.11字符串基礎訓練:元胞數組內字符串的合成·129
2.11.1函數sprintf·130
2.11.2利用向量的列排布變維·131
2.11.3函數strjoin·132
2.12小結·133
第3章數組操作進階:擴維與構造·134
3.1關于矩陣維數擴充的預備知識·135
3.1.1repmat函數·135
3.1.2索引構造·135
3.1.3kron函數擴維·136
3.1.4meshgrid和ndgrid函數擴維·137
3.1.5矩陣外積·139
3.1.6bsxfun函數矩陣擴維·139
3.1.7其他思路·145
3.1.8擴維思路的總結·145
3.2數組訓練進階:向量數值為長度的擴維·146
3.2.1循環·147
3.2.2利用arrayfun擴維·148
3.2.3利用repmat擴維·148
3.2.4利用meshgrid和ndgrid擴展矩陣索引·149
3.2.5利用bsxfun擴維·150
3.3數組訓練進階:求和與構造·151
3.3.1直接索引法·151
3.3.2加法中的減法·152
3.3.3中部元素置零·153
3.3.4測試矩陣構造·153
3.3.5卷積和濾波命令·157
3.4數組訓練進階:“行程長度編碼”序列構造·160
3.4.1利用循環拼接repmat擴展矩陣·161
3.4.2索引擴維、arrayfun擴展和cell2mat拼接·161
3.4.3按reshape變維向量循環處理·161
3.4.4遞歸·162
3.4.5直接調用函數repelem·163
3.5數組訓練進階:“行程長度編碼”的反問題·163
3.5.1循環拼接向量·164
3.5.2利用矢量化多次尋址構造序列·165
3.6數組訓練進階:孤島測距·166
3.6.1序列1,0元素索引位相減取*小值·166
3.6.2直接處理每段“安全”區域·167
3.6.3利用相鄰項數值的構造和比較·168
3.6.4利用濾波函數filter2·168
3.7數組訓練進階:生成索引數自擴展序列·170
3.7.1循環拼接·171
3.7.2利用測試矩陣hankel·172
3.7.3利用上三角矩陣函數triu meshgrid構造·172
3.8數組訓練進階:指定子向量長度求均值·173
3.8.1循環逐段求均值·174
3.8.2利用頻數累加函數accumarray·174
3.8.3利用測試矩陣hankel·176
3.8.4利用卷積系列命令·177
3.9數組訓練進階:統計群組數量·177
3.9.1循環拼接向量·178
3.9.2涉及排重命令unique的幾種解法·179
3.9.3利用累積求和函數cumsum與diff·181
3.10數組訓練進階:對角矩陣構造·181
3.10.1矩陣疊加·182
3.10.2借助特殊矩陣構造·185
3.10.3循環處理構造思路·187
3.11數組訓練進階:在時間序列中插入0元素·187
3.11.1指定位置賦值·187
3.11.2增加0元素用reshape變維·189
3.11.3循環·190
3.11.4利用kron函數擴展矩陣·190
3.11.5正則替換·191
3.12數組訓練進階:Bullseye矩陣構造·191
3.12.1工具箱特殊函數·192
3.12.2利用特殊矩陣構造·194
3.12.3基本數列構造并矢量化擴維·195
3.12.4遞歸、判斷與循環·199
3.13數組訓練進階:Bullseye矩陣構造擴展之一·200
3.13.1利用求余命令mod或rem獲得矩陣數值·200
3.13.2利用循環逐元素賦值·203
3.14數組訓練進階:Bullseye矩陣構造擴展之二·204
3.14.1ndgrid對“基”序列擴維·204
3.14.2利用測試矩陣spiral試湊·204
3.15數組訓練進階:Bullseye矩陣構造擴展之三·205
3.15.1構造“基”序列擴維·206
3.15.2特殊矩陣構造·209
3.15.3遞歸與循環·209
3.16數組訓練進階:Bullseye矩陣構造擴展之四·210
3.16.1循環·211
3.16.2向量組合 meshgrid函數構造·212
3.16.3bsxfun擴維·214
3.16.4測試矩陣spiral試湊·214
3.17數組基礎訓練:*小值替換為行均值·215
3.17.1循環與矢量化函數二者的結合·216
3.17.2利用高低維索引轉換函數sub2ind·217
3.17.3利用稀疏矩陣構造指定位置索引·217
3.17.4bsxfun單一維擴展構造索引·217
3.17.5累積*值函數cummin·218
3.18數組訓練進階:矩陣元素分隔——“內向”的矩陣·219
3.18.1循環 判斷·220
3.18.2利用函數kron擴維·221
3.18.3利用索引構造變換對新矩陣賦值·223
3.18.4利用稀疏矩陣命令sparse構造·225
3.18.5利用累積求和命令accumarray·226
3.19數組訓練進階:矩陣分塊均值——“外向”的矩陣·227
3.19.1循環逐個元素查找相鄰索引號·227
3.19.2利用circshift函數換序疊加·228
3.19.3利用二維卷積和濾波函數·229
3.20小結·229
第4章字符操作進階:正則表達式·231
4.1閑話正則·231
4.2靈活的正則語法·232
4.2.1元字符·232
4.2.2轉義字符·234
4.2.3匹配次數·234
4.2.4模式·236
4.2.5分組運算·237
4.2.6關于錨點·239
4.2.7左顧右盼·239
4.2.8邏輯與條件運算·240
4.2.9標記操作·241
4.2.10動態正則表達式·243
4.2.11注釋與搜索標識·246
4.3正則表達式基礎:元音字母計數·248
4.3.1其他解法·249
4.3.2正則解法·251
4.4正則表達式基礎:所有的字母都是大寫嗎?·252
4.4.1其他解法·252
4.4.2正則解法·254
4.5正則表達式基礎:移除字符串中的輔音字母·255
4.5.1其他解法·255
4.5.2正則解法·258
4.6正則表達式基礎:首尾元音字母字符串的查找·260
4.6.1其他解法·261
4.6.2正則解法·262
4.7正則表達式基礎:提取文本數字求和·263
4.7.1其他解法·263
4.7.2正則解法·265
4.8正則表達式基礎:錢數統計·267
4.8.1其他解法·268
4.8.2正則解法·271
4.9正則表達式基礎:文本數據的“開關式”查找替換·274
4.9.1其他解法·275
4.9.2正則解法·275
4.10正則表達式基礎:剔除且只剔除首尾指定空格·279
4.10.1其他解法·280
4.10.2正則解法·283
4.11正則表達式基礎:電話區號查詢·284
4.11.1其他解法·284
4.11.2正則解法·287
4.12正則表達式基礎:字母出現頻數統計·288
4.12.1其他解法·289
4.12.2正則解法·292
4.13正則表達式基礎:翻轉單詞(不是字母)次序·294
4.13.1其他解法·294
4.13.2正則解法·296
4.14正則表達式基礎:尋找*長的“回文”字符·298
4.14.1其他解法·298
4.14.2正則解法·299
4.15正則表達式基礎:求解“字符型”算術題·301
4.15.1其他解法·301
4.15.2正則解法·304
4.16本書前三章中一些問題的正則解法308
4.16.1正則表達式重解例1.12·308
4.16.2正則表達式重解例2.1·309
4.16.3正則表達式重解例2.5·310
4.16.4正則表達式重解例2.6·310
4.16.5正則表達式重解例2.8·312
4.16.6正則表達式重解例2.9·313
4.16.7正則表達式重解例2.10·314
4.16.8正則表達式重解例3.5·315
4.16.9正則表達式重解例3.6·315
4.16.10正則表達式重解例3.7·319
4.17小結·319
第5章多維數組漫談·320
5.1多維數組基礎·321
5.2多維數組問題1:擴維·328
5.2.1利用kron和reshape函數·330
5.2.2利用cat函數·332
5.2.3利用bsxfun和shiftdim函數·337
5.2.4利用convn和shiftdim函數·340
5.3多維數組問題2:“乘”操作·340
5.3.1循環和分情況判斷的基本方法·341
5.3.2點積單獨構造維數向量與循環的組合·343
5.3.3利用高、低維索引變換·343
5.3.4cell數組結構與repmat函數組合·346
5.3.5cell數組結構 擴維·349
5.4多維數組問題3:高維數組的矢量化索引尋址·352
5.4.1permute做源數據維度變換的不同方式·354
5.4.2索引分組·360
5.5小結·361
第6章匿名函數專題·362
6.1匿名函數探析·362
6.1.1基本應用·362
6.1.2匿名函數嵌套構造函數在程序編寫中的應用·364
6.1.3匿名函數與參數傳遞·367
6.1.4匿名函數進階·376
6.2匿名函數應用:函數迭代器·381
6.2.1循環求解的多個變體·381
6.2.2遞歸思路及引申·382
6.3匿名函數應用:返回多輸出·385
6.3.1利用匿名函數創建多輸出句柄·385
6.3.2利用匿名函數構造更靈活的任意數量輸出·390
6.4匿名函數應用:復合句柄·393
6.4.1利用子函數·394
6.4.2利用匿名函數構造·395
6.5匿名函數應用:斐波那契數列求值·400
6.5.1幾種不用匿名函數定義句柄的解法·401
6.5.2使用匿名函數構造序列的相關算法·404
6.6匿名函數應用:斐波那契數列構造·406
6.6.1不使用匿名函數的幾種求解思路·407
6.6.2使用匿名函數構造受控句柄的幾種解法·409
6.7匿名函數應用:函數執行計數器中的匿名函數傳參機理·410
6.7.1save load存儲調用變量·412
6.7.2圖形句柄·413
6.7.3隨機數控制器rng·414
6.7.4全局變量定義“global”·416
6.7.5匿名函數句柄傳遞計數結果·417
6.8小結·423
參考文獻·424
展開全部
MATALB向量化編程基礎精講 作者簡介
馬良:祖籍甘肅臨洮,任教于新疆工程學院,副教授,東北大學博士研究生。自從2003年接觸MATLAB后,便沉迷其中,雖閉門造車經年,但對MATLAB語言的喜好未改。作為普通高校教師,在平時的教學中,一直不遺余力地推廣使用MATLAB更好地完成專業教學、學習和科研工作。
祁彬彬:畢業于中國石油大學(北京)地球探測與信息技術專業,畢業后一直從事石油軟件研發工作。曾多次參加數學建模比賽,并獲得全國一等獎、二等獎多次。近10年來,一直活躍在MATLAB的各大論壇,擔任版主職務。在MATLAB官方的Cody程序解答活動中,目前排名全球第二。