第二节MATLAB程序设计

上传人:jiups****uk12 文档编号:88681346 上传时间:2019-05-06 格式:PPT 页数:62 大小:322KB
返回 下载 相关 举报
第二节MATLAB程序设计_第1页
第1页 / 共62页
第二节MATLAB程序设计_第2页
第2页 / 共62页
第二节MATLAB程序设计_第3页
第3页 / 共62页
第二节MATLAB程序设计_第4页
第4页 / 共62页
第二节MATLAB程序设计_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《第二节MATLAB程序设计》由会员分享,可在线阅读,更多相关《第二节MATLAB程序设计(62页珍藏版)》请在金锄头文库上搜索。

1、第二节 MATLAB程序设计,1 M文件 2 程序控制结构 3 函数文件 4 程序举例 5 程序调试,1 M文件 1.1 M文件概述,用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类: 1、命令文件(也称为脚本文件)(Script File) 2、函数文件(Function File)。,命令文件(Script File): 命令简单罗列,使用主窗口中变量, 输出也存放在主窗口对应的内存中。,函数文件(Function File):除命令罗列外,还有参数的输入和 输出操作,并且具有固定的格式。,1、首先建立命令文件并以文件名f2c.m存盘。 clear; %清除工

2、作空间中的变量 f = input( 输入华氏温度f= ); c = 5*(f-32)/9 2、 然后在MATLAB的命令窗口中输入f2c,将会执行该命 令文件,执行情况为: f2c 输入华氏温度f=73 c = 22.7778,例1 建立命令文件将华氏温度 f 转换为摄氏温度 c。,1.2 M文件的建立与打开,1.2.1建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有3种方法: (1) 菜单操作:从File菜单中选择New菜单项,再选择M-file 命令,则出现MATLAB 文本编辑器窗口。 (2) 命令操作:在MATLAB命令窗口输入命令edit,则启动 MATLAB文本编辑

3、器。,M文件是一个文本文件,它可以用任何编辑程序来建立和编辑。,(3) 命令按钮操作:单击MATLAB主窗口工具栏上的New M-File命令按钮。,1.2.2 打开已有的M文件,打开已有的M文件,也有3种方法: (1) 菜单操作:从File菜单中选择Open命令,则出现Open 对话框,在对话框中选中所需打开的M文件。 (2) 命令操作。在MATLAB命令窗口输入命令: edit 文件名 则打开指定的M文件。 (3) 命令按钮操作。单击主窗口工具栏上的Open File命令按 钮,则在弹出对话框中选择所需打开的M文件。,2 程序控制结构 2.1 顺序结构普通结构 2.1.1数据的输入,从键盘

4、输入数据,则可以使用input函数来进行,该函数的调用格式为: 变量 = input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入什么样的数据。 如果在input函数调用时采用s选项,则允许用户输入一个字符串;如果省略则不识别字符串。 例如,想输入一个人的姓名,可采用命令: xm=input( Whats your name? , s );,2.1.2数据的输出,MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为 disp(输出项1,输出项2,) 其中输出项既可以为字符串,也可以为矩阵。,例2 输入x,y的值,并将它们的值互换后输出。 程序如下: x=inpu

5、t(Input x please.); y=input(Input y please.); z=x; x=y; y=z; disp(x); disp(y);,例3 求一元二次方程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) );,a=?3 b=?6 c=?9 x1=-1+1.4142i,x2=-1-1.4142i 函数n

6、um2str(),把数值转化为字符串。,2.1.3程序的暂停,1、暂停执行可以使用pause指令,其调用格式为: pause(延迟秒数) 如: pause (3) 则延时3秒 如果省略延迟时间,则将暂停程序,直到用户按 任一键后程序继续执行。 2、keyboard 指令没有调用参数,每次该指令出现, 则用户获得操作权,程序暂停,同时命令提示符 变化为K,用户可以输入其他指令运行,如果想 继续程序的执行,只需输入return并按下回车。 3、要强行中止程序的运行可使用Ctrl+break操作。,2.2 选择结构,1if语句 在MATLAB中,if语句有3种格式。 (1) 单分支if语句: 实例:

