MATLAB编程控制语句.ppt

上传人:scccc 文档编号:13935647 上传时间:2022-01-27 格式:PPT 页数:39 大小:121.50KB
返回 下载 相关 举报
MATLAB编程控制语句.ppt_第1页
第1页 / 共39页
MATLAB编程控制语句.ppt_第2页
第2页 / 共39页
MATLAB编程控制语句.ppt_第3页
第3页 / 共39页
MATLAB编程控制语句.ppt_第4页
第4页 / 共39页
MATLAB编程控制语句.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《MATLAB编程控制语句.ppt》由会员分享,可在线阅读,更多相关《MATLAB编程控制语句.ppt(39页珍藏版)》请在三一文库上搜索。

1、MATLAB编程控制语句,M程序控制结构函数文件,MATLAB编程控制语句,2.1 M文件文件概述 用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。,MATLAB编程控制语句,例1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。程序1: 首先建立命令文件并以文件名f2c.m存盘。clear; %清除工作空间中的变量f=input(Input Fahrenheit temperature:);c=5*(f-32)/9然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,

2、执行情况为:Input Fahrenheit temperature:73c = 22.7778,MATLAB编程控制语句,程序2:首先建立函数文件f2c.m。function c=f2c(f)c=5*(f-32)/9然后在MATLAB的命令窗口调用该函数文件。clear;y=input(Input Fahrenheit temperature:);x=f2c(y)输出情况为:Input Fahrenheit temperature:70c = 21.1111x = 21.1111,MATLAB编程控制语句,例3-14 编写函数文件求半径为r的圆的面积和周长。 函数文件如下: function

3、 s,p=fcircle(r)%CIRCLE calculate the area and perimeter of a circle of radii r%r 圆半径%s 圆面积%p 圆周长%2004年7月30日编s=pi*r*r;p=2*pi*r;,MATLAB编程控制语句,文件的建立与打开 M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。1建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MA

4、TLAB 文本编辑器窗口。 (2) 命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。,MATLAB编程控制语句,2打开已有的M文件 打开已有的M文件,也有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。 (2) 命令操作。在MATLA

5、B命令窗口输入命令:edit 文件名,则打开指定的M文件。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。,MATLAB编程控制语句,数据的输入与输出1.键盘输入input格式:u=input(提示内容)功能:在屏幕上显示提示内容,等待从键盘输入,将输入值赋给数据变量u。exp:x=input(请输入变量x的值?)运行后输入:1,2,3;4,5,6;7,8,9再回车。,MATLAB编程控制语句,例 输入x,y的值,并将它们的值互换后输出。 程序如下: x=input(Input x please.); y=input(

6、Input y please.); z=x; x=y; y=z; disp(x); disp(y);,MATLAB编程控制语句,3程序的暂停 暂停程序的执行可以使用pause函数,其调用格式为: pause(延迟秒数) 如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。 若要强行中止程序的运行可使用Ctrl+C命令。,MATLAB编程控制语句,例: 求一元二次方程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

