第4章--MATLAB程序设计.ppt_第1页
第4章--MATLAB程序设计.ppt_第2页
第4章--MATLAB程序设计.ppt_第3页
第4章--MATLAB程序设计.ppt_第4页
第4章--MATLAB程序设计.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB程序设计教程(第2版),刘卫国主编中国水利水电出版社,第4章MATLAB程序设计,m文件的概念和基本操作MATLAB程序控制结构MATLAB函数文件MATLAB程序调试, MATLAB命令有两种执行方式:一种是交互式命令执行方式,另一种是m文件命令的执行方式是“一看就得到”方式,在命令窗口中一个一个地输入命令,MATLAB一个一个地解释执行,同时输出结果。 此方法简单直观,但速度慢,执行过程无法维持。 如果需要重复执行某些操作,则更不方便。 程序执行方式是将与指令制作有关的程序存储在一个文件(称为m文件)中,若执行该程序,则matLab自动地依次执行该文件的指令,直到所有的指令被执

2、行为止。 如果以后需要这些命令,只需要重新运行程序。 4.1 M文件、4.1.1 M文件的分类是用MATLAB语言编写的程序,称为m文件。 实际上,MatLab提供的内部函数和各种工具箱是利用MatLab开发的m个文件。 根据调用方法,可以将m文件分为两类:“命令文件”(Script File )和“函数文件”(Function File )。 命令文件和函数文件的主要区别: 1、命令文件没有输入关残奥字仪表和输出残奥仪表,而函数文件有输入残奥仪表和输出残奥仪表2 .命令文件操作MatLab工作区的变量, 文件中所有命令的执行结果也进入工作区,函数文件中定义的变量为局部变量,函数文件执行完成后

3、,这些变量将被清除3,命令文件可以直接执行。 如果在MatLab命令窗口中键入命令文件的名称,则命令文件中的命令将按顺序执行,但不能直接执行函数文件。 函数调用中调用。 例4.1分别生成命令文件和函数文件,交换变量a、b的值。 进程1 :创建命令文件exch.m清除程序。 a=1:10; b=11:18; c=a; a=b; b=c; 然后在命令窗口中键入exch a、b,程序2 :函数文件fexch.m function a,b=fexch(a,b) c=a。 a=b; b=c; 然后在命令窗口中调用函数文件: clear a=1:10、b=11:18 a和b=fexch(a,b )以比较这

4、两个文件之间的主要差异。 哪种形式更有通用性? 创建和打开4.1.2 M文件,m文件是文本文件,可以在任意文本编辑器中创建和编辑。 最常见的方法是使用MatLab附带的程序编辑器。 1创建新的m文件启动MATLAB文本编辑器以创建新的m文件: (1)菜单操作,从MATLAB主菜单中选择FileNewM-file (2)命令操作,在MATLAB命令窗口中选择命令edd 有输入的方法打开现有的m文件: (1)菜单操作3:FileOpen (2)命令操作,在MATLAB命令窗口输入命令edit (3)命令按钮操作3360按钮,4.2程序控制结构调用input函数时,可以使用s选项为用户输入字符串。

