实验三MATLAB程序设计Word格式文档下载.docx

上传人:b****6 文档编号:19747146 上传时间:2023-01-09 格式:DOCX 页数:17 大小:95.30KB
下载 相关 举报
实验三MATLAB程序设计Word格式文档下载.docx_第1页
第1页 / 共17页
实验三MATLAB程序设计Word格式文档下载.docx_第2页
第2页 / 共17页
实验三MATLAB程序设计Word格式文档下载.docx_第3页
第3页 / 共17页
实验三MATLAB程序设计Word格式文档下载.docx_第4页
第4页 / 共17页
实验三MATLAB程序设计Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

实验三MATLAB程序设计Word格式文档下载.docx

《实验三MATLAB程序设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验三MATLAB程序设计Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

实验三MATLAB程序设计Word格式文档下载.docx

Columns1through9

248163264128256512

Column10

1024

k=

10

(4)按上述步骤,在在编辑器中输入如下函数文件:

functionf=tt(n)

%求小于任何正整数且为2的整数次幂的正整数。

%c=n(n)

%n可取任意正整数。

%2004年8月。

f

(1)=2;

ceil(n/2)%ceil函数取最近的正整数

f

调试后,将其以test2.m形式保存在D:

(5)进入命令窗口,键入test2(9),观察程序运行结果。

>

test2(9)

248

ans=

2、编写一个函数M文件,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。

选择一些数据测试编写的函数。

源程序:

function[y]=myfun(x)

ifx<

=0

y=sin(x);

elseifx>

3

y=-x+6;

else

y=x;

end

运行结果:

test(0)

ans=

0

test

(2)

2

test(5)

1

3、编写一个函数M文件,返回向量x中元素的和、平均值、最大值、最小值、均方根值。

其中方均根值(RootMeanSquare)的计算公式为:

并用下面数据测试你写的函数:

(1)x=sin(0:

0.01:

6*pi)

(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。

源程序:

function[sum_x,m_x,max_x,min_x,rsm_x]=myfun7(x)

sum_x=0;

a=x;

fork=a;

sum_x=sum_x+k;

n=length(x);

fori=1:

n

m_x=sum_x/n;

min_x=x

(1);

fort=1:

ifmin_x>

x(t)

min_x=x(t);

max_x=x

(1);

ifmax_x<

max_x=x(t);

sum_x1=0;

sum_x1=sum_x1+x(t).^2;

rms_x=sqrt(sum_x1/n);

sum_x

m_x

max_x

min_x

rms_x

(1)

x=sin(0:

6*pi);

myfun7(x)

sum_x=

-2.1218e-004

m_x=

-1.1256e-007

max_x=

1.0000

min_x=

-1.0000

rms_x=

0.7071

2)

x=rand(1,200);

99.5448

0.4977

0.9961

0.0046

0.5778

4、编写一个函数M文件,若给出一个向量

,函数返回如下范德蒙矩阵。

例如在命令窗口输入>

v=myvander([2345]),得

,同时生成一些数据测函数。

function[v]=myvander(x)

v=ones(n,n);

forj=1:

fori=1:

v(i,j)=x(j)^(i-1);

x=([2345]);

test(x)

1111

2345

491625

82764125

x=([123]);

111

123

149

5、分别使用while和for编写命令文件,用循环语句编程计算s值:

同时对编写的文件设置断点,观察变量取值的变化情况。

(1)For循环:

function[]=test()

s=0;

forn=2:

1:

10

s=s+(n^3-n^2);

disp(s)

test()

2640

(2)While循环:

n=2;

whilen<

=10

n=n+1;

运行结果:

6、数论中一个有趣的题目:

任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。

重复此过程,最终得到的结果为1。

如:

21

3105168421

63105168421

建立命令M文件,完成上述功能,要求显示数字处理过程。

functionX=test()

n=input('

请输入一个正整数'

);

X

(1)=n;

i=2;

whilen~=1

