欢迎来到天天文库
浏览记录
ID:59856861
大小:434.50 KB
页数:77页
时间:2020-11-24
《Matlab-程序设计和M文件.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第5章程序设计和M文件5.1程序控制5.2M文件结构5.3函数的使用5.4程序的调试5.5匿名函数、inline对象和函数句柄5.6函数绘图5.7数值分析5.1程序控制三种常用的结构:顺序结构、分支结构和循环结构。4种程序流程控制语句:分支控制语句、循环控制语句、错误控制语句和流程控制语句。5.1.1分支控制语句——实现满足一定条件就执行相应分支的功能。1.if结构if条件1语句段1elseif条件2语句段2......else语句段nend例5-1x=-5:0.1:5;ifx>=1y=x.^2
2、-1;elseif-13、core=98;s1=fix(score/10);%取十位数switchs1case{9,10}s='优'case8s='良'case7s='中'case6s='及格'otherwises='不及格'ends=优5.1.2循环控制语句——实现将某段程序重复执行。1.for循环for循环变量=array循环体end说明:array可以是向量也可以是矩阵,循环执行的次数就是array的列数,每次循环中循环变量依次取array的各列并执行循环体,直到array所有列取完。练习forn=1:5%循环5次4、forn=-1:0.1:1%循环21次forn=linspace(-2*pi,2*pi,5)%循环5次a=eye(2,3);forn=a%循环3次,n为列向量例5-3x=eye(5);len=length(x)forn=1:lenx(n,n)=nendlen=5x=1000001000001000001000001x=1000002000001000001000001…x=1000002000003000004000005or:x=eye(5);forn=1:length(x)x(n,:)=x(5、n,:)*nend2.while循环——常用于预先知道循环条件或循环结束条件的情况。while条件表达式循环体end例5-4使用while循环计算f(x)=sin(x),x<5且每次x递增ln(x)。x=0.1;whilex<5f=sin(x)x=x+log(x)endf=-4.0651e+002-1.5921e+003ix=5.5640+9.2717i3.break和continue语句——控制循环的流程。(1)break语句break语句使包含break的最内层for或while循环强制终止6、,并立即跳出该循环结构,执行end后面的命令,break一般与if语句结合使用。(2)continue语句continue语句与break不同的是continue只结束本次for或while循环,而继续进行下次循环,continue一般也与if语句结合使用。eg.for循环中的break语句forii=1:5ifii==3;break;endfprintf('ii=%d',ii);enddisp('Endofloop!');结果:ii=1ii=2Endofloop!eg.for中的conti7、nue语句forii=1:5ifii==3;continue;endfprintf('ii=%d',ii);enddisp('Endofloop!');结果:ii=1ii=2ii=4ii=5Endofloop!【例5-5】计算f(x)=ex,使用break语句当f(x)>1000时终止计算。x=0:10;forn=xf=exp(n);iff>1000breakendendn=7f=1.0966e+003例5-6使用for循环将字符串中的数值取出,遇到非数值则跳过。str='Theresult8、is100.';len=length(str);s=[];forn=1:lenifstr(n)>'9'9、str(n)<'0'%非数值时continueends=[sstr(n)]ends=1s=10s=100相当于:str='Theresultis100.';len=length(str);s=[]forn=1:lenifstr(n)>='0‘&str(n)<='9's=[sstr(n)]endend5.1.3错误控制语句——当程序可能出现运行错误时,可以使用错误控制结构来捕获和处理错误,避免程
3、core=98;s1=fix(score/10);%取十位数switchs1case{9,10}s='优'case8s='良'case7s='中'case6s='及格'otherwises='不及格'ends=优5.1.2循环控制语句——实现将某段程序重复执行。1.for循环for循环变量=array循环体end说明:array可以是向量也可以是矩阵,循环执行的次数就是array的列数,每次循环中循环变量依次取array的各列并执行循环体,直到array所有列取完。练习forn=1:5%循环5次
4、forn=-1:0.1:1%循环21次forn=linspace(-2*pi,2*pi,5)%循环5次a=eye(2,3);forn=a%循环3次,n为列向量例5-3x=eye(5);len=length(x)forn=1:lenx(n,n)=nendlen=5x=1000001000001000001000001x=1000002000001000001000001…x=1000002000003000004000005or:x=eye(5);forn=1:length(x)x(n,:)=x(
5、n,:)*nend2.while循环——常用于预先知道循环条件或循环结束条件的情况。while条件表达式循环体end例5-4使用while循环计算f(x)=sin(x),x<5且每次x递增ln(x)。x=0.1;whilex<5f=sin(x)x=x+log(x)endf=-4.0651e+002-1.5921e+003ix=5.5640+9.2717i3.break和continue语句——控制循环的流程。(1)break语句break语句使包含break的最内层for或while循环强制终止
6、,并立即跳出该循环结构,执行end后面的命令,break一般与if语句结合使用。(2)continue语句continue语句与break不同的是continue只结束本次for或while循环,而继续进行下次循环,continue一般也与if语句结合使用。eg.for循环中的break语句forii=1:5ifii==3;break;endfprintf('ii=%d',ii);enddisp('Endofloop!');结果:ii=1ii=2Endofloop!eg.for中的conti
7、nue语句forii=1:5ifii==3;continue;endfprintf('ii=%d',ii);enddisp('Endofloop!');结果:ii=1ii=2ii=4ii=5Endofloop!【例5-5】计算f(x)=ex,使用break语句当f(x)>1000时终止计算。x=0:10;forn=xf=exp(n);iff>1000breakendendn=7f=1.0966e+003例5-6使用for循环将字符串中的数值取出,遇到非数值则跳过。str='Theresult
8、is100.';len=length(str);s=[];forn=1:lenifstr(n)>'9'
9、str(n)<'0'%非数值时continueends=[sstr(n)]ends=1s=10s=100相当于:str='Theresultis100.';len=length(str);s=[]forn=1:lenifstr(n)>='0‘&str(n)<='9's=[sstr(n)]endend5.1.3错误控制语句——当程序可能出现运行错误时,可以使用错误控制结构来捕获和处理错误,避免程
此文档下载收益归作者所有