MATLAB上机实验练习题答案Word格式文档下载.docx

上传人:b****7 文档编号:22852224 上传时间:2023-02-05 格式:DOCX 页数:30 大小:188.75KB
下载 相关 举报
MATLAB上机实验练习题答案Word格式文档下载.docx_第1页
第1页 / 共30页
MATLAB上机实验练习题答案Word格式文档下载.docx_第2页
第2页 / 共30页
MATLAB上机实验练习题答案Word格式文档下载.docx_第3页
第3页 / 共30页
MATLAB上机实验练习题答案Word格式文档下载.docx_第4页
第4页 / 共30页
MATLAB上机实验练习题答案Word格式文档下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

MATLAB上机实验练习题答案Word格式文档下载.docx

《MATLAB上机实验练习题答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MATLAB上机实验练习题答案Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。

MATLAB上机实验练习题答案Word格式文档下载.docx

要求写出达到题目要求的MATLAB操作过程,不要求计算结果。

年份

1990

1992

1994

1996

1998

2000

2002

2004

2006

2008

2010

产量(万吨)

75.995

91.972

105.711

123.203

131.669

150.697

179.323

203.212

226.505

249.633

256.344

14、在一次化学动力学实验中,在某温度下乙醇溶液中,两种化合物反应的产物浓度与反应时间关系的原始数据如下,请对这组数据进行三次多项式拟合,并画出拟合曲线,已知数据如下。

time=[2.55.07.510.013.017.020.030.040.050.060.070.0]

res=[0.290.560.771.051.361.522.002.272.813.053.253.56]

15、请在-2<

x<

2,-2<

y<

2的范围内绘制出函数

形成的曲面网线图。

16、请在同一窗口画出两条曲线,y1=sin(x),y2=cos(x),要求添加网格线,x轴标注IndependentVariableX,y轴标注DependentVariableY1&Y2,标注标题SineandCosineCurve,在(1.5,0.3)处标注cos(x),坐标轴设定在x轴[0,2Π],y轴[-0.9,0.9]。

答案

1、>

>

A=[234;

132];

U=[123]'

;

X=A\U

X=

-0.8148

1.6667

-0.5926

2、

t=[00.30.81.11.62.3]'

y=[0.820.720.630.600.550.50]'

E=[ones(size(t))exp(-t)];

C=E\y

C=

0.4760

0.3413

x=0:

0.01:

2.5;

z=0.4760+0.3413*exp(-x);