ifrem(n,2)==0

n=n/2;

elseifrem(n,2)==1

n=n*3+1;

X(i)=n;

i=i+1;

请输入一个正整数2

21

请输入一个正整数3

3105168421

请输入一个正整数12

1263105168421

7、设计一个学生身高的管理系统,输出身高的基本分为5等:

很高、较高、中等、较矮、矮,其中190cm以上为“很高”,[180cm,190cm)区间为“较高”,[170cm,180cm)为“中等”,[1160cm,170cm)为“较矮”,160cm以下为“矮”,要求分别用if语句和switch语句实现

(1)for语句:

n=100;

fori=1:

a=input('

请输入身高'

ifa>

1.90

disp('

很高'

elseifa>

=1.80&

&

a<

较高'

=1.70&

1.80

中等'

=1.60&

1.70

较矮'

elseifa<

1.60

矮'

end

请输入身高1.95

很高

请输入身高1.85

较高

请输入身高1.75

中等

请输入身高1.65

较矮

请输入身高1.55

switch语句:

x=input('

身高为:

'

n=(x-100)/10;

switchfloor(n)

case{10,9}

case{8}

case{7}

case{6}

case{5,4,3,2,1,0}

195

185

175

165

155

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

ak+2=ak+ak+1,(k=1,2,3,…);

且a1=a2=1。

请设计一段程序,求出该数组中第一个大于10000的元素

要求显示的结果为:

i=21

a(i)=10946

或者

a(21)=10946

a

(1)=1;

a

(2)=1;

whilea(i)<

=10000

a(i+1)=a(i-1)+a(i);

i=i+1;

end;

i,a(i)

i=

21

10946

a

(2)=1

fori=3:

n

a(i)=a(i-1)+a(i-2);

ifa(i)>

a(i),

break;

i

a=

Columns1through12

1123581321345589144

Columns13through21

233377610987159725844181676510946

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

(1)当两矩阵是尺寸相同的方阵时,返回它们的乘积和点乘。

(2)当两矩阵不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘

(3)当两矩阵的尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘”

function[]=test(x,y)

[m,n]=size(x);

[i,j]=size(y);

ifm==n&

i==j&

m==i

z1=x*y;

z2=x.*y;

disp(z1);

disp(z2);

elseifn==i

elseifm==i&

n==j

elseifn~=i

这两个矩阵不能相乘'

1)

x=[123;

456;

789];

y=[123;

test(x,y)

303642

668196

102126150

162536

496481

456];

3)

x=[122;

233;

344];

这两个矩阵不能相乘

10、编写一个阶乘函数factorial.m,然后在如下程序中调用该函数,

“分别使用for和while语句找出最小的n值,使得n!

10100,并求出n!

(1)For语句:

Function[]=factorial()

n=1;

s=1;

forn=1:

10000

s=s*n;

if(s>

10100)

break;

disp(n);

1

2

4

5

6

7

(2)While语句:

function[]=factorial()

whiles<

=10100

disp(n);

factorial()

8

11、下列程序用来判断一个人的体温是否处于危险状态。

调试程序是否正确,如果程序错误指出错误在哪里?

并写出正确答案。

temp=input(‘请输入体温:

temp=’);

iftemp<

36.5

disp(‘体温偏低’);

elseiftemp>

disp(‘体温正常’);

38.0

disp(‘偏高!

’;

39

disp(‘温高!

’)

错误:

没有范围

temp=input('

请输入体温:

temp='

disp('

体温偏低'

=36.5&

temp<

=38

体温正常'

38.0&

=39

偏高!

温高!

temp=35

体温偏低

temp=37

体温正常

temp=38.5

temp=40

12、使用嵌套for循环命令创建下列矩阵:

function[]=test()

a=zeros(5);

a(i,i)=5;

forj=1:

ifi==j+1||j==i+1

a(i,j)=1;

disp(a);

51000

15100

01510

00151

00015

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1