失效链接处理 |
MATLAB向量化编程基础精讲 PDF 下载
转载自:https://download.csdn.net/download/qq_23334759/10494410
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/1133564848.html
相关截图:
资料简介:
本书使用MATLAB*版本2016a,拣选Mathworks官方群组Cody中一些有趣的代码问题,分6章讲解这些优秀示例代码中使用数组、字符串操作、正则表达式以及匿名函数等方面的MATLAB编程技巧,并对其中较为典型和精彩的用法做扼要点评,对一些复杂思路或代码的细节和步骤,还逐一展开了延伸分析,使学习MATLAB编程的用户,能迅速体会MATLAB矢量化编程语言的基本特色。 本书适合所有MATLAB编程爱好者和使用MATLAB的不同专业大学生阅读,还可供研究生、科研工作人员及高校教师参考。
资料目录:
第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 |