7、)/(2*a);disp(x);,MATLAB编程控制语句,计算分段函数的值。 程序如下:x=input(请输入x的值:);if x=0 y= (x+sqrt(pi)/exp(2);else y=log(x+sqrt(1+x*x)/2;endY,MATLAB编程控制语句,数据的输入与输出2.数据的输出disp函数格式:disp(变量名)功能:显示指定的变量的内容exp:k=1:5;disp(k)disp(一维数组),MATLAB编程控制语句,2.6 MATLAB控制语句,循环结构1for语句通常用来执行循环次数已知的情况,可按指定次数来重复执行循环体中的内容。基本调用格式为:for 循环变量=

8、表达式1:表达式2:表达式3 循环体语句 end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。,MATLAB编程控制语句,exp:for n=1:10 x(n)=sin(n*pi/10);endx为提高处理速度,在for循环被执行之前,应预先分配数组。x=zeros(1,10)for n=1:10 x(n)=sin(n*pi/10);endx,MATLAB编程控制语句,当有一个有效的数组方法来解答给定的问题时,应避免用for循环。n=1:10 x=sin(n*pi/10)例: 已知,当n=100时,求y的值。程序如下:y=0;

9、n=100;for i=1:ny=y+1/i/i;endy,MATLAB编程控制语句,在实际MATLAB编程中,采用循环语句会降低其执行速度,所以前面的程序通常由下面的数组方法来代替:n=100;i=1:n;f=1./i.2;y=sum(f),MATLAB编程控制语句,for循环可以嵌套使用exp:for i=1:3 for j=1:4 a(i,j)=i*j; endenda,MATLAB编程控制语句,for语句中的变量也可以是任何合法的MATLAB数组或矩阵。对于一个的矩阵A来说可以有: for k=A 循环体语句 end 执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,每次

10、执行循环时,k为矩阵A中1列的所有元素,即A(:,i),直至各列元素处理完毕。,MATLAB编程控制语句,例: 写出下列程序的执行结果。 s=0; a=12,13,14;15,16,17;18,19,20;21,22,23; for k=a s=s+k; end disp(s);,MATLAB编程控制语句,思考下列程序,写出其运行结果:A=1,2,9,18;24,31,12,21;for a=A b=a(2)-a(1)end,MATLAB编程控制语句,2while语句 while语句也是一种循环语句,一般用于事先不能确定循环次数的情况。 调用格式为: while 表达式 循环体语句 end 其

11、执行过程为:若表达式成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。,MATLAB编程控制语句,exp:i=0;while i10 i=i+1end,MATLAB编程控制语句,选择结构1if语句 在MATLAB中,if语句有3种格式。 (1) 单分支if语句:if 表达式 语句组 end 当表达式成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。,MATLAB编程控制语句,exp1:a=100;b=345;if a3 a(i)=6-i; endenda,MATLAB编程控制语句,(2) 双分支if语句: if 表达式

12、 语句组1 else 语句组2 end 当表达式成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句。,MATLAB编程控制语句,例: 计算分段函数 。程序如下:方法一:x=input(请输入x的值:);if x=10 y=cos(x+1)+sqrt(x*x+1);else y=x*sqrt(x+sqrt(x);endy,MATLAB编程控制语句,方法二:x=input(请输入x的值:);y=cos(x+1)+sqrt(x*x+1);if x=10 y=x*sqrt(x+sqrt(x);endy,MATLAB编程控制语句,方法三:x=input(请输入x的

13、值:);if x=10 y=cos(x+1)+sqrt(x*x+1);endif x=10 y=x*sqrt(x+sqrt(x);endy,MATLAB编程控制语句,(3) 多分支if语句:if 表达式1 语句组1 elseif 表达式2 语句组2 elseif 表达式m 语句组m else 语句组n end语句用于实现多分支选择结构。,MATLAB编程控制语句,exp:x=9,6,3,2,5,8,7,4,1;i=2;j=3;if i=j x(i,j)=0;elseif abs(i-j)=1 x(i,j)=-1;else x(i,j)=10;endx,MATLAB编程控制语句,2switch语

14、句 switch语句称为条件选择语句,根据表达式的取值不同,分别执行不同的语句,其语句格式为: switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 case 表达式m 语句组m otherwise 语句组n end,当表达式的值等于表达式1的值时,执行语句组1,当表达式的值等于表达式2的值时,执行语句组2,当表达式的值等于表达式m的值时,执行语句组m,当表达式的值不等于case所列的表达式的值时,执行语句组n。,MATLAB编程控制语句,MATLAB中的switch结构与C语言中的switch结构略有差别。在C语言中,检验某个case符合并执行其运算后,还会继续检

15、验下一个case,直到全部检验完,所以一般会加入break,只运算第一个检验成功的运算式。但在MATLAB中只执行一个检验成功的case。,MATLAB编程控制语句,例 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示): price200 没有折扣 200price500 3%折扣 500price1000 5%折扣 1000price2500 8%折扣 2500price5000 10%折扣5000price 14%折扣输入所售商品的价格,求其实际销售价格。,MATLAB编程控制语句,程序如下:price=input(请输入商品价格);switch fix(pri

16、ce/100) case 0,1 %价格小于200 rate=0; case 2,3,4 %价格大于等于200但小于500 rate=3/100; 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;endprice=price*(1-rate) %输出商品实际销售价格,MA

17、TLAB编程控制语句,exp: a=input(a=?);switch a case 1 disp(a=1); case 2,3,4 disp(a=2or3or4); case 5 disp(a=5); otherwise disp(other value);end;,MATLAB编程控制语句,3try语句语句格式为:try 语句组1catch 语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。,MATLAB编程控制语句,例3-7 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。程序如下:A=1,2,3;4,5,6; B=7,8,9;10,11,12;try C=A*B;catch C=A.*B;endClasterr %显示出错原因,MATLAB编程控制语句,3break语句和continue语句 与程序控制相关的语句还有break语句和continue语句。 break语句用于终止循环的执行。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。 continue语句控制跳过循环体中的某些语句。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1