《matlab第2章仿真基础知识.ppt》由会员分享,可在线阅读,更多相关《matlab第2章仿真基础知识.ppt(44页珍藏版)》请在三一办公上搜索。
1、第二章 MATLAB仿真基础知识,2.1 MATLAB语言的基本使用环境 2.2 MATLAB语言数据结构;,2.1 MATLAB语言的简单界面,MATLAB联机帮助,Matlab命令窗口中的help菜单下的Matlab help命令。,Simulink 工作窗口,MATLAB 入门,1、计算器的使用,例如:计算算术式,(3*(6-2)+2)/23,MATLAB 入门,“”为提示符,等待输入,运算符(+、-、*、/、等)为计算机语言常用运算符。,“ans”为“answer”的缩写,引出结果 是一个系统自带变量。,2.2 MATLAB语言数据结构:双精度浮点数型数据,double()整型数据表示
2、:int8(),int16(),int32()无符号整型数据表示:uint8(),uint16(),uint32()除了一般的实数数据之外,MATLAB还支持复数向量、矩阵和字符串型矩阵,从MATLAB 50版本开始,还允许其他更高级的数据类型,如多维数组、数据结构体、单元数据、类和对象等,,2.2.1常量、变量与赋值语句,1.MATLAB语言变量名应该由字母开头,后面可以跟字母、数字、下划线,如:MAN12,A_12,WE_ 正确变量名 12a,_WE 不正确变量名,注:MATLAB语言的变量名区分大小写,如 AER aeR,2.赋值语句 变量表达式()在命令窗口中表达式的结果值赋给保留变量
3、ans;3.函数调用语句 返回变量列表函数名(输入变量列表)函数名命名规则与变量名相同,而且对应某一文件。u,v,w=fun(x,y)u v w=fun(x y)返回或输入的各变量列表间以逗号或空格分开。,eps一机器的浮点运算误差限。PC机上eps的默认值为222xl0-16,若某个量的绝对值小于esp:,则可以认为这个量为o。i和j若i和j 不被改写,则它们表示纯虚数量i。Inf 一无穷大量+的MATLAB表示,也可以写成inf,同样地-可以表示为Inf。NaN一不定式(Not a Number),通常由00运算、InfInf及其他可能的运算得出。NaN是个很奇特的量,如NaN与Inf的乘
4、积仍为NaN。Pi一圆周率的双精度浮点表示,MATLAB 是一个基于矩阵运算的工具。,矩阵的表示。,1、一行输入;(空格、逗号)2、多行输入;(空格、逗号),数学上的矩阵:2.2.2 MATLAB的矩阵表示,语句后无分号得下面结果,矩阵行向量的表示,矩阵列向量的表示,用冒号表达式给行向量赋值,其格式为:a=s1:s2:s3(当s20时s1s3,s2相反或省略情况),复数矩阵的表示:,2.2.3 多维数组的定义,练习:给实数和复数数组赋值及定义以外的矩阵赋值,A=1 2 3 4;4 3 2 1;2 3 4 1;3 2 4 1;B=1+4j,2+3j,3+2j,4+1j;4+1j,3+2j,2+3
5、j,1+4j;2+3j,3+2j,4+1j,1+4j;3+2j,2+3j,4+1j,1+4j;A(5,6)=5A=1 2 3 4 0 04 3 2 1 0 02 3 4 1 0 03 2 4 1 0 00 0 0 0 0 5,Matlab语言数据结构:数据结构体 和单元结构2.2.4数据结构体:数据结构体将某一类相关的信息纳入一个统的变量名字下进行管理。(数据库),例:考虑建立学生档案结构体,应包含下列信息:编号(用number表示,在结构体下number又称为其成员变量或域):数值型。姓名(name):字符串型。身高(height):数值型。考试成绩(test):矩阵,其第i行为第i次考试的
6、成绩,而第j列为第j门考试的成绩。可建立起结构体student_rec:,student_recnumber=1;student_recname张三;student_rec.height180;student_rectest100,80,75;77,60,92;67;28,90;100,89,78;student_rec%显示结构体的内容 student_rec number:1 name:张三 height:180 test:43 double,student_rectestans=100 80 75 77 60 92 67 28 90 100 89 78,2.2.5 单元结构单元结构是把不
7、同属性的数据都纳入到一个变量之下,这个变量称为单元。单元结构和结构体的关系:(1)结构体下的各个子项称为成员变量,而每个成员变量都有自己的名字;(2)单元变量类似于带有下标的矩阵和多维数组,且用大括弧括起来(3)在矩阵和多维数组中每个矩阵元素都应该具有相同的属性,而单元结构可把不同属性的数据归并起来。,考虑建立学生档案采用单元结构,应包含下列信息:,其中 为续行符号,表示下一行的内容紧跟上行,B4%显示第4单元内容,B(4)(),方法2:celldisp(B)%显示整个单元变量采用函数方法实现。B1=1B2=张三B3=180B4=100 80 75 77 60 92 67 28 90 100
8、89 78B(3)=%删除 B单元变量的第3 个单元元素B3=%将第3 个单元置成空矩阵。,如果A矩阵含有复数元素,则对之进行转置时,其转置矩阵B的元素定义为bji=aij*,i1,n,j1,m,亦即首先对各个元素进行转置,然后再逐项求取其共轭复数值。这种转置方式又称为Hermit转置,其数学记号为b=A*,1.矩阵转置,2.3Matlab下矩阵的运算,2.3.1 矩阵的代数运算,复数矩阵的常规转置AT则可由函数transponse()Btransponse(A)%直接转置 B,BA 可表示复数矩阵也可表示实数矩阵的转置,ctransponse(A)可以实现hermit转置,2.矩阵的加减法运
9、算 C=A+B C=A-B(1)矩阵A、B维数相同,它会自动将其对应元素相加减;(2)若其中之一为标量,则变加(减)于另一个矩阵;函数实现:plus(A,B)minus(A,B),3.矩阵乘法矩阵相乘的条件:A、B矩阵相容;如:C=A*B,由Matlab编程得,C=mtimes(A,B),4.矩阵的左除()“”运算符号表示两个矩阵的左除既AB为方程AX=B 的解X,(A、B尽可能为方阵)函数实现:mldivide(A,B),求解线性方程组:,A=5 7 6 5 1;7 10 8 7 2;6 8 10 9 3;5 7 9 10 4;1 2 3 4 5;B=24 96;34 136;36 144;
10、35 140;15 60;X=AB,5.矩阵的右除(/)“/”运算符号表示两个矩阵的右除既B/A为方程XA=B 的解X,(A、B尽可能为方阵)A为非奇异方阵,函数实现:mrdivide(A,B),6.矩阵翻转,7.矩阵乘方 Ax(A矩阵为方阵)若x为正整数,将A矩阵自乘X次;若X为负整数,则将A矩阵自乘X次后对结果进行求逆运算;若x=n/m,其中n和m均为整数,先将A矩阵自乘n次,然后对结果再开m次方。函数实现:mpower(A,x),8.点运算 两个矩阵之间的点运算是他们对应元素的直接运算(又称Hadamard运算)C=A.*B(cij=aij*bij)注:点乘的矩阵应具有相同的维数例:给定
11、的矩阵A和B,向量X5的求解:A=X5()A=X.5()函数实现:times(A,B),2.3.2 矩阵的逻辑运算在Matlab中,如果一个数的值为0,则可以认为它为逻辑0,否则为逻辑1。1.矩阵与运算(&)C=A&BA和B必须满足的条件:(1)A和B的维数应该相同或其中之一为标量(2)A和B矩阵的对应元素进行“与”运算,如果两个数均非0,则该结果元素的值为1,否则为0(3)矩阵A和B的与运算还可表示为and(A,B),2.矩阵的或运算(|)C=A|B条件:(1)A和B的维数应该相同或其中之一为标量(2)A和B矩阵的对应元素进行“或”运算,如果两个数均为0,则该结果元素的值为0,否则为1(3)
12、矩阵A和B的或运算还可表示为or(A,B),3.矩阵的非运算()C=A条件:(1)A矩阵进行“非”运算时,若矩阵对应元素为0,则结果为1,否则为0(2)矩阵A的非运算还可表示为not(A),4.矩阵的异或运算(xor)C=xor(A,B)条件:(1)A和B的维数应该相同或其中之一为标量(2)A和B矩阵的对应元素进行“异或”运算,如果两个数一个为0,一个非0,则结果元为1,否则为0,两矩阵A和B,A=0 2 3 4;1 3 5 0;B=1 0 5 3;1 5 0 5;A&B%与运算 ans=0 0 1 1 1 1 0 0,A|B%或运算 ans=1 1 1 1 1 1 1 1,A=0 2 3 4
13、;1 3 5 0;B=1 0 5 3;1 5 0 5;A%非运算 ans=1 0 0 0 0 0 0 1,Xor(A,B)%异或运算 ans=1 1 0 0 0 0 1 1,2.3.3 矩阵的比较关系,这些关系针对矩阵对应元素而言的,所以在使用关系运算时,应该保证两个矩阵的维数是一致的或其一为标量。关系运算对两个矩阵的对应运算进行比较,若关系满足,则将结果矩阵中该位置的元素置为1,不满足则置0。,A=0 2 3 4;1 3 5 0;B=1 0 5 3;1 5 0 5;A=B%判定相等关系 ans=0 0 0 0 1 0 0 0,A=B%判定大于、等于关系 ans=0 1 0 1 1 0 1 0
14、,C=B=A%判定不等于关系 ans=1 1 1 1 0 1 1 1,3、逆矩阵与行列式计算求逆:inv(A);或A(-1)求行列式:det(A)要求矩阵必须为方阵,a=1 2 3;4 5 6;2 3 5;b=inv(a)b=-2.3333 0.3333 1.0000 2.6667 0.3333-2.0000-0.6667-0.3333 1.0000det(a)ans=-3,三、矩阵的操作,1、矩阵下标MATLAB通过确认矩阵下标,可以对矩阵进行插入子块,提取子块和重排子块的操作。,A(m,n):提取第m行,第n列元素A(:,n):提取第n列元素(冒号表示全部)A(m,:):提取第m行元素A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子块)。A(:):得到一个长列矢量,该矢量的元素按矩阵的列进行排列。矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。消除子块:如果将矩阵的子块赋值为空矩阵,则相当于消除了相应的矩阵子块。,