书签 分享 收藏 举报 版权申诉 / 121
上传文档赚钱

类型自第二章研究生仿真课MATLAB编程基础课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4527147
  • 上传时间:2022-12-16
  • 格式:PPT
  • 页数:121
  • 大小:1.50MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《自第二章研究生仿真课MATLAB编程基础课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第二 研究生 仿真 MATLAB 编程 基础 课件
    资源描述:

    1、MATLAB教程 基础准备及入门基础准备及入门 -电气工程系研究生总体内容:1、安装、启动(略)2、MATLAB指令窗口操作及规则(适用于各种版本)3、MATLAB最常用的五个交互界面:历史指令窗、当前 目录浏览器、工作空间浏览器、变量编辑器、M文件编辑器4、MATLAB的帮助体系和求助方法MATLAB教程 基础准备及入门之基础准备及入门之窗口操作及规则 -电气工程系研究生 一、窗口MATLAB教程 基础准备及入门基础准备及入门 -电气工程系研究生帮助系统及其使用帮助系统及其使用常用帮助指令常用帮助指令 1、函数搜索指令(知道具体函数名,不知如何使用)、函数搜索指令(知道具体函数名,不知如何使

    2、用)指令窗口帮助系统(在指令窗口显示帮助信息)help 列出所有函数分组名列出所有函数分组名 help TopicName 列出指定名称函数组中的所有函数列出指定名称函数组中的所有函数 help FunName 给出指定名称函数的使用方法给出指定名称函数的使用方法打开帮助系统显示帮助信息 helpwin 列出所有函数分组名列出所有函数分组名 helpwin TopicName 列出指定名称函数组中的所有函数列出指定名称函数组中的所有函数 helpwin FunName 给出指定名称函数的使用方法给出指定名称函数的使用方法更详尽的帮助信息 doc ToolboxName 列出指定名称工具包中的所

    3、有函数名列出指定名称工具包中的所有函数名 doc FunName 给出指定名称函数的使用方法给出指定名称函数的使用方法 操作举例操作举例:barMATLAB教程 基础准备及入门基础准备及入门窗口操作及规则 -电气工程系研究生、二、运行最简单的计算器使用方法最简单的计算器使用方法【例一】在指令窗做如下操作 MATLAB运算符是各种计算程序中常见的习惯符号 一条指令结束后,必须按回车键,该指令才会执行 不含赋值号的表达式的结果赋给MATLAB的一个默认变量ansMATLAB教程 基础准备及入门基础准备及入门窗口操作及规则 -电气工程系研究生、二、运行【例二】指令续行 3个或3个以上的连续黑点表示续

    4、行 包含赋值号=指令执行后,变量S被保存到MATLAB的工作空间(Workspace)中备用。如果不用clear指令清除或重新赋值,则会一直保存在空间中,直到本MATLAB指令窗口关闭为止。MATLAB教程 基础准备及入门基础准备及入门窗口操作及规则 -电气工程系研究生 二、运行【例三】逗号,分号;的使用 以上两种情况都是合法的,左边使用逗号将两个表达式分开,回车后xy的结果都显示,右边使用分号,表示x的结果不显示,只显示y的结果MATLAB教程 基础准备及入门基础准备及入门窗口操作及规则 -电气工程系研究生 二、运行常用标点的意义 空格空格 输入量之间的分隔符(命令窗口会忽略变量之间的这些空

    5、格),输入数组元素之间的分隔符 ,逗号逗号 要显示计算结果与其他命令之间的分隔;输入量之间的分隔符或数组元素之间的分隔符 .点点 在数值计算中,可以作为小数点来使用;在数组运算过程中,可作为元素运算的标示 ;分号分号 在命令行末尾表示在计算结束后不显示计算结果;或在输入数组时,作为数组之间的分隔符 :冒号冒号 在生成一维数组时,可作为分隔符;用作单下标引用时的全部元素构成的全部数列;循环运算 过程中的分隔符%百分号百分号 位于命令行的开头,表示该行为注释行 单引号对单引号对 用于定义字符串 ()圆括号圆括号 改变运算过程中的优先级次序;在函数调用时使用;作为数组的索引 方括号方括号 定义矩阵

    6、花括号花括号 定义单元数组;图形中被控特殊字符括号 -下划线下划线 定义变量、函数或文件时使用的连字符;图形中被控下脚标的签到符号 续行号续行号 当输入命令窗口的命令较长时,可在一行中未完成的命令后输入三个以上的点号,在下一行继 续输入该命令的剩余部分,完成较长命令的输入与执行。“at”号号 放在函数名称前,形成函数句柄;作为匿名函数的前导符 !感叹号感叹号 调用操作系统运算MATLAB教程 基础准备及入门基础准备及入门窗口操作及规则 -电气工程系研究生、二、运行【例四】控制键方向键的使用 在命令出现错误或需要修改时,可点击或调出以前输入的命令,进行修改并回车,回车时可在该行任何位置,不必将光

    7、标移至句末。还可以只输入命令行的少数几个字符,然后使用可以将最后一个以这几个字符开头的命令行调出。MATLAB教程 基础准备及入门基础准备及入门窗口操作及规则 -电气工程系研究生、二、运行常用的命令行控制键:PgUp PgDn Home End Del删左 Backspace 删右 Esc删整行MATLAB教程 基础准备及入门基础准备及入门窗口操作及规则 -电气工程系研究生、二、运行数值、变量和表达式数值、变量和表达式合法的数值表达:合法的数值表达:3 -99 0.001 1.3e-3 4.5e33范围:范围:10-30810308变量名规则:变量名规则:*区分大小写区分大小写 *第一个为英文

    8、字母,最多包含第一个为英文字母,最多包含6363个字符个字符 *不得包含空格、标点、运算符,可包含下连符如不得包含空格、标点、运算符,可包含下连符如my_var_2011my_var_2011是合法的是合法的 *禁忌:不与禁忌:不与MATLABMATLAB关键词(关键词(for,if/else,endfor,if/else,end等等)同名,尽量不与同名,尽量不与MATLABMATLAB自自用的变量名(如用的变量名(如eps,pieps,pi等)、函数名(如等)、函数名(如sin,eigsin,eig等)、文件夹名(如等)、文件夹名(如rtw,toolboxrtw,toolbox等)相同等)相

    9、同 *MATLABMATLAB提供两个判断指令用于判断所用变量名是否犯忌提供两个判断指令用于判断所用变量名是否犯忌 iskeyword UserNameiskeyword UserName 运行结果为运行结果为0 0表示不同于关键字表示不同于关键字 exist UserNameexist UserName 运行结果为运行结果为0 0表示不同于自用变量名、函数名、文件夹名表示不同于自用变量名、函数名、文件夹名MATLAB教程 基础准备及入门基础准备及入门窗口操作及规则 -电气工程系研究生、二、运行默认的数学常数默认的数学常数 eps:浮点相对精度 exp:自然对数的底数e i 或 j:基本虚数单

    10、位 inf 或 Inf:无限大,例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率 p(=3.1415926.)realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin:函数的输入引数个数 nargout:函数的输出引数个数 lasterr:存放最新的错误信息 lastwarn:存放最新的警告信息MATLAB教程 基础准备及入门基础准备及入门 -电气工程系研究生MATLAB教程 基础准备及入门基础准备及入门 -电气工程系研究生MATLAB教程 基础准备基础准备 运行 -电气工程系研究生 向量运算向量运算向量的构造 在MA

    11、TLAB中“:”是一个重要的字符,如x1:4即产生一个1-4单位增量的行向量MATLAB教程 基础准备基础准备 运行 -电气工程系研究生 也可以产生单位增量小于1的行向量,方法是把增量放在起始和结尾量的中间,并用冒号分割开来。如:MATLAB教程 基础准备基础准备 运行 -电气工程系研究生 也可以产生单位增量为负数的行向量,如MATLAB教程 基础准备基础准备 运行 -电气工程系研究生 符号“:”也可以用来产生简易的表格。为了产生纵向表格形式,首先要用它产生行向量,然后进行转置再利用所得的列向量计算出另一列向量,即可合成有两列的矩阵。例如:MATLAB教程 基础准备基础准备 运行 -电气工程系

    12、研究生下标下标n MATLAB的下标具有很重要的功能,可以在对矩阵的行、列子矩阵处理时使用,也可以用来产生向量。使用下标和向量,会使运算更为清晰和方便。单个的矩阵元素可在括号中用下标来表达。例如,已知n其中元素A(3,3)9,A(1,3)=4,A(3,1)3等等。若用语句A(3,3)A(1,3)+A(3,1),利用原矩阵的元素产生新元素(即为A(3,1)+A(1,3)7)替代A矩阵中第三行第三列的元素A(3,3),则产生的新的A矩阵为MATLAB教程 基础准备基础准备 运行 -电气工程系研究生MATLAB教程 基础准备基础准备 运行 -电气工程系研究生n如果v2:2:n;W3 1 4 1 6,

    13、此时A(v,w)是合法的,但并不排除出问题的可能性。n进一步分析,A(:)在赋值语句的右边,表示将A的所有元素在一个长的列向量中展成串,如 A1 2;3 4;5 6,bA(:)则结果为MATLAB教程 基础准备基础准备 运行 -电气工程系研究生n 在赋值语句左边A(:)可以重新组成与刚才的A具有相同阶数的矩阵,这相当于在原来的A没有被清除的情况下,用新的元素置换,实际上起着一种提供格式的作用。例如在上例的基础上n(a在前面例子中的规格已经为3*2的矩阵)体会以下语句体会以下语句:B1=(1:2:end,:)%提取A矩阵全部的奇数行、所有列 B2=A(3,2,1,2,3,4)%提取A矩阵3,2,

    14、1行、2,3,4列构成子矩阵 B3=A(:,end:-1:1)%将A矩阵左右翻转,即最后一列排在最前MATLAB教程 基础准备基础准备 三、基本数学运算 -电气工程系研究生矩阵的运算矩阵的运算 1、矩阵的代数运算、矩阵的代数运算 B=A 转置 X=AB(AX=B)左除 X=B/A(XA=B)右除 C=A+B C=A-B C=A*B B=fliplr(A)左右翻转(flip left right)C=flipud(A)上下翻转(flip up down)D=rot90(A)逆时针旋转90度 F=Ax 乘方 C=A.*B 点运算(矩阵相应元素之间直接进行乘法Cij=AijBij)X.5 x中每个元

    15、素取5次方 A.A 每个元素取aijaij MATLAB教程 基础准备基础准备 三、三、基本数学运算 -电气工程系研究生 2、逻辑运算、逻辑运算 A&B 与 如果两矩阵相应元素均非0则给结果元素为1,否则为0 A|B 或 如果两矩阵相应元素均为0则给结果元素为0,否则为1 A 非 若相应元素为0,则结果为1,否则为0 xor(A,B)异或 如果相应两元素一个为0,一个非0,则结果为0,否则为1可在MATLAB中进行试用 MATLAB教程 基础准备基础准备 三、三、基本数学运算 -电气工程系研究生矩阵的比较运算矩阵的比较运算 C=AB 当A和B矩阵满足aijbij时,cij=1,否则为0 =(不

    16、等于)MATLAB还提供了一些特殊函数:find()查询出满足某关系的数组下标数组下标(MATLAB以逐列顺序安排数组下标,即先构成列向量,再分配数组下标)如:find(isnan(a)查找a中为nan的各元素下标。MATLAB教程 基础准备基础准备 三、三、基本数学运算 -电气工程系研究生 查询函数 all()如all(a=5)当a中的某列元素全大于等于5时,结果元素为1,否则为0 any()如any(a=5)当某列中含有大于等于5的元素时,结果为1,否则为0 若想判定一个矩阵的所有元素是否都大于等于5时,则可写成all(a(:)=5)MATLAB教程 基础准备基础准备 基本数学运算 -电气

    17、工程系研究生解析结果的化简与变换解析结果的化简与变换 符号运算工具箱可用于推导数学公式,但结果有时不是最简形式,或不是用户期望的形式。MATLAB提供了一些化简函数:simple()得出各中方法中自动选择最简格式 collect()函数合并同类项 numden()提取多项式的分子和分母 sincos()进行三角函数的化简 另外还有一个很有用的变量替换函数sub()MATLAB教程 基础准备基础准备 基本数学运算 -电气工程系研究生例:MATLAB教程 基础准备基础准备 基本数学运算 -电气工程系研究生n基本数据变换和数论函数基本数据变换和数论函数 floor()n=floor(x)将x中元素按

    18、-方向取整 ceil()n=ceil(x)将x中元素按+方向取整 round()n=round(x)将x中元素按最近的整数取整 fix()n=fix(x)将x中元素按离0近的方向取整 rat()n,d=rat(x)将x中元素变换成最简有理数,n和d分别为分子和分母矩阵 rem()B=rem(A,C)A中元素对C中元素求模得出的余数 gcd()k=gcd(n,m)求取两个整数n和m的最大公约数 lcm()k=lcm(n,m)求取两个整数n和m的最小公倍数 factor()factor(n)对n进行质因数分解 isprime()v1=isprime(v)判定向量v中的各个整数值是否为质数,若是则v

    19、1向量相 应的值置1,否则为0MATLAB教程 基础准备基础准备 基本数学运算 -电气工程系研究生例MATLAB教程 基础准备基础准备 基本数学运算 -电气工程系研究生例 求pq的最小公倍数和最大公约数%定义符号变量sMATLAB教程 程序设计程序设计 M文件文件 -电气工程系研究生 MATLAB命令执行方式:1)交互式命令执行方式(逐条解释)2)M文件的程序执行方式(扩展名文件的程序执行方式(扩展名.m的以的以 matlab语言编写的文件)语言编写的文件)n掌握建立和执行M文件的方法n掌握利用if语句、switch语句实现选择结构的方法n掌握利用for语句while语句实现循环结构的方法n熟

    20、悉利用向量运算来代替循环操作的方法n掌握定义和调用MATLAB函数的方法MATLAB教程 程序设计程序设计 M文件文件 -电气工程系研究生 M文件是文本文件,可以用任何编辑程序来建立和编辑,默认用MATLAB提供的文本编辑器打开进行编辑。一、M文件的建立和打开(三种方法)建立:命令按钮操作:点击MATLAB“新建”(New M-file)菜单操作:FileNew M-file 命令操作:命令窗口键入edit M文件保存位置一般是MATLAB默认的工作目录work,如果要存到其它目录,则应该将该目录设定为当前目录或将其加到搜索路径中。打开M文件:命令按钮操作 菜单操作 命令操作(命令窗口键入:e

    21、dit 文件名)在当前目录窗口左键双击文件名打开MATLAB教程 程序设计程序设计 M文件文件 -电气工程系研究生二、二、M文件的分类文件的分类 根据调用方式的不同分为两类:命令命令(脚本)文件脚本)文件(Script File)函数文件函数文件(Function File),扩展名均为.mScript Filen命令(脚本)文件没有输入参数,也不返回输出参数,而函数文件可以带输入参数,也可返回输出函数n命令(脚本)文件对MATLAB工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除n命令(脚本)文件

    22、可以直接运行,在MATLAB命令窗口输入命令文件的名字就会顺序执行命令文件中的命令,而函数文件不能直接运行,需要要以函数调用的方式来调用它MATLAB教程 程序设计程序设计 M文件文件 -电气工程系研究生【例一】建立一个M文件,其功能是:用两个实变量R、M生成复变量RM。做法:首先建立命令文件并以文件名setcomp.m保存在当前目录下 clear R=1,2,3;4,5,6;M=11,12,13;14,15,16;RMR+i*M 然后在MATLAB命令窗口中输人setcomp,则会执行该m文件,结果为 RM=1.0000+11.0000i 2.0000+12.0000i 3.0000+13.

    23、0000i 4.0000+14.0000i 5.0000+15.0000i 6.0000+16.0000i 调用该命令文件时,不用输入参数,也没有输出参数,文件自身建立需要的变量。当文件执行完毕后,可以用命令whos查看工作空间中的变量,R、M、RM仍保留在空间中。MATLAB教程 程序设计程序设计 M文件文件 -电气工程系研究生【例二】建立一个函数文件fsetcomp.m function RM=fsetcomp(R,M)RM=R+i*M;然后在MATLAB的命令窗口调用该函数文件:clear;a=1,2,3;4,5,6;b=11,12,13,14;15,16,1,18;c=fsetcomp

    24、(a,b)输出结果为:c=1.0000+11.0000i 2.0000+12.0000i 3.0000+13.0000i 4.0000+14.0000i 5.0000+15.0000i 6.0000+16.0000i 调用该函数文件时,既有输入参数,又有输出参数。当函数调用完毕后,可以用命令whos查看工作空间中的变量,这时会发现函数参数R、M、RM未被保留在空间中,而a、b、c保留在空间中。MATLAB教程 程序设计程序设计 M文件文件 -电气工程系研究生例三 编制M函数文件mean1.m,计算1-99的平均数 第一步:第二步:保存为mean1.m第三步:在命令窗口输入MATLAB教程 程序

    25、设计程序设计 程序控制结构程序控制结构 -电气工程系研究生任何程序都由三种基本控制结构三种基本控制结构组成:顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构。一、顺序结构一、顺序结构(一般涉及数据的输入、数据的计算或处理、数据的输出等)1、数据的输入 input函数(用于从键盘输入数据),该函数调用格式:h=input(提示信息,选项);提示信息:字符串,提示用户输入什么样的数据。例如,从键盘输入A矩阵,可以采用下面的命令完成:h=input(输入A矩阵:);执行语句时,屏幕上显示提示信息”输入A矩阵:”,然后等待用户键入按MATLAB规定格式输入A矩阵的值。如果在该函数中采用“s”选

    26、项,则允许输入一个字符串。如想输入一个人的姓名,可采用命令:Xm=input(whats your name?,s);MATLAB教程 程序设计程序设计 程序控制结构程序控制结构 -电气工程系研究生 2、数据的输出 MATLAB提供的命令窗口输出函数主要有disp函数,调用格式为 disp(输出项)其中:输出项既可以为字符串,也可以为矩阵,如 A=Hello,World!;disp(A)输出为Hello,World!又如:A=1,2,3;4,5,6;7,8,9;disp(A)输出为 1 2 3 4 5 6 7 8 9 (disp函数显示矩阵时不显示函数名,不留空行)MATLAB教程 程序设计程

    27、序设计 程序控制结构程序控制结构 -电气工程系研究生【例一】求方程ax2+bx+c=0的根 程序:a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x2=,num2str(x(2);%num2str Convert number to string 程序输出为 a=?6 b=?1 c=?3 x1=-0.33333,x2=-1.5MATLAB教程 程序设计程序设计 程序控制结构程序控制结构 -电气工程系研究生二、选择结构二、选

    28、择结构 1、if语句 a)单分支if语句 语句调用格式为:if 条件 语句块 end MATLAB教程 程序设计程序设计 程序控制结构程序控制结构 -电气工程系研究生 b)双分支if语句 语句调用格式为 if 条件 语句块1 else 语句块2 end MATLAB教程 程序设计程序设计 程序控制结构程序控制结构 -电气工程系研究生 c)多分支if语句 语句调用格式为 if 条件 语句块1 elseif 语句块2 elseif 语句块n else 语句块n+1 end MATLAB教程 程序设计程序设计 程序控制结构程序控制结构 -电气工程系研究生 2、switch语句(根据表达式的取值不同,

    29、分别执行不同的语句)调用格式为 switch 表达式 case 结果表1 语句块1 case 结果表n 语句块n otherwise 语句块n+1 end switch子句后的表达式应为一个标量或一个字符串,case子句后的结果即可为标量或字符串,也可为一个将多个结果用大括号括起来的单元数据(cell)。如果case后的结果为一个单元数据,则表达式的值等于该单元数据中的某个元素时,执行相应语句组。MATLAB教程 程序设计程序设计 程序控制结构程序控制结构 -电气工程系研究生三、循环结构三、循环结构(按给定条件重复执行指定语句)MATLAB提供了两种语句:for语句和 while语句 1、fo

    30、r语句的格式为 for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 其中,表达式1的值为循环变量初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。MATLAB教程 程序设计程序设计 程序控制结构程序控制结构 -电气工程系研究生【例】一个3位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部的水仙花数。程序如下:shu=%用于存放结果,先赋空值 for m=100:999 m1=fix(m/100);%求m的百位数字 m2=rem(fix(m/10),10);%求m的十位数字 m3=rem(m,10);%求m的个位数字 if m=m1

    31、*m1*m1+m2*m2*m2+m3*m3*m3 shu=shu,m%存入结果 end end shu程序执行结果:shu=153 370 371 407MATLAB教程 程序设计程序设计 程序控制结构程序控制结构 -电气工程系研究生【例】已知y=1-1/2+1/3-1/4+1/5-1/100,求y的值,程序如下:y=0;n=100;for i=1:ny=y+(-1)(i-1)/i;enddisp(y)程序执行结果为 y=0.6882 上两例中,for语句的循环变量都是标量,与其他高级语言的循环语句等价。而MATLAB中循环变量还可以是一个列向量,则更一般调用格式为:for 循环变量=矩阵表达

    32、式 循环体语句 endMATLAB教程 程序设计程序设计 程序控制结构程序控制结构 -电气工程系研究生【例】求矩阵各行的和,程序如下:s=0;a=12,13,14;15,16,17;18,19,20;21,22,23;for k=a s=s+k;enddisp(s)该程序执行结果:39 48 57 66MATLAB教程 程序设计程序设计 程序控制结构程序控制结构 -电气工程系研究生2、While语句 While语句的调用格式为while(条件)循环体语句end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如不成立则跳出循环。MATLAB教程 程序设计程序设计 函数文件

    33、函数文件 -电气工程系研究生函数文件函数文件 函数文件是另一种形式的M文件,每一个函数文件都定义一个函数,MATLAB提供的标准函数大部分是由函数文件定义的。一、函数文件的基本结构一、函数文件的基本结构 函数文件由function语句引导,基本结构为 function 输出形参表=函数名(输入形参表)function返回变量列表=函数名(输入变量列表)注释说明部分 注释说明语句段,由%引导 函数体语句 输入、返回变量格式的检测 函数体语句 其中,以function开头的一行为引导行,表示该M文件是一个函数文件。函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当

    34、输出形参多于一个时,则应该用方括号括起来。MATLAB教程 程序设计程序设计 函数文件函数文件 -电气工程系研究生说明说明(1)函数文件名通常由函数名再加上扩展名.m组成,不过函数文件名与函数名也可以不同。当两者不同时,MATLAB将忽略函数名而确认函数文件名,调用时使用函数文件名。不过最好两者一致,以免出错。(2)注释说明包括三部分内容 紧随 函数文件引导行之后以%开头的第一注释行。一般包括大写的函数文件名和函数功能简要描述,供lookfor关键词查询和help在线帮助用。第一注释行及之后连续的注释行。通常包括函数输入输出参数的含义及调用格式说明等信息,构成全部在线帮助文本。与在线帮助文本相

    35、隔一空行的注释行。包括函数文本编写和修改的信息,如作者、修改日期、版本等内容,用于软件档案管理。(3)如果在函数文件中插入return语句,则执行到该语句就结束函数的执行,程序流程转至调用该函数的位置。通常,在函数文件中也可不使用return语句,这时在被调用函数执行完成后自动返回。MATLAB教程 程序设计程序设计 函数文件函数文件 -电气工程系研究生 从系统的角度来说,MATLAB函数是一个变量处理单元,它从主调函数接收变量,对之进行处理后,将结果返回到主调函数中,除了输入和输出变量外,其他在函数内部产生的所有变量都是局部变量,在函数调用结束后这些变量均将消失。输入和返回变量的实际个数分别

    36、由nargin和nargout两个MATLAB保留变量来给出,只要进入该函数,MATLAB就将自动生成这两个变量。MATLAB教程 程序设计程序设计 函数文件函数文件 -电气工程系研究生【例】编写求一个向量之和及平均值的函数文件:function s,m=fvector(v)%VECTOR fvector.m calculates sum and mean of a vector%v 向量%s 和%m 平均值%2008年11月10日编m,n=size(v);if(m1&n1显然,求n!需要求(n-1)!,这时可采用递归调用。递归调用函数文件factor.m如下:function f=facto

    37、r(n)if n pentagram o square diamond hexagram 分别为星号、点号、叉号、五角星、圆圈、六角形、这些选项也可以进行组合,例如要想绘制红色的点划线,且每个转折点用五角星表示,则选项可以进行如下组合 r-.pentagram hold on、hold off、grid on、grid off、title()、xlabel()、ylabel()另外也可使用另外也可使用line()命令绘制曲线,调用格式与命令绘制曲线,调用格式与plot()完全一致,不同的是完全一致,不同的是line()不更新现有坐标系,可在当前图形上直接叠加曲线不更新现有坐标系,可在当前图形上

    38、直接叠加曲线MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生例:图示复数z1=4+3i,z2=1+2i的和 (其中shg:show graph window)MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生其他二维图形绘制语句(仅举少数)其他二维图形绘制语句(仅举少数)polar(x,y)极坐标图极坐标图 hist(y,n)直方图直方图 stairs(x,y)阶梯图形阶梯图形loglog(x,y)对数图对数图注:注:xy分别表示横轴和纵坐标绘图数据。分别表示横轴和纵坐标绘图数据。MATLAB可以将一个图形窗口分割成若干个小的区域,分别绘制不同的图

    39、形:subplot(m,n,k)表示将图形窗口分割成m*n个区域,而k为所需绘制图形区域的编号例如MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生例MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生隐函数绘制及应用隐函数绘制及应用 隐函数即满足f(x,y)=0方程的x,y之间的关系式,不求出x,y之间的显式关系式,可用ezplot()函数直接绘制隐函数曲线,调用格式为 ezplot(Fun,xm,Xm)其中Fun为隐函数表达式,xm,xM为用户选择的自变量范围,若省略,则取默认区间(-2pi,2pi)例例 MATLAB教程 程序设计程序设计 图形绘

    40、制图形绘制 -电气工程系研究生三维曲线三维曲线 plot()可扩展到三维中,plot3(),其调用格式为:plot3(x,y,z)plot3(x1,y1,z1,选项1,x2,y2,选项2,xm,ym,选项m)其中选项与二维完全一致。类似地,三维中也提供了其他三维曲线绘制函数,如stem3(),bar3()例:MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生例 MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生三维曲面绘制三维曲面绘制 若z=f(x,y),则可绘制出该函数的三维曲面图。首先要调用meshgrid()函数生成网格矩阵数据x和y,从而可以

    41、按函数公式用点运算的方式计算出z矩阵,之后就可以用mesh()或surf()等函数进行三维图形绘制。具体函数调用格式为:x,y=meshgrid(v1,v2)%生成网格数据 z=,如z=x.*y%计算二元函数的z矩阵 surf(x,y,z)或mesh(x,y,z)%mesh绘制网格图,surf绘制表面图 其中,v1和v2为x和y轴的分隔方式。MATLAB还提供了其他种类的三维绘图方式:surfc()带等高线曲面 surf1()带光照曲面 waterfall()瀑布型曲面 contour3()等高线三维图形MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生例:z=f(x,y

    42、)=(x2-2x)e-x2-y2-xy假设横坐标轴从-3开始终止于3,步距为0.1,纵坐标-2-2,步距0.1(即坐标网格分割)则,用MATLAB绘图步骤:MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生 MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生 MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生 MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生如果不设置等高线条数(从图中可看出系统默认的数值偏小,等高线稀疏)MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生三维图形视角

    43、设置三维图形视角设置MATLAB 三维图形显示提供了修改视角的功能(两种方法)三维图形显示提供了修改视角的功能(两种方法)第一种:使用图形窗口工具栏中提供的按钮(如图所示)第一种:使用图形窗口工具栏中提供的按钮(如图所示)点击按钮,鼠标箭头变为 带箭头圆环,此时在图形上 按住鼠标左键进行拖动,即 可使图形转动。MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生第二种:采用view()函数有目的地进行旋转。格式为 view(,)方位角定义为视点在xoy平面投影点与y轴负方向之间的夹角,默认值为-37.5 仰角定义为视点和xoy平面的夹角,默认值为30 MATLAB教程 程序

    44、设计程序设计 图形绘制图形绘制 -电气工程系研究生例如以方位角80,仰角10观察 MATLAB教程 程序设计程序设计 图形绘制图形绘制 -电气工程系研究生继续输入view(0,90)MATLAB教程 程序设计程序设计 现代科学运算现代科学运算 -电气工程系研究生 这里的运算,不仅是指数值运算,还包含解析运算。MATLAB起源于线性代数的数值运算,在其长期发展过程中,形成了微分方程数值解法、最优化技术、数据处理、数理统计等诸多分支,并成功引入了符号运算功能,使得公式推导成为可能。线性代数问题的线性代数问题的MATLAB求解求解 1 矩阵的参数化分析(与矩阵有关的量的计算)矩阵的参数化分析(与矩阵

    45、有关的量的计算)矩阵的行列式(矩阵的行列式(determinant)det()矩阵的迹矩阵的迹(trace)trace()矩阵的秩(矩阵的秩(rank)rank()矩阵的范数(矩阵的范数(norm)norm(A),norm(A,1),norm(A,inf)矩阵的特征多项式、特征方程与特征根矩阵的特征多项式、特征方程与特征根(eigenvalues)p=poly()%p为行向量,为矩阵的降幂排列的特征多项式系数 多项式及多项式矩阵的求值多项式及多项式矩阵的求值(即求a1xn+a2xn-1+anx+an+1的值)若x为一个数值则用 c=polyval(a,x)若x为一个矩阵则用 c=polyval

    46、m(a,x)MATLAB教程 程序设计程序设计 现代科学运算现代科学运算 -电气工程系研究生 矩阵的特征值问题矩阵的特征值问题 V,D=eig(A)矩阵指数矩阵指数eA和指数函数和指数函数eAt expm(A)例MATLAB教程 程序设计程序设计 现代科学运算现代科学运算 -电气工程系研究生例 含有变量的Vandermonde矩阵的特征多项式MATLAB教程 程序设计程序设计 现代科学运算现代科学运算 -电气工程系研究生例求矩阵A的eA和eAtMATLAB教程 程序设计程序设计 现代科学运算现代科学运算 -电气工程系研究生 2 矩阵的分解矩阵的分解 矩阵的相似变换矩阵的相似变换 矩阵的三角分解

    47、矩阵的三角分解 对称矩阵的对称矩阵的Choesky分解分解 矩阵的正交基矩阵的正交基 矩阵的条件数矩阵的条件数MATLAB教程 程序设计程序设计 现代科学运算现代科学运算 -电气工程系研究生3 方程求解问题及方程求解问题及MATLAB实现实现 矩阵求逆矩阵求逆 inv(A)(对于非奇异阵)矩阵的广义逆矩阵的广义逆 pinv(A)(对于奇异阵满足AMA=A MAM=A AM与MA均为对称阵)线性方程求解线性方程求解 若AX=B则 X=AB 若XA=B则 X=B/A 更严格地更严格地,若矩阵A为非奇异阵则方程唯一解为:X=inv(A)*B或X=B/A 若矩阵A为奇异方阵,如果A和A,B矩阵的秩均为

    48、m,则方程有无穷多组解,先用x=null(A)得出齐次方程的基础解系,然后再用x0=pinv(A)*B求出一个特解,这时定义符号变量a1,a2,an-m,则原方程的解为 x=a1*x(:,1)+a2*x(:,2)+an-m*x(:,n-m)+x0 若A和A,B矩阵的秩不同,则方程无解,只能用x=pinv(A)*B求出方程的最小二乘解MATLAB教程 程序设计程序设计 现代科学运算现代科学运算 -电气工程系研究生例MATLAB教程 程序设计程序设计 现代科学运算现代科学运算 -电气工程系研究生4 Lyapunov方程求解方程求解 Lyapunov方程 AX+XAT=-C 其中A,C为给定阵,且C

    49、为对称阵则 X=lyap(A,C)离散系统 Lyapunov方程 AXAT-X+C=0 则 X=dlyap(A,C)5 Sylvester方程(方程(Lyapunov方程一般形式)求解求解 AX+XB=-C 其中A,B,C为给定阵,则 X=lyap(A,B,C)MATLAB教程 程序设计程序设计 现代科学运算现代科学运算 -电气工程系研究生常微分方程问题的常微分方程问题的MATLAB求解求解 1 一阶常微分方程组的数值解法一阶常微分方程组的数值解法 xi1=fi(t,x),i=1,2,n MATLAB提供了一些不能方法的数值解函数:ode23()(二阶三极RK算法),ode45(),ode15

    50、s()(变阶次刚性方程求解算法)调用格式都是一致的:t,x=ode45(方程函数名,方程函数名,tspan,x0,选项,附加参数)选项,附加参数)其中,t为仿真结果的自变量构成的向量(一般变步长),返回的x是一个矩阵,其列数为n,及微分方程的阶次,行数等于t的行数。“方程函数名”为用MATLAB编写的固定格式的M-函数,描述一阶微分方程组,tspan 为数值解时的初始和终止时间等信息,x0为初始状态变量,“选项”为求解微分方程的一些控制参数,还可以将一些“附加参数”在求解函数和方程描述函数之间传递。MATLAB教程 程序设计程序设计 现代科学运算现代科学运算 -电气工程系研究生例x.(t)=-

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:自第二章研究生仿真课MATLAB编程基础课件.ppt
    链接地址:https://www.163wenku.com/p-4527147.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库