信号与系统MATLAB基本语法_第1页
信号与系统MATLAB基本语法_第2页
信号与系统MATLAB基本语法_第3页
信号与系统MATLAB基本语法_第4页
信号与系统MATLAB基本语法_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 基本语法基本语法n2.1 2.1 变量及其赋值变量及其赋值n2.2 2.2 矩阵的初等运算矩阵的初等运算 n2.3 2.3 元素群运算元素群运算 n2.4 2.4 逻辑判断与流程控制逻辑判断与流程控制n2.5 2.5 基本绘图方法基本绘图方法n2.6 M2.6 M文件及程序调试文件及程序调试2.1 变量及其赋值n(1) 变量与常量n(2) 数字变量的运算与显示格式n(3) 字符串n(4) 矩阵及其元素的赋值n(5) 复数n(6) 变量检查n(7) 基本赋值矩阵1、变量与常量n标识符:标识符是标志变量名、常量名、函数名和文件名的字符串的总称。nMATLAB中的中的标识符最长允许19

2、个字符 ,合法字符是52个英文字母(大小写看成不同字符)、10个数字和下划线。n第一个字符必须是英文字母.常见的常量 常 量 表 示 数 值 pi圆周率 eps浮点运算的相对精度 inf正无穷大 NaN表示不定值 realmax最大的浮点数 i, j虚数单位2、数字变量的运算与显示格式n对于简单的数字运算,如计算2和3的乘积再加1时,可以直接在命令窗口输入: 1+2*3 ans= 7n也可以输入: a=1+2*3 a= 7MATLAB中的数中的数nMATLAB中的实数只有一种数据格式,那就是双精度(即64位二进制或8 8个字节个字节),它的有效值是十进制16位,动态范围是10的308次幂。 2

3、.225110 3081.797710+308 n 数的存储和运算全按同一格式进行,使编程简单,减少差错,改善人机交互,付出代价是内存空间和运行速度,形成MATLAB的一大特色。数的八种显示格式MATLAB 命令显 示 形 式说 明 format long3.1415926535897916位十进制数 format short e3.1416e+0005位十进制数加指数 format long e 3.14159265358979e+016位十进制加指数 format hox400921fb54442d1816位十六进制数 format bank3.14两位小数 format + + 正、负或

4、零 format rat 355 / 113 有理数分数近似format short (默认) 3.1416二位整数, 四位小数 3、字符串nMATLAB中所有的字符串都用单引号进行输入或赋值,字符串的每个字符(包括空格)都是字符数组的一个元素。例如: s=matrix laboratory; s= n matrix laboratory4 4、矩阵及其元素的赋值、矩阵及其元素的赋值 n格式1:变量表达式(或常量) n格式2:表达式表达式中的运算符有:加(+)、减(-) 、乘(*) 、左除() 、右除(/) 、指数() 、共軛转置()、矩阵()等。表达式的结尾标点:若为分号;,不显示结果;若为

5、逗号,或直接回车,显示运算结果。5、复数、复数n虚数符号MATLAB启动时定为i,j,可以不用乘号,连写在数字后面。n如果用户在程序中另外給i,j赋值,则它们的虚数意义就失效。n conj(x)表示共軛,即把x的虚部反号。n 是共軛转置运算符,对实矩阵把行号与列号交换,对复矩阵除行列交换外,还要把矩阵元素取共軛。6 6、变量检查、变量检查n变量检查命令who,whosn打开工作空间视窗n在检查中不显示内部变量eps,realmax,realmin,pii,j,inf,NaN7、特殊矩阵赋值函数zeros(n,m)全零矩阵(nm阶)ones(n,m)全1矩阵(nm阶)rand(n,m)随机数矩阵

6、(nm阶)randn (n,m)正态随机数矩阵(nm阶)eye(n)单位矩阵( nn方阵)linspace(xs,xf,N)均分向量(1N阶数组) 2.2 2.2 矩阵的初等运算矩阵的初等运算 n(1)矩阵数值的表示方法;n(2)矩阵的加减乘法;n(3)矩阵的除法和线性方程 解;n(4)矩阵的乘方和幂次函数;矩阵的加减法矩阵的加减法n两矩阵进行加减的条件是其行数和列数相同,简称阶次相同,矩阵的加减即其对应元素的加减。size(A)=size(B)如果其中一个变量是标量,则会自动扩展成各元素均取此标量值的同阶次矩阵。矩阵的乘法矩阵的乘法c(i,j)=a(i,1)*b(1,j) + a(i,2)*

