教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

15年13级matlab实验报告(8)

来源:网络收集 时间:2026-09-26
导读: 《MATLAB程序设计》实验报告 2640 6、数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2?1 3?10?5?16?8?4?2?1 6?3?10?5?16?8?4?2?1

《MATLAB程序设计》实验报告

2640

6、数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如:

2?1

3?10?5?16?8?4?2?1 6?3?10?5?16?8?4?2?1

建立命令M文件,完成上述功能,要求显示数字处理过程。 源程序及实验结果: 15-10-26

function f=tt(x) temp=x; f=x; fla=true; if temp==1 fla=false; end

while fla

if rem(temp,2)==0 temp=temp/2; else

temp=temp*3+1; end f=[f,temp]; if temp==1 fla=false; end end

>> tt(2) ans =

2 1

共64 页,第 36页

《MATLAB程序设计》实验报告

>> tt(3) ans =

3 10 5 16 8 4 2 1 >> tt(6) ans =

6 3 10 5 16 8 4 2 1

7、设计一个学生身高的管理系统,输出身高的基本分为5等:很高、较高、中等、较矮、矮,其中190cm以上为“很高”,[180cm,190cm)区间为“较高”,[170cm,180cm)为“中等”,[160cm,170cm)为“较矮”,160cm以下为“矮”,要求分别用if语句和switch语句实现

源程序及实验结果: 15-11-2 height.m

function f=height(x) if x>190

disp('if语句实现 很高') elseif x>=180

disp('if语句实现 较高') elseif x>170

disp('if语句实现 中等') elseif x>160

disp('if语句实现 较矮') else

disp('if语句实现 矮') end switch x case x<160

disp('switch语句实现 矮'); case num2cell(160:170)

disp('switch语句实现 较矮'); case num2cell(170:179)

disp('switch语句实现 中等');

共64 页,第 37页

《MATLAB程序设计》实验报告

case num2cell(180:190)

disp('switch语句实现 较高'); otherwise disp('switch语句实现 很高'); end

>> height(187)

if语句实现 较高 switch语句实现 较高

8、Fibonacci数组的元素满足Fibonacci规则:

ak+2=ak+ak+1,(k=1,2,3,?);且a1= a2=1。

请设计一段程序,求出该数组中第一个大于10000的元素 源程序及实验结果:

15-10-26

x=[1,1];%前两个元素的值为1,1 n=2;%n表示当前数组中元素的个数 y=1;%y为数组中最大的一个数 while y<10000 n=n+1;

y=x(n-1)+x(n-2); x=[x,y]; end

disp(['i=',num2str(n)]) disp(['a(i)=',num2str(y)])

显示的结果为: >> test8 i=21 a(i)=10946

9、编写一个函数文件and.m,用于求两个输入矩阵的乘积和点乘,然后在命令行窗口中调用该函数,要求:

源程序及实验结果: and.m程序:

15-10-30

X=input('inputX');

共64 页,第 38页

《MATLAB程序设计》实验报告

Y=input('inputY');

mx=size(X,1);%得到X矩阵的行数,存入mx nx=size(X,2);%得到X矩阵的列数,存入nx [my,ny]=size(Y);%Y矩阵的行数在my,列数在ny if mx==nx && my==ny%如果X、Y都是方阵 if(nx==my) %如果方阵X、Y大小一样 disp('x*y='); f1=X*Y %矩阵相乘 disp('x.*y='); f2=X.*Y %矩阵点乘 end

elseif nx==my %X、Y不都是方阵 disp('x*y=');

f=X*Y %只做矩阵相乘的运算 else

disp('cannot muitiple(X,Y)'); end

(1) 当两矩阵是尺寸相同的方阵时,返回它们的乘积和点乘。 >> and inputX[1,2;3,4] inputY[2,3;4,5] x*y= f1 =

10 13 22 29 x.*y= f2 =

2 6 12 20

共64 页,第 39页

《MATLAB程序设计》实验报告

(2) 当两矩阵不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘 >> and inputX[1,2;3,4] inputY[2;3] x*y= f = 8 18

(3) 当两矩阵的尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘” >> and inputX[1,2;3,4] inputY[3;4;5] cannot muitiple(X,Y)

10、编写一个阶乘函数factorial.m,然后在如下程序中调用该函数, “分别使用for和while语句找出最小的n值,使得n!>10100,并求出n!” 源程序及实验结果:

%for语句找出最小的n,满足n!>10100 15-11-2 m2=1; j=1;

while m2<10100 j=j+1; m2=m2*j; end

disp(['n=',num2str(j)]);

disp([num2str(j),'!=',num2str(m2)]); disp(' ');

%for语句找出最小的n,满足n!>10100

共64 页,第 40页

…… 此处隐藏:554字,全部文档内容请下载后查看。喜欢就下载吧 ……
15年13级matlab实验报告(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/446267.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)