plot(t,y,'

O'

x,z,'

r:

'

A=[3105;

0-673;

0430;

2-126];

Y=[2478]'

X=A\Y

-4.8247

1.3944

0.4741

3.0159

4、

t=[12345678910]'

y=[4.8424.3623.7543.3683.1693.0833.0343.0163.0123.005]'

E1=[ones(size(t))exp(-t)];

C=E1\y

3.1621

5.1961

E2=[ones(size(t))t.*exp(-t)];

D=E2\y

D=

3.0039

5.0046

x=1:

10;

y1=3.1621+5.1961*exp(-x);

y2=3.0039+5.0046*x.*exp(-x);

x,y1,'

x,y2,'

b-'

p1=polyfit(t,y,2)

p1=

0.0411-0.63835.3937

p2=polyfit(t,y,3)

p2=

-0.00410.1085-0.94935.7443

y3=polyval(p1,x);

y4=polyval(p2,x);

x,y3,'

x,y4,'

6、

t=[00.20.40.60.81.02.05.0]'

y=[1.01.511.882.132.292.402.60-4.00]'

p=polyfit(t,y,4)

p=

-0.09930.7935-2.28412.98820.9995

-0.0565

2.5674

0.001:

5;

y1=-0.0565+2.5674*exp(-x);

y2=polyval(p,x);

7、

•001functioncompare_interp()

•002%COMPARE_INTERP不同插值运算的比较

•003

•004%原始数据

•005[x,y]=meshgrid(-3:

1:

3);

•006z=peaks(x,y);

•007figure

(1);

clf

•008surfc(x,y,z);

•009title('

原始数据'

•010%进行插值运算

•011[xi,yi]=meshgrid(-3:

0.25:

•012zi1=interp2(x,y,z,xi,yi,'

nearest'

);

•013zi2=interp2(x,y,z,xi,yi,'

linear'

•014zi3=interp2(x,y,z,xi,yi,'

cubic'

•015zi4=interp2(x,y,z,xi,yi,'

spline'

•016%通过可视化结果比较

•017figure

(2)

•018subplot(2,2,1);

surf(xi,yi,zi1);

•019title('

二维插值-'

•020subplot(2,2,2);

surf(xi,yi,zi2);

•021title('

•022subplot(2,2,3);

surf(xi,yi,zi3)

•023title('

•024subplot(2,2,4);

surf(xi,yi,zi4)

•025title('

•026%可视化结果

•027figure(3)

•028subplot(2,2,1);

contour(xi,yi,zi1)

•029title('

•030subplot(2,2,2);

contour(xi,yi,zi2)

•031title('

•032subplot(2,2,3);

contour(xi,yi,zi3)

•033title('

•034subplot(2,2,4);

contour(xi,yi,zi4)

•035title('

8、

x=-pi:

pi/4:

pi;

y1=sin(x);

y2=cos(x);

y3=sinh(x);

y4=cosh(x);

plot(x,y1,'

rO:

b*-'

gs--'

k^-.'

9、

X=[19.322.151.6;

34.270.382.4;

61.482.990.8;

50.554.959.1;

29.439.347];

x=sum(X)

x=

194.8000269.5000330.9000

explode=[001];

pie(x,explode)

10、

t=[00.30.81.11.62.3]'

y=[0.50.821.141.251.351.40]'

E=[ones(size(t))exp(-t)t.*exp(-t)]

E=

1.00001.00000

1.00000.74080.2222

1.00000.44930.3595

1.00000.33290.3662

1.00000.20190.3230

1.00000.10030.2306

A=E\y

A=

1.3974

-0.8988

0.4097

Y=1.3974-0.8988*exp(-x)+0.4097*x.*exp(-x);

x,Y,'

r-'

11、

A=struct('

name'

{'

江明顺'

'

于越忠'

邓拓'

},'

NO'

071023'

060134'

050839'

});

A

(1).level=struct('

height'

176'

weight'

82'

A=

1x3structarraywithfields:

name

NO

level

A

(2).level=struct('

168'

74'

A(3).level=struct('

182'

77'

12、

B=cell(1,2);

B{1,1}=struct('

date'

2007/06/04'

billing'

[125.7389.3;

254.9538.5])

B=

[1x1struct][]

B{1,2}=struct('

maggie'

profession'

teacher'

hobby'

dance'

[1x1struct][1x1struct]

cellplot(B)

13、

year=1990:

2:

2010;

product=[75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633256.344];

p1999=interp1(year,product,1999,’spline’)

x=1990:

y=interp1(year,product,x,'

plot(year,product,'

*'

x,y)

14、

X=[2.55.07.510.013.017.020.030.040.050.060.070.0];

Y=[0.290.560.771.051.361.522.002.272.813.053.253.56];

P=polyfit(X,Y,3);

x=2.5:

0.1:

70;

y=polyval(P,x)

plot(X,Y,’O’,x,y)

girdon

15、

clear

x=-2:

0.2:

2;

y=-2:

[X,Y]=meshgrid(x,y);

Z=X.*exp(-X.^2-Y.^2);

mesh(X,Y,Z)

16、

》x=0:

pi/10:

2*pi;

》y1=sin(x);

》y2=cos(x);

》plot(x,y1,x,y2) 

》gridon

》xlabel(‘IndependentVariableX’);

》ylabel(‘DependentVariableY1&Y2’);

》title(‘SineandCosineCurve’)

》text(1.5,0.3,’cos(x)’);

》axis([02*pi-0.90.9])

复习要点

矩阵产生和操作

一.diag对角矩阵和矩阵的对角化

1.x=diag(v)产生v的元素处于主对角线的对角方阵,v为n元向量。

x=diag([123])x=100

020

003

2.x=diag(v,k)k表示v的元素处在第k条对角线上

k=0主对角线y=diag([123],1)

k>

0主对角线上y=0100

k<

0主对角线下0020

.0003

.0000

3.v=diag(x,k)x为矩阵,v为列向量,x的第k条对角线上的元素

z=944v=diag(z)v=diag(z,-1)

2809

678v=8v=2

87

二.reshape阵列重新排列

B=reshape(A,m,n)把A重新排成m×

n的矩阵B

△矩阵元素是按列存储的

A=9684D=reshape(A,4,2)D=98

247027

64

40

三.rot90矩阵旋转90o(反时针)

rot90(A,k)将A反时针旋转k*90o

A=537B1=rot90(A)区别于A'

B2=A'

723B1=735B2=574

425322322

574735

B3=rot90(A,3)B3=475

223

537

四.fliplr左右翻转---列

A=9684B=fliplr(A)

2470B=4869

0742

五.flipud上下翻转---行

B=flipud(A)B=2470

9684

六.tril下三角阵

L=tril(x,k)B1=tril(A,1)

A=9684B1=9600

24702470

七.triu上三角阵

L=triu(x,k)

B2=triu(A,1)B2=0684

0070

八.cat阵列连接C=cat(dim,A,B)

将A,B在dim维连接起来

G=cat(1,B1,B2)G=9600

2470

0684

九.repmat复制并平铺阵列

1.B=repmat(A,m,n)A为矩阵,将A平铺成m×

n格式

A=[12;

34]B=repmat(A,2,3)B=AAA

AAA

2.B=repmat(A,2,3)A为标量B=repmat(5,2,3)B=555

555

十.Meshigrid

[X,Y]=meshgrid(1:

4,1:

4)

X=

1234

Y=

1111

2222

3333

4444

矩阵逻辑运算

1.all—矩阵所有元素是否非零

有1个或多个0→0

A为向量

All(A)

A为矩阵—按列

a=[12;

04]b=au(0)b=01

2.any—测试任意非零值

只要有不是0→1

B=any(A)

所有都为0→0

a=[120;

400;

050]any(a)ans=110

3.find—查找非零元素的值和下标k=find(x)—阵列中

[i,j]=find(x)—矩阵中[i,j,v]=find(x)—v为值,可得

v值的列

a=zeros(5,20);

a(3,7)=0.5;

i=3j=7v=0.5000

a(4,15)=-0.4;

415-0.4000

[i,j,v]=find(a);

4.exist:

检查给定变量或文件是否存在

a=exist('

item'

ident=exist('

kind)

5.is*检测状态

A=one(3,3);

s='

ad3fi'

A(:

:

)=[];

isletter

isempty(A);

ans=11011

ans=1

6.logical—数值转变成逻辑值

logical(A)返回能够用于逻辑索引或逻辑测试的数组。

A=logical(eye(3))

A=100B=rand(3)B=0.44470.92180.4057

0100.61540.73820.9355

0010.79190.17630.9169

B(A)

ans=0.4447

0.7382

0.9109

字符串部分

字符串的比较

三种情况:

1.比较两个字符串或两个字符串的一部分是否相等

2.逐个比较两个字符串中的字符,判别是否相等

3.对字符串中的每一个元素进行分类判别是字符还是空格

一.比较两个字符串strcmp

strcmp判别两个字符串是否相等

strncmp判别两个字符的前n个字符是否相等。

Strncmp

Eg:

str1=‘hello’

str2=‘help’

strcmp(str1,str2)

ans=0

strcmp(str1,str2,3)

ans=1

这两个函数还可以比较两个字符串的单元数组。

A={‘pizza’;

‘chips’;

‘candy’;

‘cake’;

‘beer’};

B={‘pizza’;

‘chololate’;

‘pretzels’;

‘beef’;

strcmp(A,B)strcmp(A,B,1)strncmp(A,B,4)

ans=1ans=1ans=1

010

000

1.11

二.用运算符比较字符串

“==”比较两个字符串中对应字符是否相同

A=‘fate’;

B=‘cake’;

A==B

ans=0101

“~=”表示不等于

A~=B

ans=1010

三.字符串中字符的分类

isletter是否为字母isspace是否为空格或制表符

mystring=‘Room401’;

A=isletter(mystring);

A=11110000

B=isspace(mystring)

B=00001000

对二维数组也可以

A=[‘12A’;

’13B’];

L=isletter(A)S=isspace(A)

L=0001S=0100

00010010

对单元矩阵形式的字符串,不能直接应用这两个函数。

但可以对指定的单元进行判别。

strcell={‘piza’;

‘chis’;

‘cany’;

‘er’};

LL=isletter(strcell{1});

LL=11011

SS=isspace(strcell{2})

SS=00010

字符串的查找与替换

一.strrep可实现标准的查找与替换。

Eg:

label=‘sample1,10/28/95’;

newlabel=strrep(label,‘10/28/95’,‘12/20/1999’);

newlabel=sample1,12/20/1999

二.findstr用于在字符串中查找指定的子串

找到一个子串返回开始位置

找到多个子串用一个矢量指出它们的位置

没找到返回[]

position=findstr(‘1’,newlabel);

position=81117

position=find(‘wa’,newlabel);

position=[]

三.strtok先在字符串中查找分隔字符(如空格,‘/’,制表符等),然后返回第1个分隔符前的子串。

first=strtok(label);

first=sample

first=strtok(label,‘1’)

first=sample1,10

知识要点

MATLAB的特点

1.以复数矩阵作为基本编程单元,使操作变得轻而易举,矩阵不需定义。

2.语句简单,编程效率高,用数学语言编写比C,Basic,Fortran更加接近人们书写计算公式的思维方式。

MATLAB俗称演算纸式科学算法语

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

当前位置:首页 > 表格模板 > 书信模板

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

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