7、b(2,j) + + a(i,p)*b(p,j) = pa(i,k)*b(k,j)(1,1)(1, )(1,1)(1, )(1, )(1,1)(1, )(2, )(, )(,1) (,2)(, ) *( ,1)( , )( ,1)( , )( , )( ,1)( , )aapbbjb mcc mbjci jaiaiai pc nc n mb pb p jb p ma na n p 矩阵的乘法矩阵的乘法n两矩阵相乘两矩阵相乘C=A*B的条件是的条件是A的列数等的列数等于于B的行数,简称内阶数相同。设的行数,简称内阶数相同。设矩阵矩阵A 为为np阶,矩阵阶,矩阵B为为pm阶,则阶,则C是是nm阶。

8、阶。内阶数不同的矩阵不能相乘。内阶数不同的矩阵不能相乘。n不符合交换律:不符合交换律:A*BB*A,左乘不等,左乘不等于右乘;于右乘;n若一个变量是标量,则按标量乘法。若一个变量是标量,则按标量乘法。矩阵除法线性方程组线性方程组D D* *X=BX=B,如果,如果D D非奇异,非奇异,即它的逆矩阵即它的逆矩阵inv(D)inv(D)存在;存在;则其解用则其解用MATLABMATLAB表为表为 : X=inv(D)X=inv(D)* *B=DBB=DB符号符号称为左除,即分母放在左称为左除,即分母放在左边。边。左除的条件:左除的条件:B B的行数等于的行数等于D D的阶数的阶数(D(D的行数和列

9、数相同,简称阶数)的行数和列数相同,简称阶数)矩阵右除若方程组表为为若方程组表为为X X* *D1=B1D1=B1,D1D1非奇异,非奇异,即它的逆阵即它的逆阵inv(D1)inv(D1)存在。存在。则其解为则其解为X=B1X=B1* *inv(D1)=B1/D1inv(D1)=B1/D1符号符号/称为右除。称为右除。右除的条件:右除的条件:B1B1的列数等于的列数等于D D的阶数的阶数(D(D的行数和列数相同,简称阶数)的行数和列数相同,简称阶数)线性方程组表为矩阵相乘 x1 + 2 x2 + 3 x3 = 23 x1- 5 x2 + 4 x3 = 07 x1 + 8 x2 + 9 x3 =

10、 2可以表为可以表为故有故有 X=x1;x2;x3=Ab1231 2 32*35 407 8 92xA Xxbx 用矩阵除法解线性方程组解方程组 6 x1 + 3 x2 + 4 x3 = 3 -2 x1 + 5 x2 + 7 x3 = -4 8 x1 - 4 x2 - 3 x3 = -7的程序为: A = 6,3,4; -2,5,7; 8,-4,-3; B = 3;-4;-7; X = AB矩阵整体的幂次运算nMATLAB的乘幂函数”、指数函数expm、对数函数logm、和开方函数sqrtm是对矩阵进行的,另外,还有矩阵乘法和除法也是把矩阵作为一个整体来运算。n除此之外,其他MATLAB函数都

11、是对矩阵中的元素分别进行的。 2.3 2.3 元素群运算元素群运算 n 数组及其赋值n 元素群的四则运算n 元素群的幂次运算n 元素群的函数元素群运算能大大简化编程,提高运算的效率,是MATLAB优于其他许多语言的一个特色。 1、数组及其赋值、数组及其赋值n数组通常是指单行或单列的矩阵,也称为向量。n其赋值方法:n(1) x=初值:增量:终值n(2) 线性分割函数 x=linspace(起点,终点,点数)2、元素群的四则和幂次运算、元素群的四则和幂次运算n元素群运算:就是把两矩阵按逐个元素进行运算。为了与矩阵作为整体的运算符号相区别,要在运算符“*、”前加一点符号“” 。元素群运算的英文原文是

12、数组运算 (Array Algorithm),实际上它适用于任何阶的矩阵,故取名元素群运算更为确切。3、元素群的函数运算、元素群的函数运算n所有的MATLAB函数都适用于作元素群运算,只有专门说明的几个除外。就是*、/、 运算符和sqrtm、expm、logm三个函数。n实例,做一个三角函数表:x=0:0.1:pi/4;x,sin(x),cos(x),tan(x)常见做元素群运算的函数见书上表22.4 逻辑判断及流程控制n关系运算n逻辑运算n流程控制语句关系运算n所谓关系运算是指两个元素之间数值的比较,一共有如下所示的6种可能 n关系运算的结果只有两种可能,即0或1。0表示该关系式为“假,即它

