Kunming University of Science & TechnologyC.1 信号分析基础 -1/24
课程任务
通过本课程的学习,使学生初步掌握当前流行的演算式 MATLAB语言的基本知识,
结合所学课程,机械工程控制基础,,
学会运用 MATLAB语言进行控制系统仿真和辅助设计的基本技能,为今后从事科学研究打下较好的基础。
Kunming University of Science & TechnologyC.1 信号分析基础 -2/24
教学内容学时安排与考试形式总学时,48(其中上机学时 24)
考试方式:上机操作(考勤 20%+作业 30%+考试 50%)
第一章 MATLAB基础知识( 3)
第二章 数学模型的 MATLAB描述( 3)
第三章 控制系统的分析方法( 6)
第四章 SIMULINK仿真基础( 6)
第五章 应用案例分析 ( 6)
Kunming University of Science & TechnologyC.1 信号分析基础 -3/24
机械工程控制基础- MATLAB工程应用作者:宋志安,徐瑞银编著出版社:国防工业出版社出版时间,2008年 8月参考书目
Kunming University of Science & TechnologyC.1 信号分析基础 -4/24
参考书目
,MATLAB在自动控制中的应用,
作 者:吴晓燕 等编著出版社:
西安电子科技大学出版社出版时间,2006年 09月
Kunming University of Science & TechnologyC.1 信号分析基础 -5/24
参考书目
MATLAB/Simulink与控制系统仿真(第 2版)
作 者:王正林 等编著
出版社:电子工业出版社
出版时间,2008年 07月
Kunming University of Science & TechnologyC.1 信号分析基础 -6/24
参考书目
MATLAB 7基础教程 ——面向工程应用作者:(美)帕尔门 著黄开枝 译出 版 社,清华大学出版社出版时间,2007年 7月
Kunming University of Science & TechnologyC.1 信号分析基础 -7/24
补充知识:
仿真:以相似性原理、控制论、信息技术及相关领域的知识为基础,以计算机和各种专用物理设备为工具,借助系统模型对真实系统进行试验研究的一门综合性技术。
系统仿真:根据被研究的真实系统的数学模型对系统性能进行研究的学科。涉及相似论、控制论、计算机科学、系统工程理论、数值计算、概率论、数理统计、时间序列分析等多种学科。
相似性原理是仿真主要的理论依据。所谓相似是指各类事物或对象间存在的某些共性。采用相似性技术建立实际系统的相似模型就是仿真的本质过程。
Kunming University of Science & TechnologyC.1 信号分析基础 -8/24
补充知识:
系统仿真分类:
实物仿真(物理仿真):指研制某些实体模型,
使之能够重现原系统的各种状态。
数学仿真:用数学语言去表述一个系统,并编制程序在计算机上对实际系统进行研究的过程。
半实物仿真:又称数学物理仿真或混合仿真。为提高仿真的可信度或者针对一些难以建模的实体,
在系统研究中往往把数学模型、物理模型和实体结合起来组成一个复杂的仿真系统,这种在仿真环节中存在实体的复杂称为半实物仿真或半物理仿真。飞机半实物仿真、射频制导导弹半实物仿真;许多模拟器
Kunming University of Science & TechnologyC.1 信号分析基础 -9/24
补充知识:
仿真的作用:
仿真技术具有很高的科学研究价值和巨大的经济效益。由于仿真技术的特殊功效,特别是安全性和经济性,使仿真技术得到广泛应用。
1,优化系统设计:在实际系统建立以前,通过改变仿真模型结构和调整系统参数来优化系统设计。
2,系统故障再现,发现故障原因。实际故障的再现必然会带来某种危害性,这样做是不安全和不经济的。
3,验证系统设计的正确性。
4,对系统或其子系统进行性能评价和分析。多为物理仿真,
如飞机的疲劳试验。
5,训练系统操作员。各种模拟器,如飞行、坦克模拟器。
6,为管理决策和技术决策提供支持。
Kunming University of Science & TechnologyC.1 信号分析基础 -10/24
第一章 MATLAB 基础知识
1.1 MATLAB的发展史在 20世纪 70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用 EISPACK和 LINPACK的
FORTRAN子程序库。 EISPACK是特征值求解的 FOETRAN程序库,LINPACK是解线性方程的程序库。在当时,这两个程序库代表矩阵运算的最高水平。 到 70年代后期,身为美国
New Mexico大学计算机系系主任的 Cleve Moler,在给学生讲授线性代数课程时,想教学生使用 EISPACK和 LINPACK程序库,但他发现学生用 FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写 EISPACK和
LINPACK的接口程序。 Cleve Moler给这个接口程序取名为
MATLAB,该名为矩阵 (matrix)和实验室 (labotatory)两个英文单词的前三个字母的组合。在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。
Kunming University of Science & TechnologyC.1 信号分析基础 -11/24
1.1 MATLAB的发展史(续)
1983年春天,Cleve Moler到 Standford大学讲学,
MATLAB深深地吸引了工程师 John Little。他敏锐地觉察到 MATLAB在工程领域的广阔前景。同年,他和
Cleve Moler,Steve Bangert一起用 C语言开发了第二代专业版。这一代的 MATLAB语言同时具备了数值计算和数据图示化的功能。
1984年,Cleve Moler和 John Little成立了 MathWorks
公司,正式把 MATLAB推向市场,并继续进行
MATLAB的研究和开发。
MathWorks公司 1993年推出了具有划时代的
MATLAB 4.0版本,1995年推出 4.2C版,1997年推出
5.0版,1999年推出 5.3版及 Simulink 3.0。
Kunming University of Science & TechnologyC.1 信号分析基础 -12/24
1.1 MATLAB的发展史(续)
随后几年,MATLAB在原有基础上其功能进一步改进,不断推出新版本。目前最新的版本是 MATLAB
7.0/Simulink 6.0。
自 20世纪 90年代,在欧美大学将 MATLAB正式列入研究生和本科生的教学计划,MATLAB软件已成为应用代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等课程的基本教学工具。
在研究单位和工业界,MATLAB也成为工程师们必须掌握的一种工具,被认作进行高效研究与开发的首选软件工具。
Kunming University of Science & TechnologyC.1 信号分析基础 -13/24
1,2 MATLAB语言的主要特点
( 1)具有丰富的数学功能
包括矩阵各种运算。如:正交变换、三角分解、特征值、
常见的特殊矩阵等。
包括各种特殊函数。如:贝塞尔函数、勒让德函数、伽码函数、贝塔函数、椭圆函数等。
包括各种数学运算功能。如:数值微分、数值积分、插值、
求极值、方程求根,FFT,常微分方程的数值解等。
( 2)具有很好的图视系统
可方便地画出两维和三维图形。
图形用户界面 GUI制作工具,可以制作用户菜单和控件。
使用者可以根据自己的需求编写出满意的图形界面。
高级图形处理。如:色彩控制、句柄图形、动画等。
Kunming University of Science & TechnologyC.1 信号分析基础 -14/24
( 3)可以直接处理声音和图形文件 。
( 4)具有若干功能强大的应用工具箱。
( 5)使用方便,具有很好的扩张功能。
声音文件。如,WAV文件(例,wavread,sound等)。
图形文件。如,bmp,gif,pcx,tif,jpeg等文件。
如,SIMULINK,COMM,DSP,SIGNAL等 16种工具箱。
可以 M文件转变为独立于平台的 EXE可执行文件。
使用 MATLAB语言编写的程序可以直接运行,无需编译。
MATLAB的应用接口程序 API是 MATLAB提供的十分重要的组件,由 一系列接口指令组成 。用户就可在 FORTRAN
或 C中,把 MATLAB当作计算引擎使用 。
1,2 MATLAB语言的主要特点(续)
Kunming University of Science & TechnologyC.1 信号分析基础 -15/24
1,2 MATLAB语言的主要特点(续)
( 6)具有很好的帮助功能
提供十分详细的帮助文件( PDF,HTML,demo文件)。
联机查询指令,help指令 (例,help elfun,help exp,help
simulink),lookfor关键词(例,lookfor fourier )。
例:魔方矩阵(矩阵每一行、每一列、主对角线、
反对角线元素之和相等)
3× 3; 10× 10
Kunming University of Science & TechnologyC.1 信号分析基础 -16/24
例:魔方矩阵
Kunming University of Science & TechnologyC.1 信号分析基础 -17/24
例:三维图形
>> [x,y]=meshgrid(-2:.2:2,-2:.2:2);
>> z=x.*exp(-x.^2-y.^2);
>> mesh(z)
>> [x,y]=meshgrid(-2:.2:2,-2:.2:2);
>> z=x.*exp(-x.^2-y.^2);
>> surf (z)
Kunming University of Science & TechnologyC.1 信号分析基础 -18/24
1,3 MATLAB操作界面简介命令窗口命令历史窗口当前目录窗口
(工作空间)
Kunming University of Science & TechnologyC.1 信号分析基础 -19/24
1,3 MATLAB操作界面简介(续)
工作空间
Kunming University of Science & TechnologyC.1 信号分析基础 -20/24
1,3 MATLAB操作界面简介(续)
M文件编辑器 /调试器
Kunming University of Science & TechnologyC.1 信号分析基础 -21/24
1,4 MATLAB运行方式
命令方式在命令窗口中输入命令行来实现计算或绘图功能。
M文件方式
M文件:包含 MATLAB语言代码的文件,扩展名为,m,是普通的文本文件,可以用各种文本编辑器编辑书写。
打开 M文件选择菜单,Debug/run”
Kunming University of Science & TechnologyC.1 信号分析基础 -22/24
矩阵生成不但可以使用纯数字(含复数),也可以使用变量(或者说采用一个表达式)。矩阵的元素直接排列在方括号内,行与行之间用分号隔开,每行内的元素使用空格或逗号隔开。大的矩阵可以用分行输入,回车键代表分号。
,y=[2,4,5
3 6 8]
y=
2 4 5
3 6 8
一、矩阵的输入
,a=1; b=2; c=3;
,x=[5 b c; a*b a+c c/b]
x=
5.000 2.000 3.000
2.000 4.000 1.500
1、在命令窗口中输入
Kunming University of Science & TechnologyC.1 信号分析基础 -23/24
1,5 MATLAB的计算功能
( 1) MATLAB的数据类型
现有四种基本数据类型:双精度数组、字符串数组、元胞数组、构架数组。
元胞数组( Cell Array) 如同银行里的保险箱库一样。
该数组的基本组分是元胞( Cell),以下标来区分。
元胞可以存放任何类型、任何大小的数组。
构架数组( Structure Array) 也能存放各类数据。
该数组的基本组分是构架( Structure ),以下标来区分。
构架必须在划分“域”后才能使用。
数据不能存放于构架,只能存放在域中。
构架的域可以存放任何类型、任何大小的数组。
不同构架的同名域中存放的内容可不同。( 例 1-5-2 )
同一个元胞数组中各元胞的内容可以不同。( 例 1-5-1)
Kunming University of Science & TechnologyC.1 信号分析基础 -24/24
( 2) MATLAB的基本数值计算功能
基本计算功能,MATLAB有强大的函数库。(常用的基本函数库和常用的三角函数库等)
矩阵运算 及 数组运算。
矩阵运算 符,+ 加法,- 减法,* 乘法,^ 幂,\ 左除,
/ 右除,‘ 转置。
数组运算 符,.+ 加法,.- 减法,.* 乘法,.^ 幂,.\
左除,./ 右除,.‘ 共轭。
数组 函数和 矩阵 函数 。
例 1_5_3,已知 的采样数据是 维数组。
要计算 。对一般的计算语言来说,必须采用两层循环才能得到结果。 MATLAB处理这类问题则简洁快捷得多,它只需直截了当的一条指令 y = exp(-2*t).*sin(5*t),
就可获得同样是 维的 数组。
)( mn?t
)5s in (2 tey t
)( mn? y
Kunming University of Science & TechnologyC.1 信号分析基础 -25/24
( 3) MATLAB的高级数值计算功能
关系运算 和 逻辑运算。
多项式:多项式的求根、分解,求导数以及多项式的拟合 。
数据分析 函数:对 数据集合进行统计分析。例如,求最大值、最小值、平均值、标准偏差,相关系数等。
数 值 分析 函数,求函数极值、函数零点和极点,数 值积 分,
数 值微 分,微 分方程 的 数 值解等。
例 1_5_4,在 付立叶变换( Fourier),Z 变换 和拉氏 变换( Laplace) 中,常有两个多项式之比,MATLAB中提供函数 residue 执行部分分式展开。
Kunming University of Science & TechnologyC.1 信号分析基础 -26/24
( 3) MATLAB的符号计算
符号表达式和符号 矩阵。
符号 矩阵 的基本 运算。
符号计算的两大特点,符号解和任意精度解。
MATLAB的符号计算借助符号工具箱( Symbolic) 实现 。
定义基本符号对象的指令有两个,sym,syms。
符号表达式,。 ))'c o s (*)s in (*2(' xxs y my?
符号 矩阵:
)]'2^),e x p (,1);/()(),s i n (),/(1[(' xxxaxbxxas y mm s y
两个符号 矩阵 的和,symadd( A,B)
两个符号 矩阵 的差,symsub( A,B)
两个符号 矩阵 的积,symmul( A,B)
两个符号 矩阵 的除,symdiv( A,B)
符号 矩阵 的求逆,inverse( B)
Kunming University of Science & TechnologyC.1 信号分析基础 -27/24
( 3) MATLAB的符号计算( 续)
符号微积 分。
符号积 分变换。
符号代 数方程 的求解。
符号微 分方程 的求解,[y1,y2,…]=dsolve ( a1,a2,…,a12)
符号表达式的微 分,diff( f)
符号表达式的积 分,int( f)
线性 方程组 的符号解,X=linsolve( A,B)( 特解 )
一般代 数方程 的解,solve( S)
[X,Z]=linsolve( A,B)( 通解 )
例 1_5_5:
验证 sinφ1cos φ2 + cosφ1 sinφ=sin(φ1 + φ2)
Kunming University of Science & TechnologyC.1 信号分析基础 -28/24
1,6 MATLAB中的计算结果可视化
( 1)二维曲线图形和三维曲面图形
二维曲线图形。
三维曲面图形。
基本绘图指令,PLOT( Y),PLOT( X,Y)
例 1_6_1,混合式图形的绘制( 矩阵对向量 的图形) 。
一个窗口多个图形的绘制,SUBPLOT( M,N,P)
例 1_6_2,一个窗口多个图形的绘制 。
三维线性图形。
例 1_6_3,绘制一个三维螺旋线 。
三维曲面图形。
例 1_6_4,绘制一个三维曲面图形 。
Kunming University of Science & TechnologyC.1 信号分析基础 -29/24
( 1)二维曲线图形和三维曲面图形( 续 1)
特殊二维图形指令:
填充的函数折(曲)线图(面域图),area
直方图,bar
垂直的直方图,barh
三维直方图,bar3
垂直的三维直方图,bar3h
慧星轨迹状的图形,comet
误差棒图,errorbar
符号函数二维曲线,ezplot
沿 X轴分布的复数向量图(羽毛图),feather
射线图,compass
平面多边形填色,fill
Kunming University of Science & TechnologyC.1 信号分析基础 -30/24
( 1)二维曲线图形和三维曲面图形( 续 2)
特殊二维图形指令:
数值 函数二维曲线(泛函绘图指令),fplot
向量的统计直方图,hist
带有标准的直方图,pareto
饼图,pie
三维饼图,pie3
矩阵 折(曲)线图,plotmatrix
带状图,ribbon
散点图(与相似,但是只有数据点),scatter
火柴杆图,stem
阶梯图,stairs
Kunming University of Science & TechnologyC.1 信号分析基础 -31/24
( 1)二维曲线图形和三维曲面图形( 续 3)
交互式图形指令:
这是与鼠标有关的图形操作指令:
ginput,gtext,legend,zoom 。
除 ginput 只能用于二维图形外,其余三个指令对二维、三维图形均适用 。
指令 ginput 与 zoom 经常配合使用,以便从图形获得较准确的数据 。
指令 [x,y] = ginput( n) 用鼠标从二维图形上获得 n 个点的数据坐标( x,y)。
指令 gtext ( arg) 用鼠标把字符串或字符串元胞数组 arg
放置到图形上 。
指令 legend ( arg,pos) 在指定位置建立图例 。
指令 zoom 是变焦操作(图形放大和缩小) 。
Kunming University of Science & TechnologyC.1 信号分析基础 -32/24
一,MATLBA程序的基本设计原则
1、%后面的内容是程序的注解,要善于运用注解使程序更具可读性。
2、养成在主程序开头用 clear指令清除变量的习惯,以消除工作空间中其他变量对程序运行的影响。但注意在子程序中不要用 clear。
3、参数值要集中放在程序的开始部分,以便维护。要充分利用 MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。
4,input指令可以用来输入一些临时的数据;而对于大量参数,则通过建立一个存储参数的子程序,在主程序中用子程序的名称来调用。
5、程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。
6、充分利用 Debugger来进行程序的调试(设置断点、单步执行、连续执行),并利用其他工具箱或图形用户界面( GUI)的设计技巧,将设计结果集成到一起。
7、设置好 MATLAB的工作路径,以便程序运行。
1.7 MATLAB程序设计入门
Kunming University of Science & TechnologyC.1 信号分析基础 -33/24
8,MATLAB程序的基本组成结构
%说明清除命令:清除 workspace中的变量和图形( clear,close)
定义变量:包括全局变量的声明及参数值的设定逐行执行命令:指 MATLAB提供的运算指令或工具箱
… … … 提供的专用命令控制循环,包含 for,if then,switch,while等语句逐行执行命令
… … …
end
绘图命令:将运算结果绘制出来
当然更复杂程序还需要调用子程序,或与 simulink以及其他应用程序结合起来。
Kunming University of Science & TechnologyC.1 信号分析基础 -34/24
进入 MATLAB的 Editor/Debugger窗口来编辑程序
在编辑环境中,文字的不同颜色显示表明文字的不同属性。
绿色:注解;黑色:程序主体;红色:属性值的设定;蓝色:控制流程。
在运行程序之前,必须设置好 MATLAB的工作路径,使得所要运行的程序及运行程序所需要的其他文件处在当前目录之下,只有这样,才可以使程序得以正常运行。否则可能导致无法读取某些系统文件或数据,从而程序无法执行。
通过 cd指令在命令窗口中可以更改、显示当前工作路径。
通过路径浏览器( path browser)也可以进行设置二,M文件的编辑及 MATLAB工作路径的设置
Kunming University of Science & TechnologyC.1 信号分析基础 -35/24
2、程序文件
以,m格式进行存取,包含一连串的 MATLAB指令和必要的注解。需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,
也不会返回参数。
程序运行时只需在工作空间中键入其名称即可。
三,MATLAB的程序类型
MATLAB的程序类型有三种,一种是在命令窗口下执行的脚本 M文件;另外一种是可以存取的 M文件,也即程序文件;最后一种是函数( function)文件。
1、脚本 M文件在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出 MATLAB后就释放了。
Kunming University of Science & TechnologyC.1 信号分析基础 -36/24
( 1)函数定义行(关键字 function)
function[out1,out2,..]=filename(in1,in2,..)
输入和输出(返回)的参数个数分别由 nargin和 nargout两个 MATLAB
保留的变量来给出。
( 2)第一行帮助行,即 H1行
以( %)开头,作为 lookfor指令搜索的行
( 3)函数体说明及有关注解
以( %)开头,用以说明函数的作用及有关内容
如果不希望显示某段信息,可在它的前面加空行
( 4)函数体语句
函数体内使用的除返回和输入变量这些在 function语句中直接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会自动在 MATLAB的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。
3、函数文件
与在命令窗口中输入命令一样,函数接受输入参数,然后执行并输出结果。用 help命令可以显示它的注释说明。
具有标准的基本结构。
Kunming University of Science & TechnologyC.1 信号分析基础 -37/24
1、子程序与主程序之间的数据是通过参数进行传递的,
子程序应用主程序传递来的参数进行计算后,将结果返回主程序四、声明子程序(函数程序)变量
2,如果一个函数内的变量没有特别声明,那么这个变量只在函数内部使用,即为局部变量。如果两个或多个函数共用一个变量(或者说在子程序中也要用到主程序中的变量,注意不是参数),那么可以用 global来将它声明为全局变量。
全局变量的使用可以减少参数传递,合理利用全局变量可以提高程序执行的效率。
Kunming University of Science & TechnologyC.1 信号分析基础 -38/24
字符串要用单引号并用括号括在里面。如:
,disp(‘text string’) % disp字符串显示命令
text string
五、字符串及其宏命令
在单引号里边的字符串可以作为矢量或矩阵的元素。使用
disp命令或输入变量名就可以显示它们表示的字符串。如:
,a=['this is a';'text string']
All rows in the bracketed expression must have the
same number of columns.(元素 1含 9个字符,包括空格;元素 2含有 11个字符;因此只要在元素 1中加入 2个空格即可解决问题)
,aa=['this is a ';'text string'],disp(aa)
aa = aa=
this is a this is a
text string text string
Kunming University of Science & TechnologyC.1 信号分析基础 -39/24
宏是 MATLAB语言用在常用命令部分的缩写。它可以被存储用于建立 M文件的一部分。宏命令采用字符串,并使用 eval命令去执行宏命令。下例是采用宏命令计算阶乘的例子。
,fct=‘prod(1:n)’; %求 10的阶乘
,n=10;eval(fct)
ans=3628800
六、常用的编程命令
pause:停止 m文件的执行直至有键按下。 pause(n)将使程序暂停 n秒。
echo on/off:控制是否在屏幕上显示程序内容。
keyboard:停止程序执行,把控制权交给键盘。输入
return并回车后继续程序执行。
x=input(‘prompt’):把输入的字符串作为提示符,等待使用者输入一个响应,然后把它赋值到 x。
Kunming University of Science & TechnologyC.1 信号分析基础 -40/24
MATLAB的运算符有三种类型:算术运算符、关系运算符、
逻辑运算符。它们的处理顺序依次为算术运算符、关系运算符、逻辑运算符。在前面我们已经介绍例算术运算符,这里我们着重介绍后两种运算符。
七、关系与逻辑运算符
1、关系运算符假设有,A=[1 2 -1 -5] B=[0 2 3 1]
< 小于 A<B ans=[0 0 1 1] A<1 ans=[0 0 1 1]
> 大于 A>B ans=[1 0 0 0] A>1 ans=[0 1 0 0]
<= 小于等于 A<=B ans=[0 1 1 1]
>= 大于等于 A>=B ans=[1 1 0 0]
== 等于 A=B ans=[0 1 0 0] ; A=1 ans=[1 0 0 0]
~= 不等于 A~=B ans=[1 0 1 1] ; A~=1 ans=[0 1 1 1]
Kunming University of Science & TechnologyC.1 信号分析基础 -41/24
~ 非
~A=[0 0 1 0] ~1=0
2、逻辑运算符注意:在处理逻辑运算时,运算元只有两个值即 0和 1,所以如果指定的数为 0,MATLAB认为其为 0,而任何数不等于 0,则认为是 1。
设有,A=[5 -4 0 -0.5] B=[0 1 0 9]
& 与
A&B=[0 1 0 1] A&1=[1 1 0 1]
| 或
A|B=[1 1 0 1] A|1=[1 1 1 1]
Kunming University of Science & TechnologyC.1 信号分析基础 -42/24
步长缺省值为 1,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套使用。
书写格式不必太过于拘泥,在 Editor编辑器中会自动进行处理 。
八、程序流程控制
1,for循环语句基本格式
for 循环变量=起始值:步长:终止值循环体
end
Kunming University of Science & TechnologyC.1 信号分析基础 -43/24
2,while循环语句基本格式
while 表达式循环体
end
若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。
While循环和 for循环的区别在于,while循环结构的循环体被执行的次数不是确定的,而 for结构中循环体的执行次数是确定的。
Kunming University of Science & TechnologyC.1 信号分析基础 -44/24
( 1) if 逻辑表达式执行语句
end
当逻辑表达式的值为真时,执行该结构中的执行语句,执行完之后继续向下进行;若为假,则跳过结构中的内容,向下执行。
( 2) if 逻辑表达式 ( 3) if 逻辑表达式 1
执行语句 1 执行语句 1
else elseif 逻辑表达式 2
执行语句 2 执行语句 2
end …
end
if-else的执行方式为:如果逻辑表达式的值为真,则执行语句 1,然后跳过语句 2,向下执行;如果为假,则执行语句 2,然后向下执行。
if-elseif的执行方式为:如果逻辑表达式 1的值为真,则执行语句 1;如果为假,则判断逻辑表达式 2,如果为真,则执行语句 2,否则向下执行。
3,if,else,elseif语句
Kunming University of Science & TechnologyC.1 信号分析基础 -45/24
4,switch语句格式,switch 表达式(%可以是标量或字符串)
case 值 1
语句 1
case 值 2
语句 2
….
otherwise
语句 3
end
执行方式:表达式的值和哪种情况 (case)的值相同,
就执行哪种情况中的语句,如果不同,则执行 otherwise中的语句。格式中也可以不包括
otherwise,这时如果表达式的值与列出的各种情况都不相同,则继续向下执行。
Kunming University of Science & TechnologyC.1 信号分析基础 -46/24
本章所要掌握的是 MATLAB语言的基本知识,包括
MATLAB窗口环境的使用;矩阵运算及多项式处理;基本的绘图命令;程序设计入门。
MATLAB的窗口环境是基础的基础,要求熟练掌握语句命令的输入、变量的使用、基本的数学函数及各种工作空间与文件管理的命令。要善于运用 help命令自学。
MATLAB具有强大的矩阵运算能力,要求熟练掌握矩阵的输入与生成,掌握矩阵的基本运算及操作,区分带点运算与不带点运算点的不同;掌握多项式的建立与表示方法及多项式的基本运算。
MATLAB同样具有强大的图形处理能力,要求熟练掌握基本的二维绘图命令。
MATLAB具有三种基本的 M文件类型,要求掌握它们的区别及基本结构,熟悉程序流程控制的使用及常用的编程命令。
本章总结
Kunming University of Science & TechnologyC.1 信号分析基础 -47/24
例 1_5_1 元胞数组本例演示:元胞数组的创建 。
C_str=char(‘清华大学’,‘电子工程系’ ); %产生字符串
R=reshape(1:9,3,3); %产生( 3X3) 实数阵 R
Cn=[1+2i]; %产生复数标量
S_sym=sym('sin(-3*t)*exp(-t)'); %产生符号函数量
( 1)直接创建法之一:“外标识元胞元素赋值法”
( 2)直接创建法之二:“编址元胞元素内涵的直接赋值法”
A(1,1)={C_str};A(1,2)={R};
A(2,1)={Cn};A(2,2)={S_sym};
A %显示元胞数组类型
B{1,1}=C_str;B{1,2}=R;B{2,1}=Cn;B{2,2}=S_sym;
celldisp(B) %显示元胞数组内容返回
Kunming University of Science & TechnologyC.1 信号分析基础 -48/24
例 1_5_2 构架数组 返回本例通过温室数据(包括温室名、容积、温度、湿度等)演示:单构架
green_house的创建和显示。 (它有三个域,name,volume,parameter。 而
parameter又有二个子域,temperature,humidity。 )
( 1)直接对域赋值法产生“单构架”,即构架数组。
green_house.name=‘一号房’;
%构架的域由(构架名),(域名)标识。
green_house.volume='2000立方米 ';
green_house.parameter.temperature
=[31.2 30.4 31.6 28.7
29.7 31.1 30.9 29.6];
green_house.parameter.humidity
=[62.1 59.5 57.7 61.5
62.0 61.9 59.2 57.5];
( 2)显示“单构架”结构和内容,green_house,。。。
Kunming University of Science & TechnologyC.1 信号分析基础 -49/24
例 1_5_3 数组运算 举例 返回
t=rand(10,10);
y=exp(-2*t).*sin(5*t);
Kunming University of Science & TechnologyC.1 信号分析基础 -50/24
例 1_5_4 多项式部分分式展开 返回
num=10*[1 4 5 6 7]; %分子 多项式
den=poly( [-2; -1; -0.5]); %分母 多项式
[res,poles,k]=residue( num,den)
res =
-6.6667
-60.0000
64.1667
poles =
-2.0000
-1.0000
-0.5000
k =
10 5
上面的结果说明了这个问题,

