计算机仿真技术与CAD-基于MATLAB的电气工程(第2版) 课件 第3章MATLAB程序设计_第1页
计算机仿真技术与CAD-基于MATLAB的电气工程(第2版) 课件 第3章MATLAB程序设计_第2页
计算机仿真技术与CAD-基于MATLAB的电气工程(第2版) 课件 第3章MATLAB程序设计_第3页
计算机仿真技术与CAD-基于MATLAB的电气工程(第2版) 课件 第3章MATLAB程序设计_第4页
计算机仿真技术与CAD-基于MATLAB的电气工程(第2版) 课件 第3章MATLAB程序设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1本章内容

MATLAB的M文件的建立与使用;

MATLAB的文本文件与函数文件的区别与特点

MATLAB的循环语句;

MATLAB的控制语句;

MATLAB的转移语句。第3章MATLAB程序设计2MATLAB语言仅靠一条一条地输入语句,难以实现复杂功能,为了实现诸如循环、条件和分支等功能,就要像其他计算机语言一样进行程序设计。

MATLAB语言的程序设计,则利用了M文件,而M文件是由一系列的MATLAB语句组成的。3

因为MATLAB本身可以被认为是一高效的语言,所以用它可编写出具有特殊意义的磁盘文件来,这些磁盘文件是由一系列的MATLAB语句组成,它既可能是一系列窗口命令语句,又可以是由各种控制语句和说明语句构成的函数文件。由于它们都是由ASCII码构成的,其扩展名均为“.m”,故统称为m文件。3.1MATLAB的M文件4

由于M文件具有普通的文本格式,因而可以用任何编辑器建立和编辑。但一般最常用、而且最为方便地是使用MATLAB自带的编辑器,即利用MATLAB操作界面中的菜单命令File

New

M-File或File

Open打开的M文件编辑窗口对M文件进行建立和编辑。5

在MATLAB6.x/7.x中,利用其操作界面中的菜单命令File

New

M-File和File

Open,可打开M文件编辑窗口对M文件进行建立和编辑。为了进一步方便用户对M文件的建立和编辑,在其窗口中也设置了快捷工具“”和“”。在MATLAB8.x/9.x中,则利用其主页(HOME)中新建(New)菜单下的脚本(Script)命令或主页(HOME)中新建脚本(NewScript)快捷工具“”打开M文本文件编辑窗口。利用其主页(HOME)中新建(New)菜单下的函数(function)命令,打开M函数文件编辑窗口。63.1.1文本文件文本文件(也称为脚本文件,简称为MATLAB的程序)是一系列的MATLAB语句组成,它类似于DOS下的批处理文件,在MATLAB的提示符下直接键入文本文件名,便可自动执行文件中的一系列命令,直至给出最终结果。文本文件在工作空间中运算的变量为全局变量。7例3-1利用MATLAB的文本文件,求方程在x1=-2,x2=3,x3=1时的值。解①首先在MATLAB的操作界面中,利用菜单命令File

New

M-File,打开M文件编辑器,然后在编辑器中根据例中所给方程编写以下文本文件,并以ex3_1_1为文件名进行保存%ex3_1_1.mx1=-2;x2=3;x3=1;y1=3*x1+x2+x3y2=3*x1-x2-x389

对于MATLAB8.x/9.x,则利用其主页(HOME)中新建(New)菜单下的文本(Script)命令或主页(HOME)中新建文本(NewScript)快捷工具“”打开M文本文件编辑窗口。10②当以上文本文件ex3_1_1.m建立后,在MATLAB命令窗口中输入>>ex3_1_1回车后结果显示:y1=-2y2=-1011

由于文本文件中的变量为全局变量,故以上变量x1,x2,x3的值,也可在文本文件外先给定,此时的文本文件为%ex3_1_2.my1=3*x1+x2+x3y2=3*x1-x2-x312当以上文本文件ex3_1_2.m建立后,利用以下命令,同样可以得到以上结果。

>>x1=-2;x2=3;x3=1;ex3_1_2133.1.2函数文件函数文件的功能是建立一个函数,且这个函数可以同MATLAB的库函数一样使用,它与文本文件不同,在一般情况下不能单独键入函数文件的文件名来运行一个函数文件,它必须由其它语句来调用。

以上两种方式下,文本文件中变量的值都被保存下来,这与下面的函数文件是不同的。14

函数文件允许有多个输入参数和多个输出参数值,其基本格式如下function[f1,f2,f3,…]=fun(x,y,z,…)

注释说明语句函数体语句其中x,y,z,…是形式输入参数;而f1,f2,f3,…是返回的形式输出参数值;fun是函数名。15

实际上,函数名一般就是这个函数文件的磁盘文件名,注释语句段的内容同样可用help命令显示出来。调用一个函数文件只需直接使用与这个函数一致的格式[y1,y2,y3,…]=fun(i,j,k,…)其中i,j,k,…是相应的实际输入参数,而y1,y2,y3,…是相应的实际输出参数值。16例3-2利用MATLAB的函数文件,求以下方程

在x1=-2,x2=3,x3=1时的值解

