MATLAB及Mathematica软件应用ch3 MATLAB程序设计.ppt
*?如果x每次的增量不是1,则增量可以在初值与终值之间给出。例如:forx=1:0.5:9y=x^2-5*x-3end其中增量为0.5。循环也可按相反次序计算,例如:forx=9:-1:1y=x^2-5*x-3end*?可以对任意给定值的序列x进行计算,例如:forx=[-20156]y=x^2-5*x-3end循环可以插入if/end语句。在下面的例子中,当sin(x)0时y=sin(x),当sin(x)0时y=0。forx=0:0.1:10y=sin(x);Ify0,y=0;endyend*?在for/end循环里,如果遇到x(i)为负,则计数器c加1。最后,c指示了数组x中负元素的个数。c=0;x=[-8,0,2,5,7,2,0,0,4,6,6,9];fori=1:length(x)ifx(i)0,c=c+1;endendc*?例3.5求1~100的和(ex3_5.m)clcclears=0;fori=1:1:100s=s+i;endfprintf(s=%.0f\n,s);*?另一种循环语句是while/end;while/end语句while循环语句与for循环语句不同的是,前者是以条件的满足与否来判断循环是否结束的,而后者则是以执行次数是否达到指定值为判断的。while循环语句的一般形式为:while〈循环判断的语句〉循环体end*?举例如下:i=0;c=0;x=[-8,0,2,5,7,2,0,0,4,6,6,9];whileilength(x)+1i=i+1ifx(i)0,c=c+1;endendc*?例3.6写一段程序,将数组x中可被4整除的数移除。假设x如下给定:x=[-8,0,2,5,7,2,0,0,4,6,6,9]程序代码为:%ex3_6.mx=[-8,0,2,5,7,2,0,0,4,6,6,9];y=[];forn=1:length(x)ifx(n)/4-fix(x(n)/4)~=0y=[y,x(n)];endendy*?%ex3_7.mclcs=0;i=1;whilei=100s=s+i;i=i+1;endfprintf(s=%.0f\n,s);例3.7用while循环求1~100的和*?break、continue和pause语句与C语言一样,在循环语句中可以使用break和continue语句对程序流程进行控制,而pause可以暂停程序的执行。break语句终止本层for或while循环,跳转到本层循环结束语句end的下一条语句。对于continue,在for循环或while循环中遇到该语句,将跳过其后的循环体语句。进行下一次循环。*?pause语句的作用是暂停程序的执行,直到按任意键为止。其调用格式如下:?pause,暂停程序运行,按任意键继续;?pause(n),程序暂停运行n秒后继续;?pauseon/off,允许/禁止其后的程序暂停。循环的嵌套一个循环中又包含另一个完整的循环。*?无限循环:有时,在满足一定的条件之前,循环会无限进行下去。下面是一个无限循环的例子,只有当条件xxlimit得到满足时,循环终止:while1··ifxxlimit,break;end··end*?例3.8求100~200中所有素数(ex3_8.mex3_8_1.m)·form=100:200i=2;whileimifm/i==fix(m/i)breakendi=i+1;endifi=mfprintf(%.0f\t,m