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

2019-08-20 20:39

《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页


15年13级matlab实验报告(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:奥鹏南开16春学期《中国近代人物研究(尔雅)》在线作业

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: