matlab程序设计与应用 张智星,matlab程式设计与应用

41528d3028836879cd698677c3999917.gifmatlab程式设计与应用

第 1 页 共 36 页MATLAB 程序设计与应用张智星1-1、基本运算与函数在 MATLAB 下进行基本数学运算,只需将表达式直接打入提示号(>>)之后,并按入Enter 键即可。例如: >>(5*2+1.3-0.8)*10/25 ans = 4.2000 MATLAB 会将运算结果直接存入一变量 ans,代表 MATLAB 运算后的答案(Answer),并显示其数值于屏幕上。(为简便起见,在下述各例中,我们不再印出 MATLAB 的提示号。) 小提示: “>>“是 MATLAB 的提示符号(Prompt),但在 PC 中文窗口系统下,由于编码方式不同,此提示符号常会消失不见,但这并不会影响到 MATLAB 的运算结果。 我们也可将上述表达式的结果设定给另一个变量 x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时 MATLAB 会直接显示 x 的值。由上例可知,MATLAB 认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示: MATLAB 将所有变量均存成 double 的形式,所以不需经过变量宣告(Variable declaration)。MATLAB 同时也会自动进行内存的使用和回收,而不必像 C 语言,必须由使用者一一指定。这些功能使的 MATLAB 易学易用,使用者可专心致力于撰写程序,而不必被软件枝节问题所干扰。 若不想让 MATLAB 每次都显示运算结果,只需在表达式最后加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2); 若要显示变量 y 的值,直接键入 y 即可: >>y 第 2 页 共 36 页y = -0.0045 在上例中,sin 是正弦函数,exp 是指数函数,这些都是 MATLAB 常用到的数学函数。下表即为 MATLAB 常用的基本数学函数及三角函数: 小整理:MATLAB 常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数 z 的相角(Phase angle) sqrt(x):开平方 real(z):复数 z 的实部 imag(z):复数 z 的虚部 conj(z):复数 z 的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数 x 化为分数表示 rats(x):将实数 x 化为多项分数展开 sign(x):符号函数 (Signum function)。 当 x0 时,sign(x)=1。 rem(x,y):求 x 除以 y 的余数 gcd(x,y):整数 x 和 y 的最大公因子 lcm(x,y):整数 x 和 y 的最小公倍数 exp(x):自然指数 pow2(x):2 的指数 log(x):以 e 为底的对数,即自然对数或 log2(x):以 2 为底的对数 log10(x):以 10 为底的对数 小整理:MATLAB 常用的三角函数 sin(x):正弦函数 cos(x):余弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反余弦函数 atan(x):反正切函数 第 3 页 共 36 页atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越余弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越余弦函数 atanh(x):反超越正切函数 变量也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Row vector)运算:x = [1 3 5 2]; y = 2*x+1 y = 3 7 11 5 小提示:变量命名的规则 1. 第一个字母必须是英文字母 2. 字母间不可留空格 3. 最多只能有 19 个字母,MATLAB 会忽略多余字母 我们可以随意更改、增加或删除向量的元素:y(3) = 2 % 更改第三个元素 y = 3 7 2 5 y(6) = 10 % 加入第六个元素 y = 3 7 2 5 0 10 y(4) = [] % 删除第四个元素, y = 3 7 2 0 10 在上例中,MATLAB 会忽略所有在百分比符号(%)之后的文字,因此百分比之后的文字均可视为程序的注解(Comments)。MATLAB 亦可取出向量的一个元素或一部份来做运算: x(2)*3+y(4) % 取出 x 的第二个元素和 y 的第四个元素来做运算 第 4 页 共 36 页ans = 9 y(2:4)-1 % 取出 y 的第二至第四个元素来做运算 ans = 6 1 -1 在上例中,2:4 代表一个由 2、3、4 组成的向量,同样的方法可用于产生公差为 1的等差数列: x = 7:16 x = 7 8 9 10 11 12 13 14 15 16 若不希望公差为 1,则可将所需公差直接至于 4 与 13 之间: x = 7:3:16 % 公差为 3 的等差数列 x = 7 10 13 16 事实上,我们可利用 linspace 来产生任意的等差数列: x = linspace(4, 10, 6) % 等差数列:首项为 4,末项为 10,项数为 6 x = 4.0000 5.2000 6.4000 7.6000 8.8000 10.0000 若对 MATLAB 函数用法有疑问,可随时使用 help 来寻求在线支持(on-line help):help linspace LINSPACE Linearly spaced vector. LINSPACE(x1, x2) generates a row vector of 100 linearly equally spaced points between x1 and x2. LINSPACE(x1, x2, N) generates N points between x1 and x2. See also LOGSPACE, :. 小整理:MATLAB 的查询命令 help:用来查询已知命令的用法。例如已知 inv 是用来计算反矩阵,键入 help inv 即可得知有关 inv 命令的用法。(键入 help help 则显示 help 的用法,请试第 5 页 共 36 页看看!) lookfor:用来寻找未知的命令。例如要寻找计算反矩阵的命令,可键入 lookfor inverse,MATLAB 即会列出所有和关键词 inverse 相关的指令。找到所需的命令后,即可用 help 进一步找出其用法。(lookfor 事实上是对所有在搜寻路径下的 M 档案进行关键词对第一注解行的比对,详见后叙。) 将列向量转置(Transpose)后,即可得到行向量(Column vector): z = x z = 4.0000 5.2000 6.4000 7.6000 8.8000 10.0000 不论是行向量或列向量,我们均可用相同的函数找出其元素个数、最大值、最小值等: length(z) % z 的元

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录第1章 MATLAB简介... 1 1.1 MATLAB概述... 1 1.2 MATLAB环境... 1 1.2.1 MATLAB安装... 1 1.2.2 MATLAB启动与退出... 4 1.3 MATLAB的开发环境... 5 1.3.1 工作界面... 5 1.3.2 命令窗口... 6 1.3.3 当前目录浏览器窗口... 8 1.3.4 工作空间浏览器窗口... 9 1.3.5 历史命令窗口... 10 1.3.6 数组编辑器窗口... 11 1.4 MATLAB帮助系统... 11 1.4.1 帮助命令... 11 1.4.2 帮助窗口... 12 1.4.3 演示系统... 13 第2章 MATLAB数值计算及应用... 15 2.1 MATLAB的数值计算基础... 15 2.1.1 数据类型... 15 2.1.2 常量和变量... 18 2.1.3 数值计算应用的示例... 19 2.2 MATLAB的数组、矩阵运算... 20 2.2.1 数组与矩阵的概念... 20 2.2.2 数组或矩阵元素的标识... 21 2.2.3 数组与矩阵的输入... 23 2.2.4 数组与矩阵的算术运算... 25 2.2.5 向量及其运算... 32 2.2.6 矩阵的特殊运算... 35 2.2.7 数组的运算... 44 2.2.8 字符串... 47 2.3 MATLAB多项式及其运算... 47 2.3.1 多项式求值... 48 2.3.2 多项式求根... 48 2.3.3 部分分式展开... 49 2.3.4 多项式乘除... 50 2.3.5 多项式的微积分... 50 2.4 插值与拟合... 51 2.4.1 一维插值问题... 51 2.4.2 二维插值问题... 52 2.4.3 曲线拟合... 56 2.5 线性方程组求解... 58 2.5.1 方程组解法... 58 2.5.2 求线性方程组的通解... 65 2.6 非线性方程与最优化问题... 67 2.6.1 非线性方程数值求解... 67 2.6.2 无约束最优化问题求解... 69 2.6.3 有约束最优化问题求解... 71 第3章 符号运算及应用... 73 3.1 MATLAB符号运算基础... 73 3.1.1 符号表达式... 73 3.1.2 符号表达式的操作及代数运算... 75 3.2 MATLAB符号微积分运算... 82 3.2.1 符号极限运算... 82 3.2.2 符号函数微分运算... 82 3.2.3 符号函数积分运算... 83 3.2.4 符号求和函数与级数展开函数... 84 3.3 复变函数运算的MATLAB实现... 86 3.3.1 复数的概念... 86 3.3.2 复变量的函数... 86 3.3.3 复数的生成及其矩阵创建... 87 3.3.4 复数的几何意义... 88 3.3.5 MATLAB在复数代数运算中的实现... 90 第4章 MATLAB程序设计技术... 93 4.1 MATLAB的控制语句... 93 4.1.1 条件控制... 93 4.1.2 循环控制... 96 4.1.3 错误控制... 98 4.2 M文件编程... 99 4.2.1 M文件的分类介绍... 99 4.2.2 函数调用和变量传递... 101 4.2.3 数据导入与导出... 107 4.2.4 示例分析... 111 4.3 函数类型... 118 4.3.1 主函数... 118 4.3.2 子函数... 119 4.3.3 私有函数... 119 4.3.4 嵌套函数... 120 4.3.5 重载函数... 124 4.4 调试程序... 124 4.4.1 调试程序介绍... 124 4.4.2 MATLAB调试菜单... 125 4.4.3 调试命令... 126 第5章 MATLAB绘图功能... 129 5.1 二维图形绘制... 129 5.1.1 绘制二维曲线的常用函数... 129 5.1.2 绘制图形的辅助操作... 132 5.1.3 绘制二维图形的其他函数... 137 5.2 三维图形绘制... 141 5.2.1 绘制三维曲线的常用函数... 141 5.2.2 三维曲面图绘制... 142 5.2.3 其他三维图形绘制... 146 5.2.4 透明度作图... 147 5.2.5 立体可视化... 148 5.3 图形颜色映像的应用... 151 5.4 光照和材质处理... 153 5.4.1 光照处理... 153 5.4.2 材质处理... 154 5.5 图像显示技术... 156 5.5.1 图像简介... 156 5.5.2 图像的读取... 157 5.5.3 图像的显示... 159 5.6 动画制作技术... 159 第6章 MATLAB在模糊控制系统中的应用... 161 6.1 模糊系统的MATLAB实现... 161 6.1.1 模糊集简介... 161 6.1.2 模糊推理系统与MATLAB应用... 166 6.1.3 模糊推理系统的MATLAB模糊工具箱的图形界面实现法... 166 6.2 MATLAB模糊逻辑工具箱命令函数及示例... 173 6.3 MATLAB模糊逻辑工具箱命令函数应用示例... 193 第7章 MATLAB在人工神经网络中的应用... 197 7.1 人工神经网络介绍... 197 7.2 感知器... 197 7.2.1 感知器原理... 198 7.2.2 感知器相关函数... 199 7.2.3 感知器的MATLAB实现... 202 7.3 线性神经网络... 203 7.3.1 线性神经网络原理... 204 7.3.2 线性神经网络相关函数... 204 7.3.3 线性神经网络的MATLAB实现... 206 7.4 BP网络... 207 7.4.1 BP网络原理... 207 7.4.2 BP网络相关函数... 208 7.4.3 BP网络的MATLAB实现... 217 7.5 径向基网络... 218 7.5.1 径向基网络原理... 218 7.5.2 径向基网络相关函数... 219 7.5.3 径向基网络应用示例... 222 7.6 回归网络... 223 7.6.1 回归网络相关函数... 223 7.6.2 回归网络的MATLAB实现... 224 第8章 MATLAB在自动控制中的应用... 227 8.1 控制系统模型... 227 8.1.1 控制系统的描述与LTI对象... 227 8.1.2 典型系统的生成... 228 8.1.3 连续系统与采样系统之间的转换... 230 8.2 控制系统的时域分析... 231 8.2.1 时域分析的一般方法... 231 8.2.2 常用时域分析函数... 234 8.2.3 时域分析应用示例... 237 8.3 根轨迹分析... 238 8.3.1 模条件和角条件... 239 8.3.2 绘制根轨迹的规则... 239 8.3.3 根轨迹的应用示例... 240 8.4 控制系统的频域分析... 243 8.4.1 幅相频率特性... 243 8.4.2 对数频率特性... 245 8.4.3 对数幅相特性... 248 8.5 系统校正... 248 8.5.1 串联超前校正... 248 8.5.2 串联滞后校正... 251 8.5.3 串联滞后—超前校正... 252 8.6 极点配置设计方法... 255 8.6.1 Gura-Bass算法... 255 8.6.2 Ackermann配置算法... 256 第9章 MATLAB在数字信号中的应用... 259 9.1 数字信号知识... 259 9.1.1 信号产生... 259 9.1.2 信号的运算... 265 9.1.3 信号的抽取与插值... 267 9.2 离散时间傅里叶变换... 269 9.2.1 离散时间傅里叶变换定义及计算... 269 9.2.2 离散时间傅里叶变换的特性... 271 9.3 数字滤波器的分析与实现... 273 9.3.1 数字滤波器知识... 273 9.3.2 数字滤波器的分析与实现... 274 9.4 IIR数字滤波器的设计法... 278 9.4.1 冲激响应不变法... 278 9.4.2 双线性变换法... 279 9.4.3 IIR数字滤波器的频率变换设计法... 279 9.5 FIR数字滤波器设计法... 283 9.5.1 窗函数设计法... 283 9.5.2 频率抽样法... 286 9.5.3 MATLAB的其他相关函数... 289 9.6 MATLAB实现功率谱估计... 292 第10章 MATLAB外部程序接口应用... 295 10.1 MATLAB数据接口... 295 10.1.1 通用文件I/O操作... 295 10.1.2 低级文件I/O操作... 296 10.1.3 MAT文件及其应用... 300 10.2 MATLAB编译器的配置... 304 10.2.1 MATLAB编译器的配置... 304 10.2.2 编译指令... 305 10.3 MATLAB引擎... 306 10.3.1 MATLAB DDE服务器与引擎库... 306 10.3.2 C语言MATLAB引擎... 307 10.3.3 Fortran语言MATLAB引擎... 310 10.4 Visual C++与MATLAB接口... 311 10.4.1 Visual C++调用MATLAB引擎... 312 10.4.2 Visual C++使用数学函数库... 312 10.4.3 Visual C++创建MAT文件... 314 10.4.4 应用COM实现Visual C++与MATLAB的接口... 316 第11章 MATLAB在其他领域的应用... 323 11.1 MATLAB在电路中的应用... 323 11.1.1 概述... 323 11.1.2 MATLAB在电路中的应用示例... 323 11.2 MATLAB在图像处理中的应用... 326 11.2.1 图像变换... 327 11.2.2 MATLAB实现图像的边缘检测... 328 11.2.3 MATLAB在遥感中实现图像直方图的匹配... 330 11.3 MATLAB在力学及工程结构中的应用... 333 11.3.1 概述... 333 11.3.2 MATLAB在力学及工程结构中的应用示例... 333 11.4 MATLAB在优化设计中的应用... 338 11.4.1 概述... 338 11.4.2 MATLAB在优化设计中的应用示例... 339 参考文献 342
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值