5105.0
1667.64
1
0000.60
2
6667.6
5.012
765410 234




s
ssssss
ssss
Kunming University of Science & TechnologyC.1 信号分析基础 -51/24
例 1_5_5 符号运算 返回验证 sinφ1cos φ2+ cosφ1 sinφ=sin(φ1 +φ2)
Kunming University of Science & TechnologyC.1 信号分析基础 -52/24
例 1_6_1:混合式图形的绘制 返回
%===================
y=1:length(peaks);
plot(peaks,y);
%===================
混合式图形的绘制( 矩阵对向量 的图形) 。
Kunming University of Science & TechnologyC.1 信号分析基础 -53/24
例 1_6_2:一个窗口多个图形的绘制 返回
%====================================
subplot(2,2,1),fplot('humps',[0 1])
subplot(2,2,2),fplot('abs(exp(-
j*x*(0:9))*ones(10,1))',[0 2*pi])
subplot(2,2,3),fplot('[tan(x),sin(x),
cos(x)]',2*pi*[-1 1 -1 1])
subplot(2,2,4),fplot('sin(1./x)',[0.0
1 0.1],1e-3)
%====================================
将图形窗口分为四个区域,在每个区域中,采用横坐标自适应取点绘图绘制图形。
Kunming University of Science & TechnologyC.1 信号分析基础 -54/24
例 1_6_3:绘制一个三维螺旋线 返回
%=====================================
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
title('Helix'),xlabel('sin(t)'),ylabel
('cos(t)'),zlabel('t')
text(0,0,0,'Origin')
grid
%=====================================
plot3可用来画一个单变量的三维 函数 。
Kunming University of Science & TechnologyC.1 信号分析基础 -55/24
例 1_6_4:绘制一个三维曲面图形 返回
%========================
x=-8:0.5:8;
y=x;
[X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps;
z=sin(R)./R;
mesh(z)
%========================
pause
subplot(2,2,1);meshc(z) %Create mesh plot with contour plot
subplot(2,2,2);meshz(z) %Create mesh plot with curtain plot
%========================
Kunming University of Science & TechnologyC.1 信号分析基础 -56/24
直方图,返回
%===========================================
x=-2:2;
Y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5];
clf,shg
subplot(1,2,1),bar(x',Y','stacked')
xlabel('x'),ylabel('\Sigma y'),colormap(cool)
legend('因素 A','因素 B','因素 C')
subplot(1,2,2),barh(x',Y','grouped')
xlabel('y'),ylabel('x')
%===========================================
Kunming University of Science & TechnologyC.1 信号分析基础 -57/24
三维直方图 返回
%==================================================
clf;shg
x=-2:2;
Y=[3,5,2,4,1;3,4,5,2,1;5,4,3,2,5];
subplot(1,2,1),bar3(x',Y',1)
xlabel('因素 ABC'),ylabel('x'),zlabel('y')
colormap(summer)
subplot(1,2,2),bar3h(x',Y','grouped')
ylabel('y'),zlabel('x')
%==================================================
Kunming University of Science & TechnologyC.1 信号分析基础 -58/24
数值 函数二维曲线(泛函绘图指令),返回
%====================================================
%clf,shg
[x,y]=fplot('cos(tan(pi*x))',[-0.4,1.4],0,2e-
3);n=length(x);
subplot(1,2,1),plot(x,y)
title('\fontsize{20}\fontname{隶书 }泛函绘图指令效果 ')
t=(-0.4:1.8/n:1.4)';
subplot(1,2,2),plot(t,cos(tan(pi*t)))
title('\fontsize{20}\fontname{隶书 }等分采样绘图 ')
%===================================================
该指令的特点在于它的绘图数据点是自适应产生的。
Kunming University of Science & TechnologyC.1 信号分析基础 -59/24
基本计算功能 返回
常用 的 基本数学 函数,
常用 的 三角 函数,
abs(x),angle(z),sqrt(x),real(z),imag(z),conj(z),
round(x),fix(x),floor(x),ceil(x),rat(x),rats(x),
sign(x),rem(x,y),gcd(x,y),lcm(x,y),exp(x),
pow2(x),log(x),log2(x),log10(x)。
sin(x),cos(x),tan(x),asin(x),acos(x),atan(x),
atan2(x,y),sinh(x),cosh(x),tanh(x),asinh(x),
acosh(x),atanh(x) 。
Kunming University of Science & TechnologyC.1 信号分析基础 -60/24
数组 函数和 矩阵 函数 返回
数组 函数:
基本 矩阵 函数:
矩阵分解 函数:
besselj(NU,Z),bessely(NU,Z),beta(Z,W),erf(X),
gamma(X),rat(X,tol),erfinv(Y),ellipke(M,tol),
ellipj(U,M) 。
cond(A),det(A),dot(A,B),eig(A),norm(A,1),norm(A,
2),norm(A,inf),norm(A,’fro’),rank(A),rcond(A),
svd(A),trace(A),expm(A),expm1(A),expm2(A),
expm3(A),logm(A),sqrtm(A),funm(A,’fun’)
cdf2rdf(V,D),chol(A),eig(A),Hess(A),null(A),
LU(A),orth(A),pinv(A),qr(A),qz(A),rref(A),
rst2csf(V,D),schur(A),subspace(A,B),svd(A) 。
Kunming University of Science & TechnologyC.1 信号分析基础 -61/24
关系运算 和 逻辑运算 返回
关系运算:
逻辑运算:
<,<=,>,>=,==,~= 。
&,|,~ 。
Kunming University of Science & TechnologyC.1 信号分析基础 -62/24
第一章 上机作业( 1)
1、任意构建一个 3× 3元胞数组,元胞有字符串数组和 4× 2实数矩阵。
2、学号后 9位构建 3× 3矩阵 A,
B=[1,2,3; 4,5,6; 7,8,9],
求 C=A× B,D=A/B,E=A^2
求 A矩阵的转置; A矩阵的逆矩阵; A矩阵的行列式
3、求矩阵 B=[1,2,0 ; 2,5,-1 ; 4,10,-1]
的特征值向量、特征向量矩阵和特征值矩阵。
Kunming University of Science & TechnologyC.1 信号分析基础 -63/24
第一章 上机作业( 2)
4、已知 C(s)=[2(s+4)]/[s(s^2+5s+6)],将其展开为部分分式。
5、求方程 x^5+2x^4+24x^3+48x^2-25x-
50=0的根。
6、求 A=[a,b;c,d] 的行列式值、逆矩阵、特征值
7、在同一个窗口中绘制
sin(t),cos(t),tan(t),sin(t)cos(t)曲线
8、上机绘制例 1-6-1,1-6-2,1-6-3,1-6-4
Kunming University of Science & TechnologyC.1 信号分析基础 -64/24
谢谢
School of Michanical & Electronical Engineering,Kunming University of Science & Technology