2.实验二 MATLAB程序设计 答案.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.实验二 MATLAB程序设计 答案.doc

实验二 MATLAB程序设计 随机产生0~100之间的20个数,求其中最大数和最小数。要求: 方法1:采用循环结构实现 方法2:调用MATLAB的max函数、min函数来实现。 解:方法一:用循环结构 A=randint(1,20,[0,100]) for m=1:19 for n=m+1:20 if A(m)A(n) A(m)=A(m)+A(n); A(n)=A(m)-A(n); A(m)=A(m)-A(n); end end end disp([max=,num2str(A(20))]) disp([min=,num2str(A(1))]) 方法二:用max、min函数 A=randint(1,20,[0,100]) a=max(A); b=min(A); disp([max=,num2str(a)]) disp([min=,num2str(b)]) 从屏幕输入两个正整数,求它们的最小公倍数。 解:法一: x=input(x=); y=input(y=); m=max(x,y); n=min(x,y); for k=m:m:x*y if rem(k,n)==0 disp([最小公倍数是,num2str(k)]); break end end 法二:直接调用函数 x=input(x=); y=input(y=); k=lcm(x,y); disp([最小公倍数是,num2str(k)]); 编写转换成绩等级的函数文件“cj”,考试成绩在[80,100]分数段的显示优秀,在[70,80)分数段的显示良好,[60,70)分数段的显示及格,[0,60)分数段的显示不及格,要求在命令行输入“cj(X)”后,显示相应的成绩等级。 解:function result=cj(x) n=fix(x/10); switch n case {8,9,10} disp(优秀); case 7 disp(良好); case 6 disp(及格); otherwise disp(不及格); end 生成一个10*10矩阵,矩阵元素为[0,100]的随机整数,求其中的最大和最小元素。 解:方法一: A=randint(10,10,[0,100]) M1=max(A); M2=min(A); M11=max(M1); M22=min(M2); disp([最大元素是,num2str(M11)]) disp([最小元素是,num2str(M22)]) 方法二: A=randint(10,10,[0,100]) M1=max(A(:)); M2=min(A(:)); disp([最大元素是,num2str(M1)]) disp([最小元素是,num2str(M2)]) 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 解: x=100; for m=1:9 a=100/2^m; x=x+2*a; end disp([第10次落地时共经过,num2str(x),米]) disp([第10次落地后反弹,num2str(100/2^10),米]) 找出1-10000范围内的完数。所谓完数即该数等于其真因数的和 如:28=1+2+4+7+14 解:方法一: clear;clc k=0; for m=1:10000 s=0; for n=1:m/2 if rem(m,n)==0 s=s+n; end end if s==m k=k+1; a(k)=m; end end disp([10000以内的完数有:,num2str(a)]) 方法二:巧用“find”函数 clear;clc for m=1:10000 s=0; for n=1:m/2 if rem(m,n)==0 s=s+n; end end if s==m

文档评论(0)

cai + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档