7、 if 条件 if a30 语句组 b=a-3; end end 当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。,逻辑符号: 大于 , 小于 =, 小于等于 =, 不等于 =, 与 &, 或 |, 非 。,(2) 双分支if语句: 实例: if 条件 if a30 语句组1 b=a-3; else else 语句组2 b=a+3; end end 当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。,程序如下: x=input(请输入x的值:); if x=0 y= (x+sqrt(p

8、i)/exp(2); else y=log(x+sqrt(1+x*x)/2; end,例4 计算分段函数的值。,(3) 多分支if语句: if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件m 语句组m else 语句组n end 语句用于实现多分支选择结构。,if x=1 y=10; elseif (x-1) end,例5:分段函数,switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为: switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 case 表达式m 语句组m otherwise 语句组n end,2switch语

9、句,price 200 没有折扣 200 price500 3%折扣 500 price1000 5%折扣 1000price2500 8%折扣 2500price5000 10%折扣 5000price 14%折扣 输入所售商品的价格,求其实际销售价格。,例6 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用变量price来表示):,程序如下: price=input(请输入商品价格); switch fix(price/100) case 0,1 %价格小于200 rate=0; %折扣比例保存变量 百分比 case 2,3,4 %价格大于等于200但小于500 rate=3/1

10、00; case num2cell(5:9) %价格大于等于500但小于1000 rate=5/100; case num2cell(10:24) %价格大于等于1000但小于2500 rate=8/100; case num2cell(25:49) %价格大于等于2500但小于5000 rate=10/100; otherwise %价格大于等于5000 rate=14/100; end price=price*(1-rate) %输出商品实际销售价格,取整函数fix(),向零方向取整。 fix(-0.9 -0.1 1.1 1.5) ans = 0 0 1 1 同类函数有: 四舍五入取整ro

11、und() 向正无穷方向取整ceil() 向负无穷方向取整floor(),元胞数组(cell array):允许存放,操作各种不同类型, 不同大小的数据。 A=rand(2,2); B=rand(3,3); C=good; D=0; X(1,1)=A; X(1,2)=B; X(2,1)=C; X(2,2)=D celldisp(X(1,1) ans1 = 0.9501 0.6068 0.2311 0.4860,2.3 循环结构,1for语句 for语句的格式为: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 其中表达式1的值为循环变量的初值, 表达式2的值为步长, 表达式

12、3的值为循环变量的终值。 步长为1时,表达式2可以省略。,for m=100:999 m1=fix(m/100); %求m的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 m3=rem(m,10); %求m的个位数字 if m=m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m) end end 其中:rem为求余数,例8 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。 程序如下:, rem(4,3) ans = 1 rem(5,3) ans = 2 rem(6,3) ans = 0,程序如下: y=0; n=100; f

13、or i=1:n y=y+1/(2*i-1); end,例3-9 已知 ,当n=100时,求y的值。,在实际MATLAB编程中,采用循环语句会降低其执行速度, 所以前面的程序通常由下面的程序来代替:,n=100; i=1:2:2*n-1; y=sum(1./i);,sum() 为求和函数,for语句更一般的格式为:,for 循环变量=矩阵表达式 循环体语句 end 执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。,例10 写出下列程序的执行结果。 s=0; a=12,13,14;15,16,17;18,19,20;21,22,23; for k=a s=s

14、+k; end disp(s);,求a中所有元素之和,2while语句,while语句的一般格式为: while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。,程序如下: sum=0; 和 cnt=0; 输入数值的个数 val=input(Enter a number (end in 0):); while (val=0) sum=sum+val; cnt=cnt+1; val=input(Enter a number (end in 0):); end if (cnt 0) sum mean=sum/cnt end

15、,例11 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。,3break语句和continue语句,与循环结构相关的语句还有break语句和continue语句。它们一般与if语句配合使用。,break语句用于终止循环的执行。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。 continue语句控制跳过循环体中的某些语句。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。,程序如下: for n=100:200 if rem(n,21)=0 continue end break end n,例12 求100,200之间第一个能被21整除的整数。,for m=1:500 s=0; for k=1:m/2 if rem(m,k)=0 s=s+k; end end if m=s disp(m); end end,4循环的嵌套 如果一个循环结构的循环体又包括一个循环结构, 就称为

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号