13、不成立;1表示该关系式为“真”,即该关系式是正确的。 例如,键入关系式: a2+2=4 得 a=1关系运算nMATLAB的关系运算也都适用于矩阵,它是对矩阵的各个元素进行元素群运算,因此两个相比较的矩阵必须有相同的阶数,输出的结果也是同阶矩阵。例如键入 A=magic(6)n要找到A阵中所有被3整除的元素,并在其位置上标以1。可以用rem函数来完成,rem(A,3)表示A除以3的余数,余数为零就是整除。可以键入 p=(rem(A,3)=0)逻辑运算n逻辑量只能取0 (假) 和1真) 两个值。n逻辑量的基本运算为与(&)、或(| )和非()三种。有时也包括异或(xor),不过异或可以由三

14、种基本运算组合而成。n两个逻辑量经此逻辑运算后的输出仍然是逻辑量,表示逻辑量的输入输出关系的表称为真值表,见书上表4流程流程控制语句 计算机程序通常都是从前到后逐条执行的。但有时也会根据实际情况,中途改变执行的次序,称为流程控制。 MATLAB共有4种流程控制语句n for 语句n while 循环n if-else-end语句n switch语句for 语句nfor语句的结构形式为 : for k=初值:增量:终值 语句组A; end 即它把语句组A反复执行N次。在每次执行时程序中的k值不同。 N = 1+(终值初值) / 增量 举例如下: for n=1:10 x(n)=sin(n*pi/

15、10); endfor 语句n为了得到最大的速度,在for循环被执行之前,应预先分配数组。例如,前面所举的例子,在for循环内每执行一次命令,变量x的大小增加1。迫使MATLAB每通过一次循环要花费时间对x分配更多的内存。为了消去这个步骤,for循环的例子可重写为 x=zeros(1,10); for n=1:10 x(n)=sin(n*pi/10); endn现在,只有x(n)的值需要改变while 循环nwhile循环的一般形式是: while (表达式) 语句组A endn只要在表达式里的逻辑值为真,就执行while和end 语句之间的语句。当表达式的逻辑值为假时,就退出当前的循环。wh

16、ile 循环n在while循环语句中,在语句内必须有可以修改循环控制变量的命令,否则该循环语言将陷入死循环中。n除非循环语句中有控制退出循环的命令,如break语句。当程序流程运行至该命令时,则不论循环控制变量是否满足循环判断语句均将退出当前循环,执行循环后的其他语句。n与break语句对应,MATLAB还提供了continue命令用于控制循环,当程序流运行至该命令时会忽略其后的循环体操作转而执行下一层次的循环。 if-else-end语句nif-else-end语句的一般形式为: if表达式 逻辑表达式值为“真”时执行的语句 else 逻辑表达式值为“假”时执行的语句 endn在MATLAB

17、语言的if-else-end语句中的else子句是可选项,即语句中可以不包括else子句的条件判断。if-else-end语句n在程序设计中,也经常碰到需要进行多重逻辑选择的问题,这时可以采用if-else-end语句的嵌套形式: if(表达式1) 逻辑表达式1的值为“真”时的执行语句 elseif(表达式2) 逻辑表达式2的值为“真”时的执行语句 elseif(表达式3) else 当以上所有的逻辑值均为假时的执行语句end switch语句nswitch-case-otherwise语句是一种均衡实现的多分支语句,其基本语言结构可表为: switch 表达式(标量或字符串) case 值1

18、 语句组A case 值2 语句组B otherwise 语句组N end2.5 M文件及程序调试nMATLAB在命令窗中运行的方式有两种 行命令方式键入命令行 执行程序文件方式键入程序名n程序文件称为M文件,都是ASCII文本, 分为两种 主程序文件Script file 函数程序文件Function file主程序文件主程序文件主程序文件的格式特征如下:n (1)用clear, close all等语句开始。n (2)程序的主体。 如果文件中有全局变量,即在子程序中与主程序共用的变量,应在程序的起始部分注明。其语句是 global 变量名1 变量名2 .n (3)整个程序应按MATLAB标

