内容介绍
MATLAB是目前流行的大规模数学工具之一,可以完成大部分科学运算。从实用的角度出发,系统地介绍了MATLAB的各种功能,包括:数组、矩阵与线性代数、基本数学计算功能、符号计算和符号数学工具箱、程序控制与设计、矩阵实验室绘图、基于Simulink的系统仿真、图形用户界面、MATLAB信号处理、MATLAB和数理统计等。
为了方便读者对MATLAB函数的理解,书中列举了大量的函数示例,真正帮助读者学以致用。可以作为各级MATLAB用户的参考书,尤其是相关专业的学生和老师、广大科研工作者、工程师咨询手册。
目录
- 第 1章 MATLAB入门 1
- 1.1 MATLAB简介 1
- 1.2 MATLAB开发环境介绍 4
- 1.2.1 MATLAB命令窗口 5
- 1.2.2 工作空间窗口 7
- 1.2.3 当前目录窗口 8
- 1.2.4 命令历史窗口 10
- 1.2.5 常用菜单命令 10
- 1.3 M文件 15
- 1.3.1 M文件编辑器 16
- 1.3.2 M脚本文件 20
- 1.3.3 M函数文件 22
- 第 2章 数组、矩阵与线性代数 25
- 2.1 数组和矩阵基本运算 25
- 2.1.1 zeros——创建零矩阵 25
- 2.1.2 eye——创建单位矩阵 27
- 2.1.3 ones——创建全1矩阵 28
- 2.1.4 size——数组的维数 30
- 2.1.5 cat——串接数组 32
- 2.1.6 rand——创建均匀分布的随机矩阵 33
- 2.1.7 randn——创建正态分布的随机矩阵 35
- 2.1.8 randperm——生成随机整数排列 36
- 2.1.9 linspace——创建线性等分向量 37
- 2.1.10 logspace——创建对数等分向量 38
- 2.1.11 nnz——计算非零元素的个数 40
- 2.1.12 nonzeros——找出矩阵中的非零元素 41
- 2.1.13 nzmax——计算矩阵非零元素所占空间 42
- 2.1.14 blkdiag——创建以输入元素为对角线元素的矩阵 43
- 2.1.15 compan——创建友矩阵 44
- 2.1.16 hankel——创建Hankel矩阵 45
- 2.1.17 hilb——创建Hilbert(希尔伯特)矩阵 47
- 2.1.18 invhilb——创建逆Hilbert矩阵 48
- 2.1.19 pascal——创建Pascal矩阵 50
- 2.1.20 toeplitz——创建托普利兹矩阵 51
- 2.1.21 sparse——生成稀疏矩阵 52
- 2.1.22 full——将稀疏矩阵转化为满矩阵 54
- 2.1.23 spdiags——提取对角线或生成带状稀疏矩阵 54
- 2.1.24 speye——单位稀疏矩阵 57
- 2.1.25 sprand——生成均匀分布的随机稀疏矩阵 58
- 2.1.26 sprandn——生成正态分布的随机稀疏矩阵 58
- 2.1.27 sprandsym——生成对称的随机稀疏矩阵 59
- 2.1.28 wilkinson——创建Wilkinson特征值测试阵 60
- 2.1.29 dot——计算向量的点积 61
- 2.1.30 cross——计算向量叉乘 62
- 2.1.31 conv——矩阵的卷积和多项式乘法 63
- 2.1.32 deconv——反卷积和多项式除法运算 64
- 2.1.33 kron——张量积 65
- 2.1.34 intersect——计算两个集合的交集 66
- 2.1.35 ismember——检测集合中的元素 68
- 2.1.36 setdiff——计算集合的差 69
- 2.1.37 setxor——计算两个集合的异或 70
- 2.1.38 union——计算两个集合的并集 71
- 2.1.39 unique——取集合的单值元素 72
- 2.1.40 expm——求矩阵的指数 73
- 2.1.41 logm——求矩阵的对数 74
- 2.1.42 funm——通用矩阵函数 75
- 2.2 线性代数 76
- 2.2.1 chol——Cholesky分解 76
- 2.2.2 lu——LU分解 81
- 2.2.3 qr——QR分解 85
- 2.2.4 qrdelete——对矩阵删除行/列后QR分解 86
- 2.2.5 qrinsert——对矩阵添加行/列后QR分解 87
- 2.2.6 schur——Schur分解 88
- 2.2.7 rsf2csf——实Schur向复Schur转化 90
- 2.2.8 eig——计算特征值、特征向量 92
- 2.2.9 svd——奇异值分解 94
- 2.2.10 qz——广义特征值的QZ分解 96
- 2.2.11 hess——海森伯格形式的分解 98
- 2.2.12 null——求矩阵的零空间 100
- 2.2.13 symmlq——线性方程组的LQ解法 101
- 2.2.14 bicg——双共轭梯度法解方程组 103
- 2.2.15 cgs——复共轭梯度平方法解方程组 106
- 2.2.16 lsqr——共轭梯度的LSQR方法 107
- 2.2.17 gmres——广义**小残差法解方程组 108
- 2.2.18 minres——**小残差法解方程组 110
- 2.2.19 pcg——预处理共轭梯度法解方程组 112
- 2.2.20 qmr——准**小残差法解方程组 113
- 2.2.21 cdf2rdf——复对角矩阵转化为实对角矩阵 114
- 2.2.22 orth——将矩阵正交规范化 115
- 2.2.23 rank——求矩阵的秩 116
- 2.2.24 spfun——对稀疏矩阵非零元素执行运算 117
- 2.2.25 spy——画出稀疏矩阵非零元素的分布 118
- 2.2.26 colamd——按列近似**低度排序 120
- 2.2.27 colperm——按非零元素个数排列的向量 121
- 2.2.28 dmperm——Dulmage-Mendelsohn分解 121
- 2.2.29 condest——1-范数的条件数估计 122
- 2.2.30 normest——2-范数的估计 123
- 第3章 基本数学计算函数 124
- 3.1 sin与sinh——计算正弦和双曲正弦函数值 124
- 3.2 asin与asinh——计算反正弦函数和反双曲正弦函数值 126
- 3.3 cos与cosh——计算余弦和双曲余弦函数值 128
- 3.4 acos与acosh——计算反余弦和反双曲余弦函数值 129
- 3.5 tan与tanh——计算正切和双曲正切函数值 131
- 3.6 atan和atanh——计算反正切和反双曲正切函数值 132
- 3.7 cot和coth——计算余切和双曲余切函数值 134
- 3.8 acot和acoth——计算反余切和反双曲余切函数值 135
- 3.9 sec和sech——计算正割和双曲正割函数值 137
- 3.10 asec和asech——计算反正割和反双曲正割函数值 138
- 3.11 csc和csch——计算余割和双曲余割函数的数值 140
- 3.12 acsc和acsch——计算反余割和反双曲余割函数值 141
- 3.13 atan2——四象限的反正切函数 143
- 3.14 abs——计算数值的绝 对值 145
- 3.15 exp——计算指数 146
- 3.16 log——计算自然对数 148
- 3.17 log10——计算常用对数 149
- 3.18 sort——进行排序 150
- 3.19 fix——向零方向取整 152
- 3.20 round——向**近的方向取整 153
- 3.21 floor——向负无穷大方向取整 154
- 3.22 ceil——向正无穷大方向取整 155
- 3.23 rem——计算余数 155
- 3.24 real——计算复数的实部 156
- 3.25 image——计算复数的虚部 157
- 3.26 angle——计算复数的相角 157
- 3.27 conj——计算复数的共轭 158
- 3.28 complex——创建复数 159
- 3.29 mod——计算模数 160
- 3.30 nchoosek——计算组合数 161
- 3.31 interp1——一维数据插值 162
- 3.32 interp2——二维数据插值 164
- 3.33 interp3——三维数据插值 166
- 3.34 interpn——n维数据插值 168
- 3.35 spline——三次样条数据插值 168
- 3.36 interpft——快速Fourier插值 170
- 3.37 max——**大值函数 171
- 3.38 min——**小值函数 172
- 3.39 mean——平均值函数 174
- 3.40 median——中位数函数 175
- 3.41 sum——求和函数 176
- 3.42 prod——连乘函数 176
- 3.43 cumsum——累积总和值 177
- 3.44 cumprod——累积连乘 178
- 3.45 quad——自适应Simpson法计算定积分 178
- 3.46 quadl——自适应Lobatto法计算定积分 179
- 3.47 trapz——用梯形法进行数值积分 180
- 3.48 rat/rats——有理分式逼近 181
- 3.49 dblquad——矩形区域的二元函数重积分 182
- 3.50 diff——求数值微分 183
- 3.51 diff——求符号微分 184
- 3.52 int——求符号积分 185
- 3.53 roots——求多项式的根 186
- 3.54 poly——通过根求原多项式系数 187
- 3.55 dsolve——求解常微分方程 188
- 3.56 fzero——求一元连续函数的零点 189
- 第4章 符号计算与符号数学工具箱 191
- 4.1 初等运算函数 191
- 4.1.1 sym——定义符号变量 191
- 4.1.2 syms——定义多个符号变量 192
- 4.1.3 compose——计算复合函数 193
- 4.1.4 colspace——计算列空间的基 195
- 4.1.5 real——计算复数的实部 196
- 4.1.6 imag——计算复数的虚部 197
- 4.1.7 symsum——计算表达式的和 197
- 4.1.8 collect——合并同类项 198
- 4.1.9 expand——展开符号表达式 199
- 4.1.10 factor——符号因式分解 199
- 4.1.11 simplify——化简符号表达式 200
- 4.1.12 numden——计算表达式的分子与分母 201
- 4.1.13 double——将符号矩阵转化为浮点型数值 202
- 4.1.14 solve——求解代数方程 203
- 4.1.15 simple——计算表达式的**简形式 204
- 4.1.16 finverse——计算反函数 205
- 4.1.17 ploy——求特征多项式 206
- 4.1.18 poly2sym——将多项式系数向量转化为带符号变量的多项式 207
- 4.1.19 symvar——确定表达式中的符号变量 207
- 4.1.20 horner——用嵌套形式表示多项式 208
- 4.2 符号微积分 209
- 4.2.1 limit——计算符号表达式的极限 209
- 4.2.2 diff——计算符号微分 210
- 4.2.3 int——计算符号积分 212
- 4.2.4 dsolve——求解常微分方程式 213
- 4.3 绘制符号函数的图像 215
- 4.3.1 ezplot——绘制符号函数图形 215
- 4.3.2 ezplot3——绘制三维符号函数 216
- 4.3.3 ezcontour——绘制符号函数的等高线图 218
- 4.3.4 ezcontourf——用不同颜色填充的等高线图 219
- 4.3.5 ezpolor——绘制极坐标图形 220
- 4.3.6 ezmesh——符号函数的三维网格图 221
- 4.3.7 ezmeshc——同时画曲面网格图与等高线图 222
- 4.3.8 ezsurf——三维带颜色的曲面图 223
- 4.3.9 ezsurfc——同时画出曲面图与等高线图 225
- 4.4 积分变换 226
- 4.4.1 fourier——Fourier变换 226
- 4.4.2 ifourier——Fourier逆变换 227
- 4.4.3 laplace——Laplace变换 229
- 4.4.4 ilaplace——Laplace逆变换 230
- 4.4.5 ztrans——Z-变换 231
- 4.4.6 iztrans——逆Z-变换 232
- 4.5 其他符号运算函数 233
- 4.5.1 vpa——可变精度算法 233
- 4.5.2 subs——替换符号表达式中的变量 234
- 4.5.3 taylor——符号函数的Taylor级数展开式 235
- 4.5.4 jacobian——计算雅可比矩阵 237
- 4.5.5 rsums——交互式计算Riemann积分 238
- 4.5.6 latex——符号表达式的LaTeX表达式 239
- 4.5.7 syms——快速创建多个符号对象 240
- 4.5.8 mfun——特殊函数的数值计算 241
- 4.5.9 sym2poly——将符号多项式转为数值形式 243
- 4.5.10 ccode——符号表达式的C语言代码 243
- 4.5.11 fortran——符号表达式的FORTRAN语言代码 244
- 4.5.12 pretty——排版输出符号表达式 245
- 4.5.13 digit——精 确度函数 247
- 4.5.14 符号表达式的四则运算与幂运算 248
- 第5章 程序控制与设计 251
- 5.1 input——接受用户的键盘输入 251
- 5.2 disp——显示字符串或数组 253
- 5.3 pause——暂停程序运行 256
- 5.4 for循环 258
- 5.5 while循环 263
- 5.6 if-else-end条件结构 267
- 5.7 switch-case-end条件结构 269
- 5.8 try-catch-捕获异常 271
- 5.9 continue——转到下一次循环 274
- 5.10 break——跳出循环 276
- 5.11 return——函数返回 277
- 5.12 keyboard模式 278
- 5.13 error——显示错误信息 279
- 5.14 warning——显示警告信息 281
- 第6章 MATLAB 绘图 283
- 6.1 图形绘制函数 283
- 6.1.1 plot——绘制二维曲线 283
- 6.1.2 subplot——窗口分区绘图 287
- 6.1.3 figure——创建新窗口或选中窗口 288
- 6.1.4 fplot——绘制函数曲线 290
- 6.1.5 loglog——绘制双对数坐标图形 292
- 6.1.6 semilogx/semilogy——绘制单对数坐标图形 294
- 6.1.7 ezplot——绘制隐函数曲线图 296
- 6.1.8 plot3——绘制三维曲线 298
- 6.1.9 stem——绘制二维离散序列 299
- 6.1.10 bar——绘制二维柱状图 300
- 6.1.11 errorbar——绘制误差图 302
- 6.1.12 hist——绘制二维直方图 304
- 6.1.13 pie——绘制饼图 305
- 6.1.14 mesh——绘制三维网格图 307
- 6.1.15 surf——绘制三维曲面图 308
- 6.1.16 contour——绘制二维等高线 309
- 6.1.17 contour3——绘制三维等高线 310
- 6.1.18 contourf——填充二维等高线 311
- 6.1.19 sphere——绘制球体 313
- 6.1.20 cylinder——绘制圆柱 314
- 6.2 图形设置函数 315
- 6.2.1 设置图形标题、坐标轴标签、坐标轴范围 316
- 6.2.2 grid、box——添加网格和边框 318
- 6.2.3 legend——添加图例 319
- 6.2.4 text——添加字符串 320
- 6.2.5 hold——图形保持 321
- 6.2.6 clabel——绘制等高线高度标签 323
- 6.2.7 colormap——设置色图 324
- 第7章 用Simulink进行系统仿真 328
- 7.1 Simulink基本操作命令 328
- 7.1.1 simulink——打开Simulink模块库浏览器 328
- 7.1.2 find_system——查找仿真系统或系统中的模块 329
- 7.1.3 load_system——加载仿真系统 332
- 7.1.4 open_system——打开仿真系统或模块 332
- 7.1.5 set_param——设置系统或模块的参数 336
- 7.1.6 get_param——获取系统或模块的参数 337
- 7.1.7 gcs——获得当前系统名称 338
- 7.1.8 gcb——获得当前模块名称 339
- 7.1.9 gcbh——获得当前模块句柄 340
- 7.1.10 getfullname——获得当前模块的全路径名称 340
- 7.1.11 slupdate——更新旧版本的仿真模块 341
- 7.1.12 bdclose——无条件关闭仿真系统窗口 342
- 7.1.13 slhelp——查看Simulink帮助信息 342
- 7.2 仿真控制命令 343
- 7.2.1 sim——动态系统仿真 344
- 7.2.2 linmod——模型线性化 347
- 7.2.3 trim——求解系统平衡点 349
- 第8章 GUI图形用户界面 351
- 8.1 对象与属性 351
- 8.1.1 figure——创建窗口对象 351
- 8.1.2 uimenu——创建菜单或子菜单 353
- 8.1.3 set——设置图形对象属性 354
- 8.1.4 get——获得图形对象属性 357
- 8.1.5 gcf——返回当前图形窗口句柄 358
- 8.2 预定义对话框 359
- 8.2.1 helpdlg——创建帮助对话框 359
- 8.2.2 errordlg——创建错误对话框 360
- 8.2.3 warndlg——创建警告对话框 361
- 8.2.4 uisetcolor——标准颜色选择对话框 362
- 8.2.5 questdlg——创建问题对话框 363
- 8.2.6 msgbox——创建消息对话框 365
- 8.3 编写控件内容 366
- 8.3.1 uicontrol——控件编写 366
- 8.3.2 Button——按钮控件编写 370
- 第9章 MATLAB在信号处理领域的应用 375
- 9.1 测试信号的生成 375
- 9.1.1 生成阶跃信号 375
- 9.1.2 diric——生成狄利克雷(Dirichlet)信号 377
- 9.1.3 sawtooth——生成锯齿波或三角波 378
- 9.1.4 sinc——生成sinc信号 380
- 9.1.5 chirp——生成扫频信号 382
- 9.2 在时域、频域进行信号分析 384
- 9.2.1 mean——求信号的均值 384
- 9.2.2 std——信号的标准差 385
- 9.2.3 xcorr——信号的自相关或互相关 386
- 9.2.4 conv——信号卷积 388
- 9.2.5 fft——快速傅里叶变换 390
- 9.2.6 hilbert——希尔伯特(Hilbert)变换 393
- 9.2.7 residuez——Z-变换的部分分式展开 394
- 9.3 滤波器函数 396
- 9.3.1 buttap——设计巴特沃斯模拟低通滤波器 396
- 9.3.2 butter——设计巴特沃斯滤波器 397
- 9.3.3 cheb1ap——设计切比雪夫1型模拟低通滤波器 400
- 9.3.4 cheb2ap——设计切比雪夫2型模拟低通滤波器 401
- 9.3.5 cheby1——设计切比雪夫1型滤波器 403
- 9.3.6 besselap——设计贝塞尔模拟低通滤波器 405
- 9.3.7 besself——设计贝塞尔模拟滤波器 406
- 9.3.8 ellip——设计椭圆滤波器 408
- 9.3.9 impinvar——用脉冲响应不变法将模拟滤波器转为数字滤波器 410
- 9.3.10 bilinear——用双线性变换法将模拟滤波器转为数字滤波器 412
- 9.3.11 yulewalk——设计IIR数字滤波器 414
- 9.3.12 fir1——设计基于窗的FIR滤波器 416
- 9.3.13 fir2——设计基于频率采样的FIR滤波器 417
- 第 10章 MATLAB与数理统计 419
- 10.1 满足特定分布的随机数生成 419
- 10.1.1 binornd——生成二项分布随机数 419
- 10.1.2 normrnd——生成正态分布随机数 421
- 10.1.3 random——生成指定分布的随机数 422
- 10.2 分布、概率与概率密度 423
- 10.2.1 binopdf——计算二项分布的概率 424
- 10.2.2 normpdf——计算正态分布的概率密度 425
- 10.2.3 lognpdf——计算对数正态分布的概率密度 426
- 10.2.4 chi2pdf——计算卡方分布的概率密度 428
- 10.2.5 ncx2pdf——计算非中心卡方分布的概率密度 429
- 10.2.6 fpdf——计算F分布的概率密度 431
- 10.2.7 ncfpdf——计算非中心F分布的概率密度 432
- 10.2.8 poisspdf——计算泊松分布的概率 433
- 10.2.9 tpdf——计算T分布的概率密度 435
- 10.2.10 raylpdf——计算瑞利分布的概率密度 436
- 10.2.11 wblpdf——计算韦伯分布的概率密度 438
- 10.2.12 gampdf——计算伽马分布的概率密度 439
- 10.2.13 nbinpdf——计算负二项分布的概率 440
- 10.2.14 exppdf——计算指数分布的概率密度 442
- 10.2.15 pdf——计算指定分布的概率密度函数 443
- 10.3 随机变量的累积分布 445
- 10.3.1 binocdf——计算二项分布的累积概率 445
- 10.3.2 normcdf——计算正态分布的累积概率 446
- 10.3.3 cdf——计算指定分布的累积分布 446
- 10.3.4 norminv——计算正态分布的逆累积分布 448
- 10.3.5 icdf——计算指定分布的逆累积分布 449
- 10.4 随机变量的数字特征 450
- 10.4.1 mean——求样本均值 450
- 10.4.2 geomean——求几何平均数 451
- 10.4.3 nanmean——求忽略NaN的均值 452
- 10.4.4 harmmean——求调和平均数 453
- 10.4.5 var——求样本方差 454
- 10.4.6 std——求样本标准差 455
- 10.4.7 nanstd——求忽略NaN的标准差 455
- 10.4.8 median——计算中位数 456
- 10.4.9 nanmedian——求忽略NaN的中位数 457
- 10.4.10 range——求**大值与**小值之差 457
- 10.4.11 skewness——求样本偏斜度 458
- 10.4.12 unifstat——求均匀分布的期望和方差 460
- 10.4.13 normstat——求正态分布的期望和方差 461
- 10.4.14 binostat——求二项分布的期望和方差 462
- 10.4.15 cov——求协方差 463
- 10.4.16 corrcoef——求相关系数 464
- 10.5 参数估计 466
- 10.5.1 unifit——均匀分布的参数估计 466
- 10.5.2 normfit——正态分布的参数估计 467
- 10.5.3 binofit——二项分布的参数估计 468
- 10.5.4 betafit——beta分布的参数估计 469
- 10.5.5 expfit——指数分布的参数估计 470
- 10.5.6 gamfit——伽马分布的参数估计 471
- 10.5.7 wblfit——韦伯分布的参数估计 471
- 10.5.8 poissfit——泊松分布的参数估计 473
- 10.5.9 mle——指定分布的参数估计 473
- 10.5.10 nlparci——非线性模型参数估计的置信区间 475
- 10.5.11 nlpredci——非线性模型预测值的置信区间 477
- 10.5.12 lsqnonneg——非负约束的**小二乘 479
- 10.5.13 nlinfit——非线性回归 481
- 10.5.14 nlintools——交互式非线性回归 483
- 10.5.15 betalike——beta分布的负对数似然函数 485
- 10.5.16 gamlike——伽马分布的负对数似然函数 487
- 10.5.17 normlike——正态分布的负对数似然函数 488
- 10.5.18 wbllike——正态分布的负对数似然函数 488
- 10.6 假设检验 489
- 10.6.1 ttest——T检验 490
- 10.6.2 ztest——Z检验 491
- 10.6.3 signtest——符号检验 493
- 10.6.4 ranksum——秩和检验 495
- 10.6.5 signrank——符号秩检验 495
- 10.6.6 ttest2——两个样本的t检验 496
- 10.6.7 jbtest——总体分布的正态性检验 497
- 10.6.8 kstest——单样本的Kolmogorov-Smirnov检验 499
- 10.6.9 kstest2——两个样本的Kolmogorov-Smirnov检验 500
- 10.7 概率统计的图像表示 502
- 10.7.1 lsline——为散点图添加**小二乘拟合直线 502
- 10.7.2 normplot——绘制正态分布概率图形 503
- 10.7.3 tabulate——数据的频率表显示 504
- 10.7.4 capaplot——绘制概率图形 505
- 10.7.5 cdfplot——绘制经验累积分布函数图 506
- 10.7.6 wblplot——韦伯分布概率图形 507
- 10.7.7 histfit——带概率分布拟合的直方图 508
- 10.7.8 boxplot——盒须图 509
- 10.7.9 refline——为图形添加参考直线 511
- 10.7.10 refcurve——为图形添加多项式参考曲线 512
- 10.7.11 normspec——在指定区间绘制正态分布曲线 514