第三章MATLAB程序设计讲解.ppt

  1. 1、本文档共112页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章MATLAB程序设计讲解

2.3 循环结构 1.for语句 for语句的格式为: for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。 * 例13 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。 程序如下: for m=100:999 m1=fix(m/100); %求m的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 m3=rem(m,10); %求m的个位数字 rem求余数 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m) end end 结果:153 370 371 407 * 例14 已知 ,当n=100时,求 的值。 程序如下: 程序如下: y=0; n=100; for i=1:n y=y+1/(2*i-1); end y y = 3.2843 * 在实际MATLAB编程中,采用循环语句会降低其执行速度,所以前面的程序通常由下面的程序来代替: n=100; i=1:2:2*n-1; y=sum(1./i); y y = 3.2843 * for语句更一般的格式为: for 循环变量=矩阵表达式 循环体语句 end 执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。 * 例15 写出下列程序的执行结果。 s=0; a=[1,2,3;5,6,7;8,9,10]; for k=a s=s+k; end disp(s); a = 1 2 3 5 6 7 8 9 10 disp(s); 6 18 27 * 2.while语句 while语句的一般格式为: while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。 *   while语句可完成不定次重复的循环,它与for语句不同,每次循环前要判别其条件,如果条件为真或非零值,则继续循环,否则结束循环。当条件是一表达式时,其值必定会受到循环语句的影响。例如,为求出一个值n,使其n!?最大但小于1050,则可输入 r=1; k=1; while r1e50 r=r*k; k=k+1; end k=k-1; r=r./k; disp([The , num2str(k), ! is , num2str(r)]) * 执行后得   The 41! is 3.345253e+049 说明41!小于10 50,且可取最大值,这可利用直接求取阶乘的prod函数(或factorial(N))加以验证。   我们也可以采用变量的值控制循环次数,例如输入 var=[1 2 3 4 0 5 6 0]; a=[]; k=1; while var(k) a=[a var(k).^3]; k=k+1; end disp(a) * 执行后得   1 8 27 64 这说明只循环了前4次,因为一旦取得的变量值为0(本例为第5次),则终止while循环。 while循环中可利用break语句终止循环,例如输入 var=[1 2 3 4 5 6 -1 7 8 0] a=[]; k=1; while var(k) if var(k)== -1, break, end a=[a var(k).^2]; k=k+1; end disp(a) *   执行后得    1 4 9 16 25 36   这说明当取var(k)= -1时,由于执行了break语句,终止了while循环。 * 程序如下: 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)

文档评论(0)

4477704 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档