MATLAB/Simulink/C++/Java等编程援助
联系方式:
QQ:806268790
邮箱:806268790@qq.com
QQ 空间:http://806268790.qzone.qq.com
更多学习资料,请加我为 QQ 好友,或者访问我的 QQ 空间
有编程问题的朋友,请直接加我为QQ好友,提供在线答疑
如果我QQ不在线,请将问题发到我的邮箱,及时给你答复
专业提供以下方向的编程援助:
1. MATLAB/Simulink/C++/Java等编程问题;
2. 数字图像处理、信号处理、通信仿真设计;
3. 机器人路径规划、轨迹规划、机器人控制;
4. 各类数值计算、小波分析算法、优化设计;
5. 自动控制、电机控制、智能控制、模糊控制;
6. 粒子群算法、神经网络、遗传算法等智能算法;
7. 其他编程和仿真问题。
郑重声明:本资料整理于网络,仅限交流使用,切勿用做商业用途!
目 录
第 1 章 MATLAB简介........................................ 1
1.1 MATLAB 的发展沿革........................... 1
1.2 MATLAB 的特点及应用领域............... 2
1.3 MATLAB 系统及工具箱....................... 3
1.4 MATLAB 的安装和启动....................... 4
1.5 MATLAB 操作界面............................... 5
1.5.1 命令窗口(Command Window)... 5
1.5.2 历史命令(Command
History)窗口............................... 9
1.5.3 当前目录(Current Directory)
窗口 .......................................... 11
1.5.4 工作空间(Workspace)窗口...... 12
1.5.5 帮助(Help)窗口........................ 13
1.6 MATLAB 的各种文件......................... 14
1.7 MATLAB 的搜索路径......................... 14
1.7.1 搜索路径机制和搜索顺序....... 14
1.7.2 设置搜索路径的方法 .............. 15
1.8 MATLAB 窗口操作命令..................... 16
1.9 小结 ...................................................... 18
1.10 习题 .................................................... 18
第 2 章 MATLAB 语言基础
............................ 20
2.1 基本概念 .............................................. 20
2.1.1 MATLAB 数据类型................. 20
2.1.2 常量与变量 .............................. 21
2.1.3 标量、向量、矩阵与数组....... 22
2.1.4 字符串 ...................................... 23
2.1.5 运算符 ...................................... 23
2.1.6 命令、函数、表达式和语句... 26
2.2 向量运算 .............................................. 27
2.2.1 向量的生成 .............................. 27
2.2.2 向量的加减和数乘运算........... 28
2.2.3 向量的点、叉积运算 .............. 29
2.3 矩阵运算 .............................................. 31
2.3.1 矩阵元素的存储次序 .............. 31
2.3.2 矩阵元素的表示及相关操作... 31
2.3.3 矩阵的创建 .............................. 34
2.3.4 矩阵的代数运算....................... 40
2.4 数组运算............................................... 48
2.4.1 多维数组元素的存储次序....... 48
2.4.2 多维数组的创建....................... 48
2.4.3 数组的代数运算....................... 51
2.4.4 数组的关系与逻辑运算........... 54
2.4.5 数组和矩阵函数的通用形式... 57
2.5 字符串运算........................................... 59
2.5.1 字符串变量与一维字符
数组 .......................................... 59
2.5.2 对字符串的多项操作............... 60
2.5.3 二维字符数组........................... 62
2.6 小结 ...................................................... 63
2.7 习题 ...................................................... 63
第 3 章 MATLAB 数值运算
............................. 65
3.1 多项式................................................... 65
3.1.1 多项式的表达和创建............... 65
3.1.2 多项式的四则运算................... 65
3.1.3 多项式求值和求根运算........... 68
3.1.4 多项式的构造........................... 70
3.2 插值和拟合........................................... 71
3.2.1 多项式插值和拟合................... 71
3.2.2 最小二乘法拟合....................... 77
3.3 数值微积分........................................... 79
3.3.1 微分和差分 .............................. 79
3.3.2 牛顿-科茨系列数值积分
公式 .......................................... 81
3.4 线性方程组的数值解........................... 83
3.4.1 直接法 ...................................... 84
3.4.2 迭代法 ...................................... 85
3.5 稀疏矩阵............................................... 89
3.5.1 稀疏矩阵的建立....................... 90
MATLAB 基础及其应用教程
·VI·
·VI·
3.5.2 稀疏矩阵的存储 ...................... 92
3.5.3 用稀疏矩阵求解线性方程组... 93
3.6 常微分方程的数值解........................... 95
3.6.1 欧拉法 ...................................... 96
3.6.2 龙格-库塔方法 ........................ 99
3.7 小结 .....................................................102
3.8 习题 .....................................................102
第 4 章 结构数组与细胞数组
...................104
4.1 结构数组 .............................................104
4.1.1 结构数组的创建 .....................104
4.1.2 结构数组的操作 .....................106
4.2 细胞数组 .............................................113
4.2.1 细胞数组的创建 .....................113
4.2.2 细胞数组的操作 .....................115
4.2.3 结构细胞数组 .........................123
4.3 小结 .....................................................124
4.4 习题 .....................................................124
第 5 章 MATLAB 符号运算
...........................128
5.1 符号对象及其表达方式......................128
5.1.1 符号常量和变量 .....................128
5.1.2 符号表达式 .............................130
5.1.3 符号矩阵 .................................131
5.2 符号算术运算 .....................................132
5.2.1 符号对象的加减 .....................132
5.2.2 符号对象的乘除 .....................133
5.3 独立变量与表达式化简......................134
5.3.1 表达式中的独立变量 .............134
5.3.2 表达式化简 .............................135
5.4 符号微积分运算..................................140
5.4.1 符号极限 .................................140
5.4.2 符号微分 .................................141
5.4.3 符号积分 .................................141
5.4.4 符号 Taylor 级数展开.............142
5.5 符号积分变换 .....................................144
5.5.1 傅里叶变换及其反变换..........144
5.5.2 拉普拉斯变换及其反变换......145
5.5.3 Z 变换及其反变换..................147
5.6 方程的解析解..................................... 149
5.6.1 线性方程组的解析解............. 149
5.6.2 非线性方程(组)的解析解 ...... 150
5.6.3 常微分方程(组)的解析解 ...... 152
5.7 小结 .................................................... 154
5.8 习题 .................................................... 154
第 6 章 MATLAB 程序设计
........................... 157
6.1 M 文件 ................................................ 157
6.1.1 局部变量与全局变量............. 157
6.1.2 M 文件的编辑与运行 ............ 158
6.1.3 脚本文件 ................................ 159
6.1.4 函数文件 ................................ 160
6.1.5 函数调用 ................................ 161
6.2 MATLAB的程序控制结构 ................ 164
6.2.1 循环结构 ................................ 164
6.2.2 选择结构 ................................ 169
6.2.3 程序流的控制......................... 173
6.3 数据的输入与输出............................. 173
6.3.1 键盘输入语句(input).............. 173
6.3.2 屏幕输出语句(disp) ............... 174
6.3.3 M 数据文件的存储/加载
(save / load)............................. 174
6.3.4 格式化文本文件的存储/
读取(fprintf / fscanf)............... 174
6.3.5 二进制数据文件的存储/
读取(fwrite/ fread).................. 174
6.3.6 数据文件行存储/读取
(fgetl / fgets)............................ 175
6.4 MATLAB 文件操作........................... 175
6.5 面向对象编程..................................... 177
6.5.1 面向对象程序设计的基本
方法 ........................................ 177
6.5.2 面向对象的程序设计实例..... 179
6.6 MATLAB 程序优化........................... 181
6.7 程序调试............................................. 182
6.8 小结 .................................................... 183
6.9 习题 .................................................... 183
目 录
·VII·
·VII·
第 7 章 MATLAB 数据可视化.......................185
7.1 二维图形 .............................................185
7.1.1 MATLAB 的图形窗口............186
7.1.2 基本二维图形绘制 .................187
7.1.3 其他类型的二维图 .................189
7.1.4 色彩和线型 .............................191
7.1.5 坐标轴及标注 .........................193
7.1.6 子图 .........................................194
7.2 三维图形 .............................................195
7.2.1 三维曲线图 .............................196
7.2.2 三维曲面图 .............................196
7.2.3 视角控制 .................................200
7.2.4 其他图形函数 .........................202
7.3 图像 .....................................................205
7.3.1 图像的类别和显示 .................205
7.3.2 图像的读写 .............................207
7.4 函数绘图 .............................................208
7.4.1 一元函数绘图 .........................208
7.4.2 二元函数绘图 .........................209
7.5 小结 .....................................................212
7.6 习题 .....................................................212
第 8 章 交互式仿真集成环境
SIMULINK
............................................ 214
8.1 SIMULINK 简介 ................................ 214
8.1.1 SIMULINK 特点 .................... 214
8.1.2 SIMULINK 的工作环境 ........ 215
8.1.3 SIMULINK 仿真基本步骤 .... 216
8.2 模型的创建......................................... 217
8.2.1 模型概念和文件操作............. 217
8.2.2 模块操作 ................................ 218
8.2.3 信号线操作 ............................ 221
8.2.4 对模型的注释......................... 223
8.2.5 常用的 Source 信源................ 223
8.2.6 常用的 Sink 信宿 ................... 230
8.2.7 仿真的配置 ............................ 235
8.2.8 启动仿真 ................................ 239
8.3 SIMULINK 仿真实例 ........................ 239
8.4 小结 .................................................... 245
8.5 习题 .................................................... 246
附录 MATLAB 上机实验 ............................... 247
第 1 章 MATLAB 简介
教学提示:MATLAB 是目前在国际上被广泛接受和使用的科学与工程计算软件。虽
然 Cleve Moler 教授开发它的初衷是为了更简单、更快捷地解决矩阵运算,但 MATLAB 现
在的发展已经使其成为一种集数值运算、符号运算、数据可视化、图形界面设计、程序设
计、仿真等多种功能于一体的集成软件。
教学要求:了解 MATLAB 的发展历史、特点和功能,了解 MATLAB 工具箱的概念及
类型。重点掌握 MATLAB 主界面各窗口的用途和操作方法。
1.1 MATLAB 的发展沿革
20 世纪 70 年代中后期,曾在密西根大学、斯坦福大学和新墨西哥大学担任数学与计
算机科学教授的 Cleve Moler 博士,为讲授矩阵理论和数值分析课程的需要,他和同事用
Fortran 语言编写了两个子程序库 EISPACK 和 LINPACK,这便是构思和开发 MATLAB 的
起点。MATLAB 一词是对 Matrix Laboratory(矩阵实验室)的缩写,由此可看出 MATLAB 与
矩阵计算的渊源。MATLAB 除了利用 EISPACK 和 LINPACK 两大软件包的子程序外,还
包含了用 Fortran 语言编写的、用于承担命令翻译的部分。
为进一步推动 MATLAB 的应用,在 20 世纪 80 年代初,John Little 等人将先前的
MATLAB 全部用 C 语言进行改写,形成了新一代的 MATLAB。1984 年,Cleve Moler 和
John Little 等人成立 MathWorks 公司,并于同年向市场推出了第一个 MATLAB 的商业版
本。随着市场接受度的提高,其功能也不断增强,在完成数值计算的基础上,新增了数据
可视化以及与其他流行软件的接口等功能,并开始了对 MATLAB 工具箱的研究开发。
1993 年,MathWorks 公司推出了基于 PC 的以 Windows 为操作系统平台的 MATLAB 4.0
版。1994 年推出的 4.2 版,扩充了 4.0 版的功能,尤其在图形界面设计方面提供了新的
方法。
1997 年推出的 MATLAB 5.0 版增加了更多的数据结构,如结构数组、细胞数组、多维
数组、对象、类等,使其成为一种更方便的编程语言。1999 年初推出的 MATLAB 5.3 版在
很多方面又进一步改进了 MATLAB 的功能。
2000 年 10 月底推出了全新的 MATLAB 6.0 正式版(
Release 12),在核心数值算法、界
面设计、
外部接口、应用桌面等诸多方面有了极大的改进。时隔 2 年,即 2002 年 8 月又推
出了 MATLAB 6.5 版,其操作界面进一步集成化,并开始运用 JIT 加速技术,使运算速度
有了明显提高。
2004 年 7 月,MathWorks 公司又推出了 MATLAB
7.0 版(Release l4),其中集成了
MATLAB 7.0 编译器、Simulink 6.0 图形仿真器及很多工具箱,在编程环境、代码效率、数
据可视化、文件 I/O 等方面都进行了全面的升级。