《第二章MATLAB程序设计.ppt》由会员分享,可在线阅读,更多相关《第二章MATLAB程序设计.ppt(38页珍藏版)》请在第壹文秘上搜索。
1、2.1 2.1 数据类型和运算符数据类型和运算符 2.2 2.2 程序控制语句程序控制语句 2.3 2.3 矩阵运算矩阵运算2.4 2.4 多项式多项式2.5 2.5 函数与函数与M M文件文件2.6 2.6 数据的可视化数据的可视化 2.1 2.1 数据类型和运算符数据类型和运算符变量、语句变量、语句 变量命名规则变量命名规则必须以字母开头;必须以字母开头;可以由字母、数字和下划线混合组成;可以由字母、数字和下划线混合组成;变量长度应不大于变量长度应不大于3131个;个;字母区分大小写。字母区分大小写。变量的定义变量的定义特殊变量特殊变量 变量名称 功能 变量名称 功能 ans 保存最后一次
2、的运算结果 pi 圆周率 realmax 最大的浮点数值 realmin 最小的浮点数值 I 虚数单位 j 虚数单位 Inf 正无穷大 NaN 非数(0/0,Inf/Inf) 基本语句基本语句 MATLABMATLAB语言的基本语句结构为:语言的基本语句结构为:变量名列表变量名列表=表达式表达式 等号左边的变量名列表为等号左边的变量名列表为MATLABMATLAB语句的返回值,若一次返回多个结果,语句的返回值,若一次返回多个结果,则变量列表用则变量列表用 括起来,各变量间用括起来,各变量间用逗号逗号分隔;分隔;等号右边为表达式,可以是矩阵运算或函数调用,可以由等号右边为表达式,可以是矩阵运算或
3、函数调用,可以由分号分号(;)(;)、逗号、逗号(,)(,)或回车或回车结束。结束。 数据类型数据类型在在MATLABMATLAB里共有六种数据类型,每一种类型可以是一维、二维和多维的。里共有六种数据类型,每一种类型可以是一维、二维和多维的。双精度型(双精度型(doubledouble)字符型(字符型(charchar)稀疏型(稀疏型(sparsesparse)存储型(存储型(storagestorage)细胞型(细胞型(cellcell)结构型(结构型(structstruct) 字符型字符型基本规则:基本规则:所有字符串都用单引号括起来;所有字符串都用单引号括起来;字符串中的每一个字符都是
4、该字符串变量中的一个元素;字符串中的每一个字符都是该字符串变量中的一个元素;字符串中的字符以字符串中的字符以ASC码形式存储,因而区分大小写。码形式存储,因而区分大小写。常用操作方法:常用操作方法:建立:常用函数有建立:常用函数有char、int2str、num2str等。等。连接:水平连接通过函数连接:水平连接通过函数strcat或在中括号内用逗号连接;或在中括号内用逗号连接; 垂直连接通过函数垂直连接通过函数strvcat或在中括号内用分号连接。或在中括号内用分号连接。比较:常用函数比较:常用函数strcmp, ,相同则返回相同则返回1 1,否则为,否则为0 0。查找:常用函数查找:常用函
5、数findstr。运算符运算符v算术运算符算术运算符+加加.数组幂数组幂-减减左除或反斜杠左除或反斜杠*矩阵乘法矩阵乘法/右除或斜杠右除或斜杠.*数组乘法数组乘法./数组除数组除矩阵幂矩阵幂:冒号冒号按照运算符的优先级可把算术按照运算符的优先级可把算术运算符分为五级,在每一级里运算符分为五级,在每一级里运算符有同样的优先级,在运运算符有同样的优先级,在运算时自左向右结合算时自左向右结合 v关系运算符关系运算符在在MATLABMATLAB里共有六个关系运算符里共有六个关系运算符 大于大于 = =大于等于大于等于= = 等于等于 =不等于不等于 关系运算符将生成一个关系运算符将生成一个0-10-1
6、矩阵,当运算数相应元素为真时,对应矩阵,当运算数相应元素为真时,对应位置上生成位置上生成1 1,否则为,否则为0 0。 v逻辑运算符逻辑运算符& (& (与与) |() |(或或) () (非非) ) 结果是一个结果是一个0-10-1矩阵。当逻辑表达式的值为真时,赋值矩阵。当逻辑表达式的值为真时,赋值1 1,否则为,否则为0 0 v逻辑函数逻辑函数 allall函数函数 :当某列的元素都为真时,返回值为当某列的元素都为真时,返回值为1 1,否则返回,否则返回0 0。最终。最终运算结果为一个运算结果为一个0-10-1行向量行向量 anyany函数函数 :当向量中至少有一个元素为真时,返回值为当向
7、量中至少有一个元素为真时,返回值为1 1,否则返回,否则返回0 0。最终运算结果为一个。最终运算结果为一个0-10-1行向量行向量 findfind函数函数 :用于查找向量中的真元素的下标,返回由所有真元素下用于查找向量中的真元素的下标,返回由所有真元素下标构成的列向量。标构成的列向量。例例2-1: 在矩阵后面再补一行在矩阵后面再补一行 A=1 2 3;4 5 6;7 8 9 A1=A; 1 3 5A1= 1 2 3 4 5 6 7 8 9 1 3 5例,已知矩阵例,已知矩阵49819323753175323321A345981243576224553328763441iiiB1、求出这两个矩
8、阵的乘积、求出这两个矩阵的乘积C;2、将、将C矩阵的右下角矩阵的右下角23子矩阵赋子矩阵赋给给D矩阵。矩阵。956473)(2342sssssssG例例2-2:某系统的传递函数为:某系统的传递函数为试求它的试求它的ZPK形式,部分分式形式以及状态空间表达式。形式,部分分式形式以及状态空间表达式。计算结果表明计算结果表明)2427. 11521. 0)(2427. 11521. 0)(0537. 11521. 2)(0537. 11521. 2()1794. 25 . 1)(1794. 25 . 1()(isisisisisissG计算结果表明计算结果表明isiisiisiisisG0537.
9、11521. 03731. 00994. 02427. 11521. 03731. 00994. 00537. 11521. 22518. 00994. 00537. 11521. 22518. 00994. 0)(计算结果表明:该系统的状态空间表达式之一为计算结果表明:该系统的状态空间表达式之一为uXX00010100001000019564Xy73102.2 2.2 程序控制语句程序控制语句 循环语句循环语句MATLABMATLAB中的循环语句包括中的循环语句包括forfor循环和循环和whilewhile循环两种类型。循环两种类型。 forfor循环循环forfor循环的基本格式为:循环
10、的基本格式为:for for 循环变量循环变量=起始值:步长:终止值起始值:步长:终止值循环体循环体endend 步长的缺省值是步长的缺省值是1 1。步长可以在正实数或负实数范围内。步长可以在正实数或负实数范围内任意指定,对于正数,循环变量的值大于终止值时,循任意指定,对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环环结束;对于负数,循环变量的值小于终止值时,循环结束。结束。 whilewhile循环循环whilewhile循环的基本格式为:循环的基本格式为:while while 表达式表达式循环体循环体endend 若表达式为真,则执行循环体的内容,执
11、行后再判断表若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若为假则跳出循环体,向下继续执行,否达式是否为真,若为假则跳出循环体,向下继续执行,否则继续执行循环体。则继续执行循环体。 breakbreak:从循环体中跳出,并使循环结束。从循环体中跳出,并使循环结束。例例2-3 求取下面和式求取下面和式10012ii程序程序1程序程序2运行结果运行结果运行结果运行结果 if ifelseelseelseifelseif语句语句if if格式:格式:if if 逻辑表达式逻辑表达式执行语句执行语句endend 当逻辑表达式的值为真,则执行该结构中的执行语句内容,执行完后向下继续执行,
12、若逻辑表达式的值为假,跳过结构中的执行语句继续向下执行。if-elseif-else格式格式if if 逻辑表达式逻辑表达式执行语句执行语句1 1elseelse执行语句执行语句2 2endend 如果逻辑表达式的值为真,则执行语句1,然后跳过语句2向下执行;若逻辑表达式的值为假,则跳过执行语句1而执行语句2,然后向下执行。 if-elseifif-elseif格式格式if if 逻辑表达式逻辑表达式1 1执行语句执行语句1 1elseifelseif 逻辑表达式逻辑表达式2 2执行语句执行语句2 2elseifelseif 逻辑表达式逻辑表达式n n执行语句执行语句n n else else
13、执行语句执行语句el el end end 如果逻辑表达式的值为真,则执行语句如果逻辑表达式的值为真,则执行语句1 1,若逻辑表达式的值,若逻辑表达式的值为假,则判断逻辑表达式为假,则判断逻辑表达式2 2的值,若为真,则执行语句的值,若为真,则执行语句2 2,否则向,否则向下执行下执行, ,若所有表达式均为假,执行语句若所有表达式均为假,执行语句el el 。例例2-4 将数组作特殊排列将数组作特殊排列 运算结果为运算结果为 switchswitch语句语句 switchswitch语句的格式为:语句的格式为: switch 表达式(标量或字符串)表达式(标量或字符串)case 值值1语句语句
14、1case 值值2语句语句2case case 值值n n语句语句n notherwise语句语句owend 表达式的值和哪种情况(表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,)的值相同,就执行哪种情况中的语句,如果都不同,则执行如果都不同,则执行otherwise中的语句。中的语句。例例2-5 已知一个单位负反馈系统开环传递函数为已知一个单位负反馈系统开环传递函数为)22)(6)(5()3()(2ssssssksG当当k分别为分别为35和和36时,其系统的单位阶跃响应完全不同。试用时,其系统的单位阶跃响应完全不同。试用switch语句绘制系统的单位阶跃响应曲线。语句绘制
15、系统的单位阶跃响应曲线。输入简单的矩阵输入简单的矩阵 在在MATLAB中不必描述矩阵的维数和类型,而由输入的格式和内容来中不必描述矩阵的维数和类型,而由输入的格式和内容来决定。输入小矩阵最简单的方法:把矩阵的元素直接排列到决定。输入小矩阵最简单的方法:把矩阵的元素直接排列到方括号方括号中。每中。每行行内的内的元素元素间用空格间用空格(space)或或逗号逗号(,)分开,行与行的内容间用(,)分开,行与行的内容间用分分号号(;)隔开。(;)隔开。 下标引用下标引用 矩阵下标(矩阵下标(按列优先排列按列优先排列)用两个下标来表示。用两个下标来表示。第第i i行行j j列的元素用列的元素用A(i,j
16、)A(i,j)来表示来表示用一个下标来表示。用一个下标来表示。对于矩阵按列操作,可用单下标引用对于矩阵按列操作,可用单下标引用A(i) A(i) 。在下标的表达式中使用冒号表示矩阵的一部分。在下标的表达式中使用冒号表示矩阵的一部分。 下标引用从序号下标引用从序号1 1开始。开始。 例如:例如:A(1:k,j)A(1:k,j)表示矩阵表示矩阵A A的第的第j j列的前列的前k k个元素。个元素。 A(:,j)A(:,j)表示矩阵表示矩阵A A的第的第j j列的所有元素。列的所有元素。 2. 3 2. 3 矩阵运算矩阵运算 表示复共轭转置,表示复共轭转置, . 表示普通转置。表示普通转置。 矩阵的转置矩阵的转置 矩阵的点运算矩阵的点运算 两个矩阵之间的点运算是对该矩阵对应元素的直接运算。点乘积运算要两个矩阵之间的点运算是对该矩阵对应元素的直接运算。点乘积运算要求矩阵的维数相同。点乘积又称为求矩阵的维数相同。点乘积又称为Hadamard乘积。常用的点运算包括:乘积。常用的点运算包括:. .* * ./ . . . ./ . . . (举例)(举例)(举例)(举例)987654321A2313