①由于函数文件的建立与文本文件完全一样,故应首先根据例中所给方程在MATLAB的M文件编辑器下,建立以下函数文件ex3_2.m%ex3_2.mfunction[b1,b2]=ex3_2(a1,a2,a3)b1=3*a1+a2+a3;b2=3*a1-a2-a3;17对于MATLAB8.x/9.x,则利用其主页(HOME)中新建(New)菜单下的函数(function)命令,打开M函数文件编辑窗口,它与MATLAB的M文本文件编辑窗口略有不同,其区别在于已经设置其第一行由function开头,最后一行由end结尾的标准函数文件格式(如同MATLAB6.x/7.x一样,这里的end也可删除不要)。18②当以上函数文件ex3_2.m建立后,在MATLAB命令窗口中输入以下命令>>x1=-2;x2=3;x3=1;[y1,y2]=ex3_2(x1,x2,x3)结果显示:y1=-2y2=-10

19

函数文件中定义的变量为局部变量,也就是说它只在函数内有效。即在该函数返回后,这些变量会自动在MATLAB工作空间中清除掉,这与文本文件是不同的,但可通过命令global<变量>来定义一个全局变量。函数文件与文本文件另一个区别在于其第一行是由function开头的,且有函数名和输入形式参数与输出形式参数,若是没有这一行的磁盘文件就是文本文件。20

由于m文件具有普通的文本格式,因而可以用任何编辑程序建立和编辑,但一般最常用、而且最为方便地是使用MATLAB命令窗口的File|New或File|Open菜单项对m文件进行建立和编辑。21MATLAB实际上可以认为是一种解释性语言,用户可以在MATLAB工作环境下一条一条地键入命令,也可以直接键入用MATLAB的语言编写的M文件名,或它们结合起来使用,这样MATLAB软件对此命令或M文件中各条命令进行翻译,然后在MATLAB环境下对它进行处理,最后返回运算结果。所以说MATLAB语言的一般结构为:MATLAB语言=窗口命令+M文件223.2MATLAB的程序结构MATLAB是一个功能极强的高度集成化程序设计语言,它具备一般程序设计语言的基本语句结构,并且它的功能更强,由它编写出来的程序结构简单,可读性强。同其它高级语言一样,MATLAB也提供了条件转移语句、循环语句和一些常用的控制语句,从而使得MATLAB语言的编程显得十分灵活。233.2.1循环语句MATLAB中可以使用两种循环语句:

for语句和while语句。1.for语句的基本格式为for循环变量=表达式1:表达式3:表达式2

循环语句组

end24例MABLAB程序

%ex3_3_1.mmysum=0;fori=1:100 mysum=mysum+i;endmysum运行结果mysun=5050252.while语句的基本结构为

while(条件式)

循环体条件组

end

其执行方式为,若条件式中的条件成立,则执行循环体的内容,执行后再判断表达式是否仍然成立,如果表达式不成立,则跳出循环,向下继续执行。26例如对于上面的例子,如果改用while循环语句,则可以写出下面的程序

%ex3_3_2.msum=0;i=1;while(i<=100) sum=sum+i;i=i+1;endMATLAB提供的循环语句for和while是允许多级嵌套的,而且它们之间也允许相互嵌套,这和C语言等高级程序设计语言是一致的。273.2.2程序流控制语句

在程序设计语言中,经常会遇到提前终止循环、跳出子程序、显示执行过程等,此时就要用到以下控制程序流命令。1.echo命令2.break命令3.continue命令4.pause命令5.return命令283.2.3条件转移语句

在程序设计中,经常要根据一定的条件来执行不同的命令。当某些条件满足时,只执行其中的某个命令或某些命令。在MATLAB中,条件转移语句包括:

if-else-end语句

switch-case-otherwise语句。

291.if-else-end语句的基本格式

在MATLAB中,最简单的条件结构:if-end语句命令格式为

ifexpressionstatementsend当给出的条件式expression成立时,则执行该条件块结构中的语句内容statements,执行完之后继续向下执行,若条件不成立,则跳出条件块而直接向下执行。30例4-4求满足

的最小m值.

解MABLAB程序%ex3_4.mmysum=0;form=1:1000

mysum=mysum+m;if(mysum>1000)break;endendm

运行结果

m=4531

注意,这里使用了break命令,其作用就是中止上一级的for语句循环过程,同样while循环语句也在条件转移语句中起着相当重要的作用,因为在MATLAB下没有提供绝对转移的指令。32MATLAB还提供了其他两种条件结构:if-else-end格式和if-elseif-end格式,这两种格式的调用方法分别为

ifexpressionstatements1elsestatements2end33和ifexpression1statements1elseifexpression2statements2elseifexpression3statements3┇end34例3-5

如果想对一个变量x自动赋值。当从键盘输入y或Y时(表示是),x自动赋为1值;当从键盘输入n或N时(表示否),x自动赋为0值;输入其他字符时终止程序。解可由下列的while循环程序来执行。%ex3_5.mikey=0;while(ikey==0)s1=input('若给x赋值请输入[y/n]?','s');if(s1=='y'|s1=='Y')ikey=1;x=1elseif(s1=='n'|s1=='N')ikey=1;x=0,endbreakendend352.switch-case-otherwise语句的基本格式

MATLAB中switch-case-otherwise语句的调用格式为

switchswitch-expressioncasecase-expression1statements1;casecase-expression2statements2;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论