5、例如,要输入人的名称,请使用以下命令: xm=input(Whats your name )? s )、2数据的输出、MATLAB提供的命令窗口输出函数主要有disp函数,其调用形式为: disp (输出项目),输出项目可以是字符串也可以是矩阵。 输入例4.2、y的值,将这些值交替输出。 程序在x=input (输入x放置); y=输入(输入释放); z=x; x=y; y=z; 指示符(x ); 显示(y ); 例4.3求一元二次方程的根。程序是a=input(a=? ); b=输入(b=? ); c=输入(c=? ); d等于d=b*b-4*a*c。 x=(-b sqrt(d)/(2*a

6、),(-b-sqrt(d)/(2*a )。 在执行disp(x1=)、num2str(x(1) )、x2=、num2str(x(2) )和三个程序的暂停程序时,如果需要暂停程序的执行以便查看程序的中间结果或者查看输出的图形,则保留函数要强制中止程序的运行,请使用Ctrl C命令。 4.2.2选择结构,选择结构根据给定的条件成立还是不成立来执行不同的语句。 MatLab用于实现选择结构的语句包括if语句、switch语句和try语句。 在1if语句MATLAB中,if语句有三种格式: (1)分支if语句: if条件语句组end,条件成立时执行语句组,执行完成后继续执行end语句之后的语句,条件不

7、成立时直接执行end语句之后的语句。 例如,如果x是一个整数矩阵,则输出x的值,否则该语句将x=input (值x : ); if fix(x)=x disp(x): end,(2)二分支if语句: if条件语句组1 else语句组2 end,修正例4.4段函数,条件成立时执行语句组1,否则执行语句组2,执行语句组1或语句组2之后请输入x=input的值: ); ifx=0y=(x sqrt (pi ) )/exp (2) elsey=log (x sqrt (1x * x ) )/2 end,(3)在多分支if文字小写的情况下,输出对应的大写字母。如果是数字,则输出对应的数值,如果是其他字符

8、,则直接输出。 c=输入(请输入字符,s ); 国际足球协会, 2switch语句switch语句根据式所取的值而分别执行不同的语句,switch式case式1语句组1 case式2语句组2 case式m语句组n end在式的值等于式1的值时执行语句组1的式的值等于式2的值在公式的值与公式m的值相等时执行句子组m,在公式的值与case所列出的公式的值不相等时执行句子组n。 执行其中一个分支的语句后,直接执行switch语句中的下一个语句。 中的组合图层性质变更选项。 case子语句后面的表达式还可以是一个集合,如果表达式的值等于集合中的元素,则该集合执行一组相应的语句。 例4.6某百货公司对顾

9、客购买的商品实施折扣销售,标准如下(商品价格以价格表示):price 200 200 price 5003 %折扣500price1000 5%折扣1000price2500 8%折扣2500 price price=input (请输入商品价格)请输入商品价格600 switch fix (价格/100 ) case 0,1 rate=0。 情况2,3,4速率=3/100; case num 2销售(533609 )速率=5/100。 otherwise rate=15/100; end price=price * (1- rate ) price=570,price200没有折扣200pr

10、ice500 3%折扣500price1000 5%折扣1000price2500 8%折扣。 3Try语句Try语句是Try语句组1 catch语句组2 end,Try语句首先启发式地执行语句组1,在执行语句组1时发生错误不那样做的话会出错。 首先求两矩阵的积,错误的话自动求两矩阵的点乘法。 4.2.3循环结构、循环结构是指,按照指定的条件,反复执行指定的句子是十分重要的程序结构。 MatLab提供了实现for语句和while语句两个循环的语句。1for语句for语句的格式是for循环变量=表达式1:表达式2:表达式3循环语句end。 式1的值是循环变量的初始值,式2的值是步进,式3的值是循

11、环变量的最终值。 步长为1时,公式2可以省略。 例4 .如果8位整数的各位数的立方和与其数本身相等,则将其数称为水仙花数。 输出所有水仙花的数量。 当n=100时,获得y的值。 y=0; n=100; I=13360 n y=y1/I 2。 end y,在实际的MATLAB程序设计中,由于采用循环语句会降低执行速度,所以前面的程序通常被向量运算所取代:n=100; i=1:n; y=sum(1./i.2): y、for语句的更一般的格式是for循环变量=行列式循环主体语句end,执行过程从将矩阵的各列元素依次指定给循环变量开始,直到各列元素的处理完成为止执行循环主体语句。 例4.10分析以下程

12、序的执行结果。 s=0; a=12、13、14; 十五、十六、十七十八、十九、二十二、二十三。 结束显示(s ); 2while语句、while语句的一般格式是while (条件)循环体语句end,如果条件成立则执行循环体语句,执行后判断条件是否成立,如果不成立则跳出循环。 例4.11键盘输入几个个数,输入0则结束输入,求出它们数的平均值和它们的和。 sum=0; %输入数据之和n=0 %记录输入数据的个数x=输入(enteranumber (endin0) : while (x=0)和=和x; n=n 1; x=输入(企业(终端0 ) : )。 为了使end if (n 0) sum mea

13、n=sum/n %输入数据的平均值取end,例如4.12c=10时不超过要求误差,使用反复式来修正正数c的算术平方根的近似值,3break和continue语句与循环结构有关,通常在if语句中使用这些语句break语句用于终止循环的执行。 在循环中执行此语句时,程序跳出循环,继续执行循环语句中的下一个语句。 continue语句控制循环主体中的某些语句的跳过。 如果在循环中执行此语句,程序将跳过循环中的所有剩馀语句,并继续下一个循环。 例4.13100,求能被前21整除的整数。 另外,forn=1003360200ifrem(n,21)=0 continue end break end n n

14、=105,forn=1003360200ifrem(n,21 )2)求出能够被100、200之间的第二个21整除的整数。 1)k=0; 用于1003360200 if rem (n,21)=0 disp(n )。 k=k 1; ifk=2个中断105126,2 ) forn=1003360200 if rem (n,21)=0 k=k 1。 if k=2 disp(n ); 中断结束结束126,k=0; 用于1003360200 if rem (n,21)=0 disp(n )。 k=k 1; continue ifk=2breakendendend,105 126 147 168 189,4

15、,4回圈巢状,如果回圈结构的回圈本体包含回圈结构,则称为回圈巢状或多回圈结构。 例如,如果4.14个数等于其各真因子之和,则将该数称为完整数,例如,因为6=1- 23,6是完整数。 求500之间的所有完整数。 for m=1:500 s=0; 为13360米/2英尺(m,k)=0 s=s k。 结束、if m=s disp(m ); 通过筛选法求出end6- 28-496、例4.15某自然数范围内的全部像素数。 m=输入(m=); m=15 p=1:m米; p(1)=0; fori=23360 sqrt (m ) forj=2* I : I 3360 MP (j )=0。 结束,n=寻找(p=0); p(n) ans=2 3 5 7 11 13,用筛选法求素数的基本思想是,为了找到2m之间的全部素数,首先用2m删除2的倍数(除2 ),接着删

温馨提示

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

评论

0/150

提交评论