第二章MATLAB程序设计.ppt

上传人:李司机 文档编号:4102788 上传时间:2023-04-04 格式:PPT 页数:38 大小:547KB
返回 下载 相关 举报
第二章MATLAB程序设计.ppt_第1页
第1页 / 共38页
第二章MATLAB程序设计.ppt_第2页
第2页 / 共38页
第二章MATLAB程序设计.ppt_第3页
第3页 / 共38页
第二章MATLAB程序设计.ppt_第4页
第4页 / 共38页
第二章MATLAB程序设计.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《第二章MATLAB程序设计.ppt》由会员分享,可在线阅读,更多相关《第二章MATLAB程序设计.ppt(38页珍藏版)》请在三一办公上搜索。

1、第二章 MATLAB程序设计,2.1 数据类型和运算符 2.2 程序控制语句 2.3 矩阵运算2.4 多项式2.5 函数与M文件2.6 数据的可视化,2.1 数据类型和运算符,变量、语句,变量命名规则必须以字母开头;可以由字母、数字和下划线混合组成;变量长度应不大于31个;字母区分大小写。,变量的定义特殊变量,基本语句,MATLAB语言的基本语句结构为:变量名列表=表达式 等号左边的变量名列表为MATLAB语句的返回值,若一次返回多个结果,则变量列表用 括起来,各变量间用逗号分隔;等号右边为表达式,可以是矩阵运算或函数调用,可以由分号(;)、逗号(,)或回车结束。,数据类型,在MATLAB里共

2、有六种数据类型,每一种类型可以是一维、二维和多维的。,双精度型(double)字符型(char)稀疏型(sparse)存储型(storage)细胞型(cell)结构型(struct),字符型,基本规则:所有字符串都用单引号括起来;字符串中的每一个字符都是该字符串变量中的一个元素;字符串中的字符以ASC码形式存储,因而区分大小写。,常用操作方法:建立:常用函数有char、int2str、num2str等。连接:水平连接通过函数strcat或在中括号内用逗号连接;垂直连接通过函数strvcat或在中括号内用分号连接。比较:常用函数strcmp,相同则返回1,否则为0。查找:常用函数findstr。

3、,运算符,算术运算符,按照运算符的优先级可把算术运算符分为五级,在每一级里运算符有同样的优先级,在运算时自左向右结合,关系运算符,在MATLAB里共有六个关系运算符 大于=大于等于=等于=不等于,关系运算符将生成一个0-1矩阵,当运算数相应元素为真时,对应位置上生成1,否则为0。,逻辑运算符,&(与)|(或)(非),结果是一个0-1矩阵。当逻辑表达式的值为真时,赋值1,否则为0,逻辑函数,all函数:当某列的元素都为真时,返回值为1,否则返回0。最终运算结果为一个0-1行向量,any函数:当向量中至少有一个元素为真时,返回值为1,否则返回0。最终运算结果为一个0-1行向量,find函数:用于查

4、找向量中的真元素的下标,返回由所有真元素下标构成的列向量。,例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,例,已知矩阵,1、求出这两个矩阵的乘积C;2、将C矩阵的右下角23子矩阵赋给D矩阵。,例2-2:某系统的传递函数为,试求它的ZPK形式,部分分式形式以及状态空间表达式。,计算结果表明,计算结果表明,计算结果表明:该系统的状态空间表达式之一为,2.2 程序控制语句,循环语句MATLAB中的循环语句包括for循环和while循环两种类型。for循环for循环的基本格式为:for 循环变量=起始值:

5、步长:终止值循环体end 步长的缺省值是1。步长可以在正实数或负实数范围内任意指定,对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。,while循环while循环的基本格式为:while 表达式循环体end 若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若为假则跳出循环体,向下继续执行,否则继续执行循环体。,break:从循环体中跳出,并使循环结束。,例2-3 求取下面和式,程序1,程序2,运行结果,运行结果,ifelseelseif语句if格式:if 逻辑表达式执行语句end 当逻辑表达式的值为真,则执行该结构中的执行语句内容,执行

6、完后向下继续执行,若逻辑表达式的值为假,跳过结构中的执行语句继续向下执行。if-else格式if 逻辑表达式执行语句1else执行语句2end 如果逻辑表达式的值为真,则执行语句1,然后跳过语句2向下执行;若逻辑表达式的值为假,则跳过执行语句1而执行语句2,然后向下执行。,if-elseif格式if 逻辑表达式1执行语句1elseif 逻辑表达式2执行语句2elseif 逻辑表达式n执行语句n else执行语句el end 如果逻辑表达式的值为真,则执行语句1,若逻辑表达式的值为假,则判断逻辑表达式2的值,若为真,则执行语句2,否则向下执行,若所有表达式均为假,执行语句el。,例2-4 将数组

