1、2023-4-27控制科学与工程系1第二章第二章 MATLAB MATLAB 程序设计程序设计2023-4-27控制科学与工程系2一、简介一、简介 MATLABMATLAB是是Matrix LaboratoryMatrix Laboratory的缩写。除具备卓越的数值计算能力外,它还提的缩写。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLABMATLAB的基本数据单位是矩阵,它的指令表达式与数学的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十工程中常用的
2、形式十分相似分相似,故用故用MATLABMATLAB来解算问题要比用来解算问题要比用C,FORTRANC,FORTRAN等语言完相同的事情简捷得多等语言完相同的事情简捷得多 当前流行的当前流行的MATLAB 7.0/Simulink 4.0MATLAB 7.0/Simulink 4.0包括拥有数百个内部函数的主包和三十包括拥有数百个内部函数的主包和三十几种工具包几种工具包(Toolbox).(Toolbox).工具包又可以分为功能性工具包和学科工具包工具包又可以分为功能性工具包和学科工具包.功能工功能工具包用来扩充具包用来扩充MATLABMATLAB的符号计算的符号计算,可视化建模仿真可视化建
3、模仿真,文字处理及实时控制等功能文字处理及实时控制等功能.学科工具包是专业性比较强的工具包学科工具包是专业性比较强的工具包,控制工具包控制工具包,信号处理工具包信号处理工具包,通信工具通信工具包等都属于此类包等都属于此类.开放性使开放性使MATLABMATLAB广受用户欢迎广受用户欢迎.除内部函数外除内部函数外,所有所有MATLABMATLAB主包文件和各种工具主包文件和各种工具包都是可读可修改的文件包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造用户通过对源程序的修改或加入自己编写程序构造新的专用工具包新的专用工具包.2023-4-27控制科学与工程系3二、语言特点二、语
4、言特点 语言简洁紧凑,使用方便灵活。语言简洁紧凑,使用方便灵活。例如:例如:A=1 2 3;4 5 6;7 8 9一条语句实现了对一条语句实现了对3x3矩阵的输入。矩阵的输入。数值算法稳定可靠,库函数十分丰富。数值算法稳定可靠,库函数十分丰富。例如:例如:polyder(b)%求多项式求多项式b的微分的微分 运算符丰富。运算符丰富。例如:例如:C=A*B%矩阵的乘法,矩阵的乘法,x=Ab%求求Axb的最小二乘解的最小二乘解 Matlab既具有结构化的控制语句既具有结构化的控制语句(if、for、while)又支持面向对象的程又支持面向对象的程序设计。序设计。2023-4-27控制科学与工程系4
5、 语法限制不严格,程序设计自由度大。语法限制不严格,程序设计自由度大。例如:在例如:在MATLAB里可以不用先定义或声明变量就可以使用它们里可以不用先定义或声明变量就可以使用它们 程序的可移植性好。程序的可移植性好。Matlab的图形功能强大,支持数据的可视化操作,方便的显示程序的的图形功能强大,支持数据的可视化操作,方便的显示程序的运行结果。运行结果。强大的工具箱。强大的工具箱。例如:控制领域可以使用的工具箱就有例如:控制领域可以使用的工具箱就有Control System(控制工具箱控制工具箱)源程序的开发性,系统的可扩充能力强。源程序的开发性,系统的可扩充能力强。Matlab是解释执行语
6、言。是解释执行语言。Matlab程序不用编译生成可执行文件就可以运行程序不用编译生成可执行文件就可以运行 2023-4-27控制科学与工程系5三、三、Matlab集成环境的组成集成环境的组成 Matlab语言语言 Matlab工作环境工作环境包括程序编辑器、变量查看器、系统仿真器。包括程序编辑器、变量查看器、系统仿真器。Matlab图形系统图形系统用用Matlab的句柄图形,可以实现二维、三维数据的可视化、图象处的句柄图形,可以实现二维、三维数据的可视化、图象处理,可以完全或局部修改图形窗口,还可以方便的设计图形界面。理,可以完全或局部修改图形窗口,还可以方便的设计图形界面。Matlab数学函
7、数库数学函数库 Matlab API(Application Program Interface)2023-4-27控制科学与工程系6四、四、Matlab软件的基本使用方法软件的基本使用方法命令窗口命令窗口 工作空间工作空间 历史命令历史命令 当前路径当前路径 2023-4-27控制科学与工程系7(1)命令窗口命令窗口 Matlab的命令窗口可以执行任何的命令窗口可以执行任何Matlab命令和函数。命令和函数。主要功能主要功能 操作操作M文件文件(打开、新建、运行、保存打开、新建、运行、保存)操作操作MDL文件文件 运行运行Matlab程序程序 运行外部应用程序运行外部应用程序(2)程序编辑程
8、序编辑/调试器调试器 Matlab内置了一个程序的编辑内置了一个程序的编辑/调试器调试器2023-4-27控制科学与工程系8主要功能主要功能 建立、编辑、存储建立、编辑、存储M M文件文件 可以运行程序可以运行程序 调试调试(断点、单步、跟踪、查看断点、单步、跟踪、查看)程序程序设设置置断断点点取消取消断点断点单步单步运行运行进入进入函数函数跳出跳出函数函数退出退出调试调试继续继续运行运行2023-4-27控制科学与工程系9(3)变量查看器变量查看器 在在MATLAB中,工作空间中,工作空间(Workspace)是一个重要的、比是一个重要的、比较抽象的概念。较抽象的概念。工作空间指运行工作空间
9、指运行MATLAB的程序或命令所生成的所有变量的程序或命令所生成的所有变量和和MATLAB提供的常量构成的空间。提供的常量构成的空间。工作空间的特点工作空间的特点 工作空间在工作空间在MATLAB运行期间一直存在运行期间一直存在 关闭关闭MATLAB后工作空间自动消失后工作空间自动消失2023-4-27控制科学与工程系10查看查看变量变量删除删除变量变量2023-4-27控制科学与工程系11 MATLABMATLAB的工作空间包含了一组可以在命令窗口中调整(调的工作空间包含了一组可以在命令窗口中调整(调用)的参数用)的参数who:显示当前工作空间中所有变量的一个简单列表:显示当前工作空间中所有
10、变量的一个简单列表whos:列出变量的大小、数据格式等详细信息列出变量的大小、数据格式等详细信息clear:清除工作空间中所有的变量:清除工作空间中所有的变量clear 变量名:清除指定的变量变量名:清除指定的变量 保存和载入保存和载入workspaceworkspace(1 1)save filename variables将变量列表将变量列表variables所列出的变量保存到磁盘文件所列出的变量保存到磁盘文件filename中中2023-4-27控制科学与工程系12Variables所表示的变量列表中,不能用逗号,各个不同的变量之所表示的变量列表中,不能用逗号,各个不同的变量之间只能用空
11、格来分隔。间只能用空格来分隔。未列出未列出variables时,表示将当前工作空间中所有变量都保持到磁时,表示将当前工作空间中所有变量都保持到磁盘文件中。盘文件中。缺省的磁盘文件扩展名为缺省的磁盘文件扩展名为“.mat”,可以使用,可以使用“-”定义不同的存储定义不同的存储格式(格式(ASCII、V4等)等)(2 2)load filename variables将以前用将以前用savesave命令保存的变量命令保存的变量variablesvariables从磁盘文件中调入从磁盘文件中调入MATLABMATLAB工作空间。工作空间。用用load load 命令调入的变量,其名称为用命令调入的变
12、量,其名称为用savesave命令保存时的名称,取命令保存时的名称,取值也一样。值也一样。2023-4-27控制科学与工程系13Variables所表示的变量列表中,不能用逗号,各个不同的变量之所表示的变量列表中,不能用逗号,各个不同的变量之间只能用空格来分隔。间只能用空格来分隔。未列出未列出variables时,表示将磁盘文件中所有变量都调入工作空间时,表示将磁盘文件中所有变量都调入工作空间。退出工作空间退出工作空间quit 或或 exit(4)图形窗口图形窗口 在图形窗口上可以进行绘制曲线、显示文本、填充颜色等在图形窗口上可以进行绘制曲线、显示文本、填充颜色等操作。操作。用用figure命
13、令建立新的图形窗口。命令建立新的图形窗口。2023-4-27控制科学与工程系14 可以用绘图语句自动创建图形窗口并在上面绘图,如可以用绘图语句自动创建图形窗口并在上面绘图,如plot命令。命令。编辑编辑模态模态添加添加文本文本添加添加箭头箭头添加添加线段线段旋转旋转三维三维图形图形2023-4-27控制科学与工程系15(5)文件管理文件管理 文件管理的命令,包括列文件名、显示或删除文件、显示文件管理的命令,包括列文件名、显示或删除文件、显示或改变当前目录等。或改变当前目录等。what:显示当前目录下所有与:显示当前目录下所有与matlab相关的文件及它们的路径。相关的文件及它们的路径。dir:
14、显示当前目录下所有的文件:显示当前目录下所有的文件which:显示某个文件的路径:显示某个文件的路径cd path:由当前目录进入:由当前目录进入path目录目录cd:显示当前目录:显示当前目录type filename:在命令窗口中显示文件:在命令窗口中显示文件filenamedelete filename:删除文件:删除文件filename2023-4-27控制科学与工程系16(6)帮助系统帮助系统 help命令,在命令窗口中显示命令,在命令窗口中显示MATLBAMATLBA的所有函数都是以逻辑群组方式进行组织的,而的所有函数都是以逻辑群组方式进行组织的,而MATLABMATLAB的目的目
15、录结构就是以这些群组方式来编排的。录结构就是以这些群组方式来编排的。help 函数名函数名/文件名文件名%显示相关函数显示相关函数/文件的帮助体文件的帮助体help matfun:矩阵函数数值:矩阵函数数值线性代数线性代数help general:通用命令:通用命令help graphics:通用图形函数:通用图形函数help elfun:基本的数学函数:基本的数学函数help elmat:基本矩阵和矩阵操作:基本矩阵和矩阵操作2023-4-27控制科学与工程系17help datafun:数据分析和傅立叶变换函数:数据分析和傅立叶变换函数help ops:操作符和特殊字符操作符和特殊字符he
16、lp polyfun:多项式和内插函数:多项式和内插函数help lang:语言结构和调试:语言结构和调试help strfun:字符串函数:字符串函数help control:控制系统工具箱函数:控制系统工具箱函数 helpwin:帮助窗口:帮助窗口 helpdesk:帮助桌面,浏览器模式:帮助桌面,浏览器模式 lookfor 函数名函数名/文件名文件名%显示相关函数显示相关函数/文件的文件的H1行行 demo:打开示例窗口:打开示例窗口2023-4-27控制科学与工程系18五、五、Matlab编程基础编程基础(1)Matlab初学者常用的编程知识、规则初学者常用的编程知识、规则可以在可以在
17、MATLAB命令窗口键入一个命令,也可以由命令窗口键入一个命令,也可以由Matlab定义的语言编写一个或多个应用程序,然后在定义的语言编写一个或多个应用程序,然后在MATLAB环境下返回运算结果。环境下返回运算结果。MATLAB以复数矩阵为基本的运算单元,既可以对它整以复数矩阵为基本的运算单元,既可以对它整体进行处理,也可以对它的某个或某些元素进行单独处理体进行处理,也可以对它的某个或某些元素进行单独处理操作起来比较方便。操作起来比较方便。2023-4-27控制科学与工程系19(2)MATLAB最基本的语句是赋值语句,其结构为:最基本的语句是赋值语句,其结构为:变量名列表变量名列表=表达式表达
18、式 其中等号左边的变量名列表为其中等号左边的变量名列表为MATLAB语句的返回值,若语句的返回值,若一次返回多个结果,则变量列表用一次返回多个结果,则变量列表用 括起来,各变量间用括起来,各变量间用逗号分隔逗号分隔;等号右边为表达式,可以是矩阵运算或函数调;等号右边为表达式,可以是矩阵运算或函数调用,可以由用,可以由分号分号(;)、逗号逗号(,)或或回车回车结束。结束。如果希望结果不被显示,只要在语句之后加上一个如果希望结果不被显示,只要在语句之后加上一个分号分号(;)(;)即可。此时尽管结果没有显示,但它依然被赋值并在即可。此时尽管结果没有显示,但它依然被赋值并在MATLABMATLAB工作
19、空间中分配了内存。工作空间中分配了内存。2023-4-27控制科学与工程系20(3)变量不需要定义就可以直接使用和赋值。变量不需要定义就可以直接使用和赋值。例如:例如:A=1,2;3,4%定义并输入一个定义并输入一个2x2的矩阵的矩阵 str=Hello%定义并输入一个字符串定义并输入一个字符串(字符数组字符数组)矩阵的每行中的各个元素用逗号或者空格分隔,行于行之矩阵的每行中的各个元素用逗号或者空格分隔,行于行之间用分号分隔;字符串用单引号定义。间用分号分隔;字符串用单引号定义。(4)输入、输出函数输入、输出函数 Ainput(提示信息,选项提示信息,选项)例如:例如:Ainput(Enter
20、 matrix A=)2023-4-27控制科学与工程系21 disp(A)例如:例如:Ahello;disp(A)A=1,2,3;4,5,6;7,8,9;disp(A)(5)(5)命令行编辑器命令行编辑器 方向键和控制键可以编辑修改已输入的命令方向键和控制键可以编辑修改已输入的命令 :回调上一行命令:回调上一行命令 :回调下一行命令:回调下一行命令2023-4-27控制科学与工程系22 多行命令(多行命令()如果命令语句超过一行或者太长希望分行输入,则可以使用多行命如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继续输入。令继续输入。S=1-12+13+4+S=1-12+13+4
21、+9-4-18;9-4-18;2023-4-27控制科学与工程系23一、变量一、变量(1)(1)变量命名规则变量命名规则必须以字母开头;必须以字母开头;可以由字母、数字和下划线混合组成;可以由字母、数字和下划线混合组成;变量长度应不大于变量长度应不大于3131个;个;字母区分大小写。字母区分大小写。(2)特殊变量特殊变量变量名称 功能 变量名称 功能 ans 保存最后一次的运算结果 pi 圆周率 realmax 最大的浮点数值 realmin 最小的浮点数值 I 虚数单位 j 虚数单位 Inf 正无穷大 NaN 非数(0/0,Inf/Inf)2023-4-27控制科学与工程系24(3)变量操作
22、变量操作在命令窗口中,同时存储着输入的命令和创建的所有变量值,它们在命令窗口中,同时存储着输入的命令和创建的所有变量值,它们可以在任何需要的时候被调用。如要察看变量可以在任何需要的时候被调用。如要察看变量a的值,只需要在命的值,只需要在命令窗口中输入变量的名称即可:令窗口中输入变量的名称即可:a二、数值显示格式二、数值显示格式 任何任何MATLAB的语句的执行结果都可以在屏幕上显示,同的语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量的变量ans,数据的显示格式由,数据的显示格式由format命令控制
23、。命令控制。format只是影响结果的显示,不影响其计算与存储;只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)执行所有运算。总是以双字长浮点数(双精度)执行所有运算。2023-4-27控制科学与工程系25 如果结果为整数,则显示没有小数;如果结果不是整数,如果结果为整数,则显示没有小数;如果结果不是整数,则输出形式有:则输出形式有:format(short):短格式(:短格式(5位定点数)位定点数)99.1253format long:长格式(:长格式(15位定点数位定点数 99.12345678900000format short e:短格式:短格式e方式方
24、式 9.9123e+001format long e:长格式:长格式e方式方式 9.912345678900000e+001format bank:2位十进制位十进制 99.12format hex:十六进制格式:十六进制格式2023-4-27控制科学与工程系26三、数据类型三、数据类型 在在MATLABMATLAB里共有六种数据类型,每一种类型可以是一维、里共有六种数据类型,每一种类型可以是一维、二维和多维的。二维和多维的。双精度型(双精度型(doubledouble)字符型(字符型(charchar)稀疏型(稀疏型(sparsesparse)存储型(存储型(storagestorage)细
25、胞型(细胞型(cellcell)结构型(结构型(structstruct)2023-4-27控制科学与工程系27(1)字符型字符型 基本规则:基本规则:所有字符串都用单引号括起来;所有字符串都用单引号括起来;字符串中的每一个字符都是该字符串变量中的一个元素;字符串中的每一个字符都是该字符串变量中的一个元素;字符串中的字符以字符串中的字符以ASC码形式存储,因而区分大小写。码形式存储,因而区分大小写。常用操作方法:常用操作方法:建立:常用函数有建立:常用函数有char、int2str、num2str等。等。连接:水平连接通过函数连接:水平连接通过函数strcat或在中括号内用逗号连接;垂直连或在
26、中括号内用逗号连接;垂直连接通过函数接通过函数strvcat或在中括号内用分号连接。或在中括号内用分号连接。比较:常用函数比较:常用函数strcmp,相同则返回相同则返回1,否则为,否则为0。查找:常用函数查找:常用函数findstr。2023-4-27控制科学与工程系28a=hello b=goodbyestrcat(a,b)ans=hellogoodbyea,bans=hellogoodbyet1=first;t2=string;t3=matrix;t4=second;S1=strvcat(t1,t2,t3)S2=t4;t2;t3S1=S2=first secondstring strin
27、gmatrix matrixstrcmp(Yes,Yes)ans=1strcmp(Yes,No)ans=02023-4-27控制科学与工程系29四、运算符四、运算符(1)(1)算术运算符算术运算符 按照运算符的优先级可把算术运算符分为五级,在每一级按照运算符的优先级可把算术运算符分为五级,在每一级里运算符有同样的优先级,在运算时自左向右结合里运算符有同样的优先级,在运算时自左向右结合+加加.数组幂数组幂-减减左除或反斜杠左除或反斜杠*矩阵乘法矩阵乘法/右除或斜杠右除或斜杠.*数组乘法数组乘法./数组除数组除矩阵幂矩阵幂:冒号冒号2023-4-27控制科学与工程系30(2)(2)关系运算符关系运
28、算符 在在MATLABMATLAB里共有六个关系运算符里共有六个关系运算符 大于大于 =大于等于大于等于 =等于等于 -=-=不等于不等于 关系运算符将生成一个关系运算符将生成一个0-10-1矩阵,当运算数相应元素为真时矩阵,当运算数相应元素为真时对应位置上生成对应位置上生成1 1,否则为,否则为0 0。2023-4-27控制科学与工程系31例:例:假设有:假设有:A=1 2-1-5 B=0 2 3 1 小于小于 AB ans=0 0 1 1 A 大于大于 AB ans=1 0 0 0 A1 ans=0 1 0 0=小于等于小于等于 A=大于等于大于等于 A=B ans=1 1 0 0 =等于
29、等于 A=B ans=0 1 0 0 ;A=1 ans=1 0 0 0=不等于不等于 A=B ans=1 0 1 1;A=1 ans=0 1 1 12023-4-27控制科学与工程系32一、循环语句一、循环语句 MATLAB中的循环语句包括中的循环语句包括for和和while两种类型。两种类型。(1)for循环循环for循环的基本格式为:循环的基本格式为:for 循环变量循环变量=起始值:步长:终止值起始值:步长:终止值循环体循环体end步长的缺省值是步长的缺省值是1。步长可以在正实数或负实数范围内任意指定,。步长可以在正实数或负实数范围内任意指定,对于正数,循环变量的值大于终止值时,循环结束
30、;对于负数,循对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束循环结构可以嵌套使用。环变量的值小于终止值时,循环结束循环结构可以嵌套使用。书写格式不必太过于拘泥,在书写格式不必太过于拘泥,在Editor编辑器中会自动进行处理。编辑器中会自动进行处理。example2023-4-27控制科学与工程系33(2)while循环循环while循环的基本格式为:循环的基本格式为:while 表达式表达式循环体循环体end若表达式为真,则执行循环体的内容,执行后再判断表达式是否为若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若为假则跳出循环体,向下
31、继续执行,否则继续执行循环体。真,若为假则跳出循环体,向下继续执行,否则继续执行循环体。例:例:exp2_12.mexp2_12.mWhileWhile循环和循环和forfor循环的区别在于,循环的区别在于,whilewhile循环结构的循环体被执行循环结构的循环体被执行的次数不是确定的,而的次数不是确定的,而forfor结构中循环体的执行次数是确定的。结构中循环体的执行次数是确定的。(3)Break:从循环体中跳出,并使循环结束。从循环体中跳出,并使循环结束。2023-4-27控制科学与工程系34二、选择语句二、选择语句(1)ifelseelseif 语句语句 if 格式格式if 逻辑表达式
32、逻辑表达式执行语句执行语句end当逻辑表达式的值为真,则执行该结构中的执行语句内容,执行完当逻辑表达式的值为真,则执行该结构中的执行语句内容,执行完后向下继续执行,若逻辑表达式的值为假,跳过结构中的执行语句后向下继续执行,若逻辑表达式的值为假,跳过结构中的执行语句继续向下执行。继续向下执行。2023-4-27控制科学与工程系35 if-else 格式格式if 逻辑表达式逻辑表达式执行语句执行语句1else执行语句执行语句2end如果逻辑表达式的值为真,则执行语句如果逻辑表达式的值为真,则执行语句1,然后跳过语句,然后跳过语句2向下执行向下执行若逻辑表达式的值为假,则跳过执行语句若逻辑表达式的值
33、为假,则跳过执行语句1而执行语句而执行语句2,然后向下,然后向下执行。执行。2023-4-27控制科学与工程系36 if-elseif 格式格式if 逻辑表达式逻辑表达式1执行语句执行语句1elseif 逻辑表达式逻辑表达式2执行语句执行语句2elseif 逻辑表达式逻辑表达式n执行语句执行语句n else执行语句执行语句el end如果逻辑表达式的值为真,则执行语句如果逻辑表达式的值为真,则执行语句1,若逻辑表达式的值为假,若逻辑表达式的值为假则判断逻辑表达式则判断逻辑表达式2的值,若为真,则执行语句的值,若为真,则执行语句2,否则向下执行,否则向下执行,若所有表达式均为假,执行语句若所有表
34、达式均为假,执行语句el。例例exp2_13.m exp2_13_.m2023-4-27控制科学与工程系37(2)switch 语句语句switch语句的格式为:语句的格式为:switch 表达式(标量或字符串)表达式(标量或字符串)case 值值1语句语句1case 值值2语句语句2case 值值n语句语句notherwise语句语句owend 表达式的值和哪种情况(表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,如)的值相同,就执行哪种情况中的语句,如果都不同,则执行果都不同,则执行otherwise中的语句。中的语句。格式中也可以不包括格式中也可以不包括otherwis
35、eotherwise,这时如果表达式的值与列出的各种情况,这时如果表达式的值与列出的各种情况都不相同,则继续向下执行。都不相同,则继续向下执行。2023-4-27控制科学与工程系38一、矩阵输入一、矩阵输入(1)(1)在命令窗口中输入在命令窗口中输入 在在MATLABMATLAB中不必描述矩阵的维数和类型,而由输入的格式中不必描述矩阵的维数和类型,而由输入的格式和内容来决定。和内容来决定。输入小矩阵最简单的方法:把矩阵的元素直接排列到输入小矩阵最简单的方法:把矩阵的元素直接排列到方括方括号号()()中。每行内的元素间用中。每行内的元素间用空格空格(space)(space)或或逗号逗号(,)分
36、开分开,行与行的内容间用,行与行的内容间用分号分号(;)隔开。隔开。矩阵生成不但可以使用纯数字(含复数),也可以使用变矩阵生成不但可以使用纯数字(含复数),也可以使用变量(或者说采用一个表达式)。量(或者说采用一个表达式)。大的矩阵可以用分行输入,回车键代表分号。大的矩阵可以用分行输入,回车键代表分号。2023-4-27控制科学与工程系39例:例:(2)语句生成语句生成 用线性等间距生成向量矩阵(用线性等间距生成向量矩阵(start:step:end)start为起始值为起始值step为步长,步长为为步长,步长为1时可省略时可省略step参数;另外参数;另外step也可以取负数也可以取负数en
37、d为终止值为终止值y=2,4,53 6 8y=2 4 5 3 6 8a=1;b=2;c=3;x=5 b c;a*b a+c c/bx=5.000 2.000 3.000 2.000 4.000 1.5002023-4-27控制科学与工程系40例:例:a=1:2:10a=1 3 5 7 9 a=linspace(n1,n2,n)在线性空间上,行矢量的值从在线性空间上,行矢量的值从n1到到n2,数据个数为,数据个数为n,缺省,缺省n为为100例:例:a=linspace(1,10,10)a=1 2 3 4 5 6 7 8 9 102023-4-27控制科学与工程系41 a=logspace(n1,
38、n2,n)在对数空间上,行矢量的值从在对数空间上,行矢量的值从10n1到到10n2,数据个数为,数据个数为n,缺省,缺省n为为50。这个指令为建立对数频域轴坐标提供了方便。这个指令为建立对数频域轴坐标提供了方便。例:例:a=logspace(1,3,3)a=10 100 1000 特殊矩阵的生成特殊矩阵的生成单位矩阵单位矩阵 eye(n)%生成生成n维单位阵维单位阵 eye(m,n)%生成生成mn的单位阵的单位阵2023-4-27控制科学与工程系42eye(m,n)%生成生成mn的单位阵的单位阵eye(size(A)%生成与生成与A矩阵同样大小的单位阵矩阵同样大小的单位阵全全1矩阵矩阵ones
39、(n)ones(m,n)ones(m,n)ones(size(A)全全0矩阵矩阵zeros(n)zeros(m,n)zeros(m,n)zeros(size(A)随机矩阵随机矩阵rand(n)rand(m,n)rand(m,n)rand(size(A)生成的随机矩阵的各个元素值在生成的随机矩阵的各个元素值在0 0和和1 1之间。之间。2023-4-27控制科学与工程系43eye(2,3)ans=1 0 0 0 1 0zeros(2,3)ans=0 0 0 0 0 0ones(2,3)ans=1 1 1 1 1 1eye(2)ans=1 0 0 1zeros(2)ans=0 0 0 0ones(
40、2)ans=1 1 1 12023-4-27控制科学与工程系44二、下标引用二、下标引用(1)(1)矩阵下标矩阵下标 用两个下标来表示。第用两个下标来表示。第i i行行j j列的元素用列的元素用A(i,j)A(i,j)来表示来表示 在下标的表达式中使用冒号表示矩阵的一部分。在下标的表达式中使用冒号表示矩阵的一部分。下标引用从序号下标引用从序号1 1开始。开始。例:例:A(:,n):A(m,:):A(m1:m2,n1:n2):提取第提取第n列元素列元素提取第提取第m行元素行元素提取第提取第m1行到第行到第m2行和第行和第n1列到列到 第第n2列的所有元素(提取子块)。列的所有元素(提取子块)。2
41、023-4-27控制科学与工程系45A(:):(2)矩阵的组合矩阵的组合 即把小矩阵组合成大矩阵,组合符号为中括号即把小矩阵组合成大矩阵,组合符号为中括号。例:例:A=1 2;3 4;B=5 6;7 8;C=A B C=A;BC=A B C=A;B C=C=C=C=1 2 5 6 1 2 1 2 5 6 1 2 3 4 7 8 3 4 3 4 7 8 3 4 5 6 5 6 7 8 7 8得到一个长列矢量,该矢量的元素按矩阵的列进行得到一个长列矢量,该矢量的元素按矩阵的列进行 排列。排列。2023-4-27控制科学与工程系46(3)矩阵的抽取矩阵的抽取 用下标可以从大矩阵里面抽取某些元素组成小
42、的矩阵。用下标可以从大矩阵里面抽取某些元素组成小的矩阵。例:例:A=1 2 3;4 5 6;7 8 9;B=A(1,1),A(2,3)B=1 6(4)删除矩阵的行和列删除矩阵的行和列 把空的把空的 称为空矩阵,即矩阵大小为称为空矩阵,即矩阵大小为00。可以通过把矩。可以通过把矩阵的行或列赋值为空矩阵来删除某行或某列。阵的行或列赋值为空矩阵来删除某行或某列。2023-4-27控制科学与工程系47例:例:X%将一个将一个00的矩阵赋给的矩阵赋给X A(:(:,2 4)=%将将A的第二列和第四列删除的第二列和第四列删除 A(:,2)=%删除矩阵删除矩阵A的第二列的第二列(5)矩阵扩展矩阵扩展如果在原
43、矩阵中一个不存在的地址位置上设定一个数(赋如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。个数,而且在其他没有指定的位置补零。2023-4-27控制科学与工程系48三、矩阵运算三、矩阵运算 +;-;*;和和/;.*;.;././;.(1)(1)矩阵的加减矩阵的加减 使用、运算符,并满足以下两个条件之一:使用、运算符,并满足以下两个条件之一:类型相同,即行数相等,且列数相等。类型相同,即行数相等,且列数相等。其中一个为标量,则矩阵中每一个元素都和标量做加减运算
44、。其中一个为标量,则矩阵中每一个元素都和标量做加减运算。(2)(2)矩阵的乘积矩阵的乘积 使用使用*运算符,必须满足维数条件。只有当两个矩阵中前一运算符,必须满足维数条件。只有当两个矩阵中前一个矩阵的列数和后一个矩阵的行数相同时,才可以进行乘个矩阵的列数和后一个矩阵的行数相同时,才可以进行乘法运算。法运算。2023-4-27控制科学与工程系49(3)(3)矩阵的除法矩阵的除法 除法运算的意义相当于矩阵的求逆运算。除法运算的意义相当于矩阵的求逆运算。定义了矩阵的左除及右除。定义了矩阵的左除及右除。矩阵的左除:矩阵的左除:“”,AB 即求线性方程即求线性方程AX=B的解的解,X=A-1B矩阵的右除
45、:矩阵的右除:“/”,A/B是方程是方程XB=A的解的解,X=AB-1(4)(4)矩阵的幂矩阵的幂 只有方阵才可以求幂只有方阵才可以求幂2023-4-27控制科学与工程系50(5)矩阵的点运算矩阵的点运算 两个矩阵之间的点运算是对该矩阵对应元素的直接运算。两个矩阵之间的点运算是对该矩阵对应元素的直接运算。点乘积运算要求矩阵的维数相同。点乘积运算要求矩阵的维数相同。例:例:a=1 2;3 4;b=3 5;5 9c=a+b d=a-bc=d=4 7 -2 -3 8 13 -2 -52023-4-27控制科学与工程系51a*b=13 23;29 51 a/b=-0.50 0.50;3.50 1.50
46、ab=-1-1;2 3 a3=37 54;81 118a.*b=3 10;15 36 a./b=0.33 0.40;0.60 0.44a.b=3.00 2.50;1.67 2.25 a.3=1 8;27 642023-4-27控制科学与工程系52(6)矩阵的转置矩阵的转置“”表示复共轭转置,表示复共轭转置,“.”表示普通转置。表示普通转置。对于实矩阵用(对于实矩阵用()符号或()符号或(.)求转置结果是一样的)求转置结果是一样的对于含复数的矩阵,则(对于含复数的矩阵,则()将同时对复数进行共轭处理)将同时对复数进行共轭处理而而(.)则只是将其排列形式进行转置。)则只是将其排列形式进行转置。a=
47、1 2 3;4 5 6a=1 4 2 5 3 6b=1+2i 2-7ib=1.0000-2.0000i 2.0000+7.0000ib=1+2i 2-7i.b=1.0000+2.0000i 2.0000-7.0000ia=1 2 3;4 5 6.a=1 4 2 5 3 62023-4-27控制科学与工程系53四、矩阵函数四、矩阵函数(1)求逆矩阵,求逆矩阵,要求矩阵必须为要求矩阵必须为方阵方阵 Xinv(A)(2)求矩阵的行列式,要求矩阵求矩阵的行列式,要求矩阵必须为方阵必须为方阵 d=det(A)例:例:a=1 2 3;4 5 6;2 3 5;b=inv(a)b=-2.3333 0.3333
48、 1.0000 2.6667 0.3333 -2.0000 -0.6667 -0.3333 1.0000det(a)ans=-32023-4-27控制科学与工程系54(3)(3)求特征值与特征向量求特征值与特征向量 求解求解A A矩阵的特征值和特征向量,其调用格式为:矩阵的特征值和特征向量,其调用格式为:D Deig(A););V,Deig(A););d d为矩阵为矩阵A A的特征值向量;的特征值向量;求矩阵求矩阵A A的特征向量的特征向量V V及特征值及特征值D D,满足,满足A A*V=VV=V*D D。其中。其中D D的对角线元素为特的对角线元素为特征值,征值,V V的列为对应的特征向量
49、。的列为对应的特征向量。例:例:a=9 8;6 8 v,d=eig(a)v=d=0.7787 -0.7320 15.4462 0 0.6274 0.6813 0 1.55382023-4-27控制科学与工程系55(4)矩阵的尺寸矩阵的尺寸 为了判断矩阵的尺寸,为了判断矩阵的尺寸,Matlab提供了以下函数:提供了以下函数:m,n=size(A)%返回矩阵的行数返回矩阵的行数m和列数和列数n M=size(A)%在矩阵在矩阵M中返回矩阵的行数、列数中返回矩阵的行数、列数 len=length(A)%返回矩阵返回矩阵A行数和列数中的最大值行数和列数中的最大值 rank(A)%求矩阵的秩求矩阵的秩a
50、=1 2 3;3 4 5;m,n=size(a)m=2n=3length(a)ans=3max(size(a)ans=3rank(a)ans=22023-4-27控制科学与工程系56一、图形窗口一、图形窗口 MATLABMATLAB自动将图形画在图形窗口上;自动将图形画在图形窗口上;图形窗口相对于命令窗口是独立的窗口;图形窗口相对于命令窗口是独立的窗口;图形窗口的属性由系统和图形窗口的属性由系统和MATLABMATLAB共同控制。共同控制。二、常用图形窗口命令格式二、常用图形窗口命令格式 figure%建立一个新的图形窗口,并指定为当前窗口用建立一个新的图形窗口,并指定为当前窗口用 于图形输出