MATLAB语言及应用.ppt
《MATLAB语言及应用.ppt》由会员分享,可在线阅读,更多相关《MATLAB语言及应用.ppt(96页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、系统建模与仿真王海英王海英参考教材参考教材:控制系统的控制系统的MATLAB与仿真,王海英,高等教育出版社与仿真,王海英,高等教育出版社系统建模与仿真,张晓华,清华大学出版社系统建模与仿真,张晓华,清华大学出版社主要内容MATLAB语言及应用系统建模系统仿真及应用第一部分第一部分MATLAB语言及应用语言及应用1.Matlab操作桌面操作桌面 命令窗口命令窗口 历史命令窗口历史命令窗口 当前目录浏览器当前目录浏览器 工作空间浏览器工作空间浏览器 M文件编辑器文件编辑器/调试器调试器 帮助导航帮助导航2.MATLAB编程基础 变量变量 变量命名规则变量命名规则变量的定义变量的定义特殊变量特殊变量
2、变变量名称量名称功能功能变变量名称量名称功能功能ans保存最后一次的运算结果pi圆周率realmax最大的浮点数值realmin最小的浮点数值i虚数单位j虚数单位inf正无穷大NaN非数(0/0,Inf/Inf)示例示例基本数据类型基本数据类型 在MATLAB中共有六种数据类型六种数据类型,每一种类型可以是一维、二维和多维的。基本的数据类型是双精度型复数(double)和字符型(char)。MATLAB以复数矩阵为基本的运算单元。基本语句基本语句 MATLAB最基本的语句是赋值语句,其结构为:变量名列表变量名列表=表达式表达式其中等号左边的变量名列表为MATLAB语句的返回值,若一次返回多个结
3、果,则变量列表用 括起来,各变量间用逗号分隔;等号右边为表达式,可以是矩阵运算或函数调用。关于程序编辑关于程序编辑 语句可以由语句可以由分号分号(;)、逗号、逗号(,)或者回车或者回车结束结束 如果用分号结束,则左边的变量结果不会被显示在命令窗口,否则将显示左侧变量的值。每行可以写多行语句,语句之间用空格、逗号、分号进每行可以写多行语句,语句之间用空格、逗号、分号进行分隔行分隔 用三个黑点表示“续行”,表示下一行是上一行的继续。A=1,2,3;4,5,6;用用%表示注释,表示注释,%开始一直到行末的内容都是注释开始一直到行末的内容都是注释示例示例3.数据结构及其运算数据结构及其运算数据数据类类
4、型型举举 例例解解 释释doubledouble1,2;3,4,5+6i1,2;3,4,5+6i双精度数双精度数值类值类型,是最常用的型,是最常用的类类型。型。charcharHelloHello字符数字符数组组,每个字符占,每个字符占1616位。位。sparsesparsespeye(5)speye(5)双精度稀疏矩双精度稀疏矩阵阵,只存,只存储储矩矩阵阵中的非中的非0 0元素元素cellcell1,2,3;4,5,6;7,8,9,hell1,2,3;4,5,6;7,8,9,hello,eye(2)o,eye(2)细细胞数胞数组组,数,数组组中的每个元素可中的每个元素可为为不同不同类类型、不
5、同型、不同维维的数据。的数据。structstructa.day=12;a.day=12;a.color=a.color=redreda.mat=magic(3)a.mat=magic(3)结结构数构数组组相当于数据相当于数据库库的的记录记录,把相关的,把相关的数据列在一起,称数据列在一起,称为为属性,不同属性的属性,不同属性的数据数据类类型可以不同型可以不同storagestorageunit8(magic(3)unit8(magic(3)8 8位型,位型,为为无符号整数,最大可表示无符号整数,最大可表示255,255,不不能能进进行数学运算。行数学运算。双精度型(双精度型(double)、
6、字符型()、字符型(char)、稀疏型()、稀疏型(sparse)、存储型)、存储型(storage)、细胞型()、细胞型(cell)和结构型()和结构型(struct)。)。数据类型数据类型 一维数组 一维数组的创建一维数组的创建 逐个元素输入法冒号运算符法一维数组的访问一维数组的访问 一维数组的访问遵循以下约定:用下标方式访问数组元素,下标要用一对圆括号()引起来。下标代表的是元素在数组中的位置序号,从1开始,最大值为数组中元素的个数。下标可以是常量,也可以是变量。可以访问数组中的单个元素,也可以访问数组中的某些元素,即数组的子数组。示例示例例例3.1二维数组 二维数组的建立二维数组的建立
7、逐个输入数组元素值 如果数组内元素数量少,可以直接从键盘逐个输入元素的值,需要遵循的规则是:整个数组必须用中括号“”括起来数组的行与行之间用分号“;”分隔,或者用回车符分隔每行之间的元素必须用逗号“,”或者空格分隔利用M文件 如果数组元素很多,或者元素值要经常改变,我们可以采用M文件来输入和保存数组。例例3.2例例3.3(mydata.m)二维数组的访问二维数组的访问二维数组的访问遵循以下约定:用下标方式访问数组元素,下标要用一对圆形括号()引起来。可以用双下标方式访问数组元素,格式为(r,c),其中r为二维数组的行下标,c为二维数组的列下标,下标之间用逗号分隔。可以用单下标方式访问二维数组,
8、二维数组的单下标是按照列优先规则排序的,即二维数组被看作是从第一列开始从左到右依次将各列首位连接而成的一维数组,单下标表示元素在这个一维数组中的位置。单下标和双下标具有对应关系可以访问二维数组的某个元素及其子数组,可以对元素和子数组赋值。例例3.4数组操作 标准数组的生成标准数组的生成数组操作数组操作 数组运算 数组运算符数组运算符数组运算函数数组运算函数 矩阵运算 矩阵运算符矩阵运算符矩阵函数矩阵函数 例例3.5例例3.6例例3.8ones功能:生成全1数组,即数组中的元素都为1。格式:Y=ones(n)%生成nn的全1矩阵Y=ones(m1,m2,mk)%生成m1m2mk的全1数组 Y=o
9、nes(size(A)%生成和数组A同样尺寸的全1数组zeros功能:生成全0数组,即数组中的元素都为0。格式:同ones函数rand功能:生成均匀分布随机数组。格式:Y=sand(state,v)%设置随机发生器的初始状态为v,其他同ones函数randn功能:产生正态分布随机数组。格式:同rand函数常用的标准数组magic功能:产生魔方矩阵,不适用于高维数组。格式:M=magic(n)说明:说明:产生nn的魔方矩阵eye功能:产生单位矩阵,即主对角线元素都为1而其他元素都为0的二维数组格式:Y=eye(n),Y=eye(n,m),Y=eys(size(A)Diag功能:产生对角阵,即矩阵
10、的某个对角线元素不全为0,其他元素为0。格式:X=diag(v,k)说明:说明:v为行向量,表示对角线元素。返回返回常用的数组运算符A+B 数组加法运算A-B 数组减法运算A.*B数组相乘,A和B相同位置元素的乘积A./B 数组相除,A和B相同位置元素相除A.p数组各元素求p次幂A#BA、B数组对应元素间进行关系运算ABA、B数组对应元素间进行逻辑运算A.数组转置,非共轭转置sA标量s与数组A运算返回返回常用的数组运算函数三角函数sin,cos,asin,asinh,asec,sect,tan,atan指数对数函数:exp指数函数log自然对数函数log10以10为底的对数函数log2以2为底
11、的对数函数pow22的幂函数sqrt平方根函数复数函数abs绝对值,模angle相角(弧度)imag复数的虚部real复数的实部conj复数的共轭取整函数ceil向+方向取整fix向0方向取整floor向-方向取整round向最近的整数取整常用的矩阵运算A+B矩阵加法A-B矩阵减法A*B矩阵乘法A/B矩阵右除,求xB=A的最小二乘解AB矩阵左除,求Bx=A的最小二乘解Ap矩阵乘方s*A标量s与矩阵A相乘expm(A)矩阵的指数函数logm(A)矩阵的对数函数sqrtm(A)矩阵的平方根函数inv(A)矩阵的逆矩阵返回返回多项式多项式的创建多项式的创建多项式的运算多项式的运算 运算符 关系运算符
12、关系运算符 逻辑运算符逻辑运算符逻辑函数逻辑函数 算术运算符算术运算符 关系运算符关系运算符 小于大于=大于等于=等于!=不等于逻辑运算符逻辑运算符&逻辑与|逻辑或 逻辑非示例示例例例3.9例例3.10例例3.11例例3.12多项式常用运算多项式加减:+-%运算符+-实现多项式的加减法多项式相乘:p=conv(p1,p2)%p为多项式p1和多项式p2的乘积多项式相除:q,r=deconv(p1,p2)%多项式p1除以多项式p2,商多项式为q,余多项式为r多项式求导:dp=polyder(p)%多项式p的导数多项式为dp dp=polyder(p1,p2)%多项式p1和p2乘积的导数多项式为dp
13、 num,den=polyder(p1,p2)%有理分式(p1/p2)的求导后的有理分式为(num/den)多项式求值:pA=polyval(p,A)%多项式p在自变量为A时的值多项式求根:r=roots(p)多项式拟合:p=polyfit(x,y,n)矩阵的特征多项式:p=poly(A)%多项式p为矩阵A的特征多项式返回返回常用逻辑函数any(v)向量v中有非0元素,结果为1,否则为0;结果是行向量all(v)向量v中都是非0元素,结果为1。结果是行向量isequal(A,B)判断是否相等,数组运算ismember(A,B)A的元素是B中的元素,则A相应位置的结果为1,否则为0判断特殊数据的
14、逻辑函数isempty isfinite isinf isletter isnan isprime isreal isspace判断数据类型的逻辑函数iscell ischar iscellstr isfield isglobal ishandle islogicalisnumeric isobject issparse isstruct返回返回4.数据的可视化 图形窗口创建图形窗口创建Figure%创建新的图形窗口,并将新创建的窗口作为当创建新的图形窗口,并将新创建的窗口作为当前绘图窗口。前绘图窗口。subplot(m,n,p)%将当前图形窗口分为将当前图形窗口分为m行行n列个子窗口,并指定
15、列个子窗口,并指定第第p个子窗口为当前的绘图子窗口。子窗口序个子窗口为当前的绘图子窗口。子窗口序号号p是是按照行优先按照行优先的次序排列的。的次序排列的。例例4.1二维图形二维图形基本二维绘图函数基本二维绘图函数 plot(y)plot(x,y)plot(x1,y1,x2,y2,)绘图属性控制绘图属性控制plot(x,y,color_linestyle_marker)参数参数color_linestyle_marker为由颜色、线型、为由颜色、线型、数据点等组成的字符串数据点等组成的字符串绘图窗口的属性控制绘图窗口的属性控制例例4.3例例4.2例例4.4例例4.5颜色字符定义表颜色字符定义表字
16、符定义字符定义颜色颜色字符定义字符定义颜色颜色y yyellowyellow(黄)(黄)m mmagentamagenta(洋红)(洋红)c ccyancyan(青)(青)r rredred(红)(红)g ggreengreen(绿)(绿)b bblueblue(兰)默认(兰)默认w wwhitewhite(白)(白)k kblackblack(黑)(黑)线型字符定义表线型字符定义表字符定义字符定义线型线型字符定义字符定义线型线型-实线(默认)实线(默认)-虚线虚线:点划线点划线-.-.点连线点连线nonenone无线无线数据点标记字符定义表数据点标记字符定义表字符定字符定义义数据点数据点标记
17、标记字符定字符定义义颜颜色色+加号加号 反勾号反勾号v v勾号勾号 大于号大于号 小于号小于号o o小小圆圆圈圈*星号星号.小黑点小黑点x x叉号叉号pentagram pentagram 五角星五角星square square 小正方形小正方形hexagram hexagram 六角星六角星diamonddiamond菱形菱形nonenone无无标记标记常用二维图形绘制函数表常用二维图形绘制函数表绘制函数绘制函数意义意义调用格式调用格式bar()bar()条形图条形图bar(x,y)bar(x,y)compass()compass()罗盘图罗盘图compass(x,y)compass(x,y
18、)contour()contour()等高线图等高线图contour(x,y,z)contour(x,y,z)errorbar()errorbar()误差限图误差限图errorbar(x,y,l,u)errorbar(x,y,l,u)hist()hist()直方图直方图hist(x,y)hist(x,y)stairs()stairs()阶梯图阶梯图stairs(x,y)stairs(x,y)pie()pie()饼图饼图pie(y)pie(y)polar()polar()极坐标图极坐标图polar(x,y)polar(x,y)loglog()loglog()对数图对数图loglog(x,y)lo
19、glog(x,y)semilogx()semilogx()semilogy()semilogy()半对数图半对数图semilogx(x,y)semilogx(x,y)semilogy(x,y)semilogy(x,y)例例4.6三维图形三维图形基本三维图形的绘制基本三维图形的绘制plot3(X,Y,Z,s)三维网线图三维网线图 mesh(X,Y,Z)曲面图曲面图surf(X,Y,Z,C)函数绘图函数绘图 一元函数绘图一元函数绘图ezplot(F,xmin,ymin)二元函数绘图二元函数绘图ezsurf(F,domain,ngrid)%在指定矩形区域上,用指定格点数画二元函数曲面在指定矩形区域上
20、,用指定格点数画二元函数曲面ezsurf(F,domain,circ)%在极坐标中绘制二元函数曲面在极坐标中绘制二元函数曲面例4.7设某参数方程组为试绘制由变量x,y,z确定的三维曲线。例例4.7例4.8 绘制函数在自变量取范围内的网线图和曲面图。例例4.8例4.9 绘制球面,锥面等图形例例4.9例4.10 绘制在0t20区间的函数曲线。例4.11 在极坐标系中绘制的图形。例例4.10例例4.115.M文件和程序设计文件和程序设计分支控制分支控制程序控制语句程序控制语句if结构结构ifexpressioncommandsend【说明说明】当表达式当表达式expression的值为真,则执行的值
21、为真,则执行commands语句组,否则跳过语句组,否则跳过commands语句组,语句组,执行执行end之后的语句。之后的语句。if-else结构结构ifexpressioncommands1elsecommands2end【说明说明】如果表达式如果表达式expression的值为真,则执行的值为真,则执行语句组语句组command1,然后跳过语句组,然后跳过语句组command2向向下执行;若表达式下执行;若表达式expression的值为假,则跳过语的值为假,则跳过语句组句组commands1而执行语句组而执行语句组commands2。if-elseif-else结构结构ifexpres
22、sion_1command_1elseifexpression_2command_2elseifexpression_ncommand_nelsecommand_elend【说明说明】如果表达式如果表达式expression_1的值为真,则执行语句组的值为真,则执行语句组command_1,若表达式,若表达式expression_1的值为假,则判断的值为假,则判断expression_2的值,若为真,则执行语句组的值,若为真,则执行语句组command_2,否,否则向下继续判断表达式。如果所有表达式都为假,则执行语句则向下继续判断表达式。如果所有表达式都为假,则执行语句组组command_el
23、。例例5.1 有分段函数有分段函数编编程程输输入入x的的值值,计计算并算并显显示函数示函数值值。例例5.1switch-case结构switchexp_constcasevalue_1commands_1casevalue_2commands_2 casevalue_ncommands_notherwisecommands_owend【说明】表达式exp_const的值和哪一个case语句后的测试值相等,就执行那个case语句下的语句组。如果exp_const和所有测试值都不相等,就执行otherwise后的语句组commands_ow。循环控制循环控制for循环循环for x=Arrayco
24、mmandsend【说明】【说明】x称为循环变量,称为循环变量,commands称为循环体。循环的执行称为循环体。循环的执行步骤是:循环变量从左到右依次取步骤是:循环变量从左到右依次取Array数组的一列,每数组的一列,每取一列就执行一次循环体,循环体被执行的次数为取一列就执行一次循环体,循环体被执行的次数为Array的列数。的列数。while循环循环while expressioncommandsend【说明】【说明】如果表达式如果表达式expression的值为真,则执行的值为真,则执行commands循循环体,直到表达式环体,直到表达式expression的值为假,结束循环。的值为假,结
25、束循环。break【说明】【说明】从循环体中跳出,并使循环结束。从循环体中跳出,并使循环结束。例例5.2:输入物品的标签号码,显示物品的种类。其中输入物品的标签号码,显示物品的种类。其中标签号码为标签号码为1、5、7的物品为食品,号码为的物品为食品,号码为10到到19的物的物品为办公用品,号码为品为办公用品,号码为20、24、28的为音像制品。要的为音像制品。要求不断从键盘输入标签号码,输入一个号码显示一次求不断从键盘输入标签号码,输入一个号码显示一次物品种类,输入错误号码要给出提示,输入号码物品种类,输入错误号码要给出提示,输入号码0则结则结束输入。束输入。例例5.2命令文件命令文件 命令文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 语言 应用
限制150内