7、作特殊排列,运算结果为,switch语句 switch语句的格式为:switch 表达式(标量或字符串)case 值1语句1case 值2语句2case 值n语句notherwise语句owend 表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,如果都不同,则执行otherwise中的语句。,输入简单的矩阵,在MATLAB中不必描述矩阵的维数和类型,而由输入的格式和内容来决定。输入小矩阵最简单的方法:把矩阵的元素直接排列到方括号中。每行内的元素间用空格(space)或逗号(,)分开,行与行的内容间用分号(;)隔开。,下标引用,矩阵下标(按列优先排列)用两个下标来表示。第i行j

8、列的元素用A(i,j)来表示用一个下标来表示。对于矩阵按列操作,可用单下标引用A(i)。在下标的表达式中使用冒号表示矩阵的一部分。下标引用从序号1开始。,例如:A(1:k,j)表示矩阵A的第j列的前k个元素。A(:,j)表示矩阵A的第j列的所有元素。,2.3 矩阵运算,表示复共轭转置,.表示普通转置。,矩阵的转置,矩阵的点运算,两个矩阵之间的点运算是对该矩阵对应元素的直接运算。点乘积运算要求矩阵的维数相同。点乘积又称为Hadamard乘积。常用的点运算包括:.*./.,(举例),(举例),矩阵函数,三角分解,将一个方阵表示成两个基本三角阵的乘积,其中一个三角阵为上三角阵,另一个为下三角阵。这种

9、分解被称为LU分解。,L,U=lu(A)%求矩阵A的LU分解Xinv(A)%求矩阵A的逆矩阵d=det(A)%求矩阵A的行列式,举例,三角分解,deig(A);V,Deig(A);V,Deig(A,nobalance),求解A矩阵的特征值和特征向量,其调用格式为:,d为矩阵A的特征值向量;D为A阵的特征值对角阵,V的各列为A阵的全部特征向量,A*V=V*D;nobanlance选项当A矩阵中有的元素小到和截断误差相当时用,一般用nobalance选项来减少计算误差。,矩阵的尺寸,为了判断矩阵的尺寸,Matlab提供了以下函数:m,n=size(A)%返回矩阵的行数m和列数nM=size(A)%