19、识符的要求起文件名。n举例说明:人机交互命令人机交互命令n在对程序的运行进行观察或干预,或者调试程序时,人机交互命令不可少。n这些命令可以MATLAB语言结构库中调用。下面介绍几条: echo on(off) 一般情况下,M文件中的命令不会显示在屏幕上。而在命令echo on之后,会在执行每行程序前先显示其内容。 pause(n) 程序执行到此处,暂停n秒,再继续执行。如果没有括号参数,则等待用户键入任意键后才继续执行。人机交互命令人机交互命令keyboard 程序执行到此处暂停,在屏幕上显示字符K.并把程序的输入和执行权交给用户(键盘)。如果需要系统恢复运行原来的程序,只需键入字符串retu

20、rn.input(提示符) 程序执行到此处暂停,在屏幕上显示引号中的字符串。 如程序为x=input(x=),则屏幕上显示x= disp用来显示字符串和数据的输出 人机交互命令人机交互命令 C强行停止程序运行的命令。C念作(Control一C),即先按下Ctrl键,不抬起再按C键。在发现程序运行有错,运行时间太长时,可用此方法中途终止它。函数文件n MATLAB语言中,函数文件是用来定义子程序的。主要由以下三个特点。 (1)由function开头,后跟的函数名必须与文件名相同; (2)有输入输出变元(变量),可进行变量传递; (3)除非用global声明,程序中的变量均为局部变量,不保存在工作

21、空间中。文件编辑器及程序调试文件编辑器及程序调试nMATLAB提供的编辑器较为理想,它把编辑与调试结合在一起了。n需要用调试命令的主要是函数程序。因为在函数程序出错而停机时,其变量不被保存。虽然它也会指出出错的语句,但因为子程序中的变量在程序执行完毕后会自动消失,其他现场数据都无记录。会给调试带来很大困难。解决这个问题可采用下列措施。文件编辑器及程序调试文件编辑器及程序调试n 1)把某些分号改为逗号。n 2)在子程序中适当部位加keyboard命令。此处,系统会暂停而等待用户键入命令。这时子程序中的变量还存在于工作空间中,可以对它们进行检查。n 3) 将函数文件的第一行前加%号,使它成为程序文

22、件,进行初步调试。第一行中的输入变元,可改用input或赋值语句来输入,调好后再改回函数文件。n 4) 使用MATLAB提供的调试命令。2.6 基本绘图方法-二维图形的绘制1、基本形式 二维图形的绘制是MATLAB语言图形处理的基础,MATLAB最常用的画二维图形的命令是plot,nplot的功能: plot命令自动打开一个图形窗口 自动标出坐标刻度 用直线连接相邻两数据点来绘制图形 如果已经存在一个图形窗口,plot命令则清除当前图形,绘制新图形基本形式n看两个简单的例子: y=0 0.58 0.70 0.95 0.83 0.25; plot(y) x=linspace(0,2*pi,30)

23、; % 生成一组线性等距的数 y=sin(x); plot(x,y)2、多重线n 在plot后使用多输入变量 plot(x1,y1,x2,y2,.xn,yn) 例如 x=0:pi/15:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) 2、多重线n多重线的另一种画法是利用hold命令。 例如: x=linspace(0,2*pi,30); y=sin(x); plot(x,y) 先画好图这个图,然后用下述命令增加cos(x)的图形。 hold on z=cos(x); plot(x,z) hold off3、线型、点型和颜色nMATLAB对曲线的线型和颜色

24、有许多选择,标注的方法是在每一对数组后加一个字符串参数, plot(x,y,s) 字符串s设定曲线的颜色和绘图方式 或plot(x1,y1,s1,x2,y2,s2,.) 说明见下表:3、线型、点型和颜色 线型、点型和颜色线型、点型和颜色标志符颜色标志符线型和点型y黄. 点m品红o 圆圈c 青 x x号r 红 + + 号g 绿 - 实线b 兰 * 星号w 白 : 虚线k 黑 -. 点划线 - 长划线3、线型、点型和颜色n以下面的例子说明用法: x=0:pi/15:2*pi; y1=sin(x); y2=cos(x) plot(x,y1,b:+,x,y2,g-.*)4、网格和标记 n在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) grid xlabel(Independent Variable X) ylabel(Dependent Variables Y and Z) title(sine and Cosine Curves

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论