10、在矩阵M中返回矩阵的行数、列数len=length(A)%返回矩阵A行数和列数中的最大值,特殊矩阵的生成,单位矩阵eye(n)%生成n维单位阵eye(m,n)%生成mn的单位阵eye(m,n)%生成mn的单位阵eye(size(A)%生成与A矩阵同样大小的单位矩阵全1矩阵 ones(n)ones(m,n)ones(m,n)ones(size(A)全零矩阵 zeros(n)zeros(m,n)zeros(m,n)zeros(size(A)随机矩阵 rand(n)rand(m,n)rand(m,n)rand(size(A)生成的随机矩阵的各个元素值在0和1之间。魔术矩阵magic(n)魔术矩阵的所

11、有行元素和、列元素和、对角线元素和均相等。,2.4 多项式,多项式的创建,多项式的常用函数,roots()%求多项式的根 p=poly(A)%求矩阵的特征多项式 polyval(p,x)%求当多项式p的参数为某个特定值x时的多项式的值polyvalm(p,A)%和polyval作用相同,输入参数值也可为方阵A,多项式用行向量表示。多项式P(x)=an xn+an-1xn-1+a1x+a0,其系数向量表示为:Pan,an-1,a1,a0。,直接输入法例如:P=1,2,3,4poly(A)%创建方阵A的特征多项式poly(a)%如果a为向量bn bn-1b1 b0,则创建(x-b0)(x-b1)(

12、x-bn-1)(x-bn)生成的多项式的系数向量,卷积和解卷积,c=conv(A,B)%卷积函数,多项式乘法函数Q,R=deconv(A,B)%解卷积函数,多项式除法函数polyder:用于计算两个多项式的积、单个多项式和两个多项式的商的导数,其调用格式为:Pdpolyder(P)%求多项式P的导数Pmpolyder(P1,P2)%求多项式P1和多项式P2的乘积的导数Q,D=polyder(P1,P2)%求多项式P1除以多项式P2商的导数,举例,2.5 函数与M文件,用Matlab语言编写的可以在Matlab环境中运行的程序称为M文件。M文件以.m为扩展名,M文件分为两种:命令文件和函数文件,

13、命令文件,命令文件没有输入参数也没有输出参数,只是一些Matlab命令和函数的组合。命令文件可以操作工作空间的变量,也可以生成新的变量,当命令文件执行结束后新变量将保存在工作空间中,不会被自动清除。,函数文件,函数允许通过数值进行参数传递,而且函数使用局部变量而不是全局变量操作。函数文件的第一行必须包括“function”这个关键字。函数文件的文件名必须和函数定义的函数名称相同。,程序文件与函数文件的主要区别,函数接收输入参数,返回输出参数。函数文件也是以“.m”为扩展名,,MATLAB的函数M文件通常由以下几个部分组成:,函数定义行 函数M文件的第一行用关键字“function”把M文件定义

14、为一个函数,并指定它的名字,并且与文件名必须相同,同时定义了函数的输入和输入参数。输入参数的定义用小括号(),如果有多个输入参数则用逗号分隔;输出参数的定义用中括号,如果有多个输出参数则用逗号分隔。,H1行 所谓H1行指帮助文本的第一行,它紧跟在定义行之后并以“%”符号开头,用于概括说明函数名和函数的功能。在命令窗口用lookfor命令时将显示所寻求函数的H1行。函数帮助文本 帮助文本指位于H1行之后函数体之前的说明文本,它同样以“%”符号开头,一般用来比较详细地介绍函数的功能和用法。在命令窗口用help命令时将显示函数的H1行和所有帮助文本。函数体 是函数的主体部分,包括进行运行和赋值操作的

15、所有MATLAB程序代码,其中可以有流程控制、输入输出、计算、赋值、注释以及函数调用等操作。注释 除了函数开始独立的帮助文本外,还可以在函数体中添加对语句的注释。注释必须以“%”符号开头,MATLAB在编译执行M文件时把每一行中“%”后面的全部内容作为注释不进行编译。,一个M文件中可以定义多个函数,其中第一个定义的函数称为主函数,主函数名必须与M文件名相同,其它函数称为子函数。子函数只能被定义它的文件中的函数调用,其它函数和文件不能调用。,子函数,2.6 数据的可视化,图形窗口,MATLAB自动将图形画在图形窗口上;图形窗口相对于命令窗口是独立的窗口;图形窗口的属性由系统和MATLAB共同控制

16、;,常用图形窗口命令格式:,figure%建立一个新的图形窗口,并指定为当前窗口用于图形输出subplot%把多个图形绘在一个图形窗口中。subplot(m,n,I)%把图形窗口分成mn个小图形区域,并指定第i个区域为图形的绘制区域。图形区域的编排采用行优先。,基本的绘图命令plot,功能:plot是最基本的二维图形命令,它是以MATLAB的内部函数形式出现的。MATLAB的其他二维函数中的绝大多数是以plot为基础构造的绘图命令。格式:plot(y),plot(x,y),plot(x1,y1,x2,y2,)说明:(1)plot(y):当y为向量时,则以y的元素为纵坐标,以相应元素下标为横坐标

17、,绘制连线图。(2)plot(x,y):当y和x为同维向量,则以x为横坐标、y为纵坐标绘制连线图。(3)plot(x1,y1,x2,y2,):每对x、y必须符合plot(x,y)中的要求,不同对之间没有影响,命令将对每一对x,y绘制曲线。,常用绘制二维图形的命令,基本绘图控制,数据的可视化的一般步骤为:准备绘图需要的数据;指定绘图的窗口或者区域;调用基本绘图命令;选择线型、颜色、数据点形状;坐标轴控制,包括显示范围、刻度线、比例、网格线;标注控制,包括坐标轴名称、标题、相应文本等。,plot控制功能:在调用函数plot时,可以指定线型,颜色,和数据点的图标。格式:plot(x,y,color_

18、linestyle_marker)说明:参数color_linestyle_marker 为一个字符串,由颜色、线型、数据点的图标组成。,颜色字符定义表,线型字符定义表,坐标轴控制axis(xmin,xmax,ymin,ymax)指定轴的显示范围,四个输入参数分别为横轴显示的最小值和最大值、纵轴显的最小值和最大值,可以用Inf和-Inf表示。axis square 一般情况下,MATLAB给出的图形窗口不是正方形,所有显示的图形区域也不是正方形。对应两轴的比例,一般也是不相等的。可以用此命令指定两轴的显示的长度相同。axis tight 用于绘制指定数据的范围。“equal”和“tight”也

19、可以同时选中。axis equal 用于指定两轴的显示比例相同。set(gca,xtick,),set(gca,ytick,)设置横轴(X轴)、纵轴(Y轴)的刻度线,第三个输入参数是一个刻度向量,并按照等分升序原则排列。,删格控制:控制图形窗口的栅格是否被显示。grid on%显示栅格grid off%隐藏栅格追加控制:控制绘图方式,即在当前窗口绘图时是否清除原窗口上来的图形hold on%绘图时不清除绘图窗口中原有的图形hold off%绘图时清除绘图窗口中原有的所有图形标注控制:图形上加上适当的文字说明。xlable(string,FontSize,size),ylable(string,FontSize,size)显示坐标轴的名称,string为坐标轴名称字符串,size为使用的字体尺寸title(string,FontSize,size)显示整个图形的标题,string为标题字符串,size为字体大小。text(x,y,stirng)在绘图窗口的坐标(x,y)处显示字符串string。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号