MATLAB实验题 答案.docx

上传人:b****4 文档编号:6010967 上传时间:2023-05-09 格式:DOCX 页数:26 大小:146.02KB
下载 相关 举报
MATLAB实验题 答案.docx_第1页
第1页 / 共26页
MATLAB实验题 答案.docx_第2页
第2页 / 共26页
MATLAB实验题 答案.docx_第3页
第3页 / 共26页
MATLAB实验题 答案.docx_第4页
第4页 / 共26页
MATLAB实验题 答案.docx_第5页
第5页 / 共26页
MATLAB实验题 答案.docx_第6页
第6页 / 共26页
MATLAB实验题 答案.docx_第7页
第7页 / 共26页
MATLAB实验题 答案.docx_第8页
第8页 / 共26页
MATLAB实验题 答案.docx_第9页
第9页 / 共26页
MATLAB实验题 答案.docx_第10页
第10页 / 共26页
MATLAB实验题 答案.docx_第11页
第11页 / 共26页
MATLAB实验题 答案.docx_第12页
第12页 / 共26页
MATLAB实验题 答案.docx_第13页
第13页 / 共26页
MATLAB实验题 答案.docx_第14页
第14页 / 共26页
MATLAB实验题 答案.docx_第15页
第15页 / 共26页
MATLAB实验题 答案.docx_第16页
第16页 / 共26页
MATLAB实验题 答案.docx_第17页
第17页 / 共26页
MATLAB实验题 答案.docx_第18页
第18页 / 共26页
MATLAB实验题 答案.docx_第19页
第19页 / 共26页
MATLAB实验题 答案.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MATLAB实验题 答案.docx

《MATLAB实验题 答案.docx》由会员分享,可在线阅读,更多相关《MATLAB实验题 答案.docx(26页珍藏版)》请在冰点文库上搜索。

MATLAB实验题 答案.docx

MATLAB实验题答案

(必做题)

MATLAB实验一:

矩阵的使用

1.略

2.在matlab的命令窗口里完成如下计算,其中t的值分别取-1,0,1,表达式如下:

functionmyfun1

t=-1:

1;

y=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3*t)+pi/3);

disp(y);

3.自行产生一个5行5列的数组,得到最中间的三行三行矩阵。

Functionmyfun3

A=magic(5);

B=A([2:

4],[2:

4]);

Disp(B);

4.用magic产生一个5*5的矩阵,将这个矩阵的第二行与第三行互换位置

functionmyfun4

a=magic(5);

b=a([1,3,2,4,5],:

);

disp(b);

5.求方程组的根

x1+4x2-3x3=2

2x1+5x2-x3=11

x1+6x2+x3=12

functionmyfun5

A=[14-3;25-1;161];

B=[2;11;12];

X=inv(A)*B;

disp(X);

6.已知:

一个多项式的系数向量是p=[1-6-72-27],求这个多项式的根。

functionmyfun6

p=[1-6-72-27];

y=roots(p);

disp(y);

7.已经两个多项式的系数分别是:

[1234]和[14916],请求这两个多项式的乘积,及商和余数。

functionmyfun7

a=[1234];

b=[14916];

c=conv(a,b);

[s,r]=deconv(a,b);

disp(c);

disp(s);

disp(r);

8.给定一个多项式的根是[-5-3+4i-3-4i],求原来的多项式

functionmyfun8

r=[-5-3+4i-3-4i];

p=poly(r);

disp(poly2sym(p));%disp是用于程序中

9.A=[234;

157;

625]

用什么函数,保证第一列排序的时候,其他列跟着变化。

最后的结果是:

[157;

234;

625]

functionmyfun9

A=[234;157;625];

[r,p]=sort(A);

Result1=A(p(:

1),:

);%按第一列进行排列

disp(result1);

Result2=A(p(:

2),:

);%按第二列进行排列

disp(result2);

[m,n]=sort(A,2);

Result3=A(:

n(1,:

));%按第一行进行排列

disp(result3);

10.functionmyfun10%先做函数文件

x=linspace(-2,3);

y=sin(x)+x-3;

plot(x,y);

grid;

>>x=fzero(@(x)sin(x)+x-3,3)%根据画出的图找出零点的大概位置,然后利用fzero在找出的点附近求零点

结果是:

2.1798

MATLAB实验二:

元胞和结构定义

1.自行产生一个5行5列的数组,用两种方法得到最中间的三行三行矩阵。

functionmyfun11

a=magic(5);

b=a([2:

4],[2:

4]);%第一种方法

disp(b);

a([15],:

)=[];%第二种方法:

先删除1,5两行的数据,亦可先删除1,5两列的数据

a(:

[15])=[];%再删除1,5两列的数据

disp(a);

2.根据a=reshape(-4:

4,3,3)做一个矩阵,然后

(1)取出所有大于0的元素构成一个向量(可推广到从一个矩阵里筛选出符合条件的元素组成一个向量)

(2)将原矩阵中大于0的元素正常显示,而小于等于0的元素全部用0来表示(可推广到将原矩阵中不符合条件的全用0来表示,符合条件的值不变)。

(思考:

大于0的正常显示,小于等于0的用-10来表示)

functionmyfun12

a=reshape(-4:

4,3,3);

b=a(a>0);

c=(a>0).*a+(a<=0).*0;

disp(b);

disp(c);

3.建立如下一个元胞数组,现在要求计算第一个元胞第4行第2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第二个元素。

a={pascal(4),'hello';17.3500,7:

2:

100}

functionmyfun13

a={pascal(4),'hello';17.3500,7:

2:

100};

r=a{1}(4,2)+a{2}+a{3}

(2)+a{4}

(2);

disp(r);

4.建立一个结构体的数组,包括3个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3行10列的数据表示了有10门课程,每门课程有三个阶段的分数。

问题是:

问题1,如何找到第2个人的分数并显示出来

问题2,如何找到第2个人的每门课程3个阶段的平均分数并显示出来

问题3,全班同学(指这3个学生)的10门课程的每门课程的平均分如何计算出来?

要求放到一个数组里。

问题4,找到这个班所有同学的姓名放到一个元胞数组里

functionmyfun14

student=struct('name',{'l1','l2','l3'},'age',{10,11,12},'score',{100*rand(3,10),100*rand(3,10),100*rand(3,10)});

a=student

(2).score;

b=mean(student

(2).score);

c=[mean(student

(1).score);mean(student

(2).score);mean(student(3).score)];

d={student

(1).name,student

(2).name,student(3).name};

disp(c);

5.给定一个图像文件,格式是jpg,通过inportdata引入这个文件,查看引入后数据保存是一个数组,是100*100*3的一个数组,这是一个三维的数组,表明有100*100个点,每个点有RGB三个方面决定的。

现在,要求将这些点的中间部分30个象素宽度的正方形用黑点表示。

functionmyfun15

img=importdata('white.jpg');

img([300:

380],[400:

600],:

)=0;

image(img);

imwrite(img,'white2.jpg','jpg');

6.手动构造一个长宽页是1000*1000*3的图像,每个图像的点有三个0-255之间的随机值构成。

然后使用image函数显示这个图像,再用imwrite函数保存这个图像,使这个图像用图片浏览器也能够查看。

functionmyfun16

img=uint8(255*rand(100,100,3));

image(img);

imwrite(img,'newpic.jpg','jpg');

MATLAB实验三:

M文件编写

1.给定一个矩阵

a=

123

456

编写一个M函数,要求输入是a,输出有三个:

平均数,标准差,秩。

程序运行后分析其性能指标(主要从时间上分析)

function[a,s,r]=myfun17(x)

[m,n]=size(x);

a=sum(x)/m;

s=sqrt(sum(x.^2)/m-a.^2);

r=rank(x);

>>profview

2.编写一个M函数,将一个给定图片文件里的白色全部换成另一种颜色,比如说:

将白色转成黑色。

functionmyfun18

img=importdata('white.jpg');

[m,n,p]=size(img);

fori=1:

m

forj=1:

n

if(img(i,j,:

)>225)

img(i,j,:

)=0;

end

end

end

image(img);

3.要求编写一个M函数文件,完成求三角函数,x变化范围从-pi到pi,求出相应的y的值,并画出图,然后使用编译器生成EXE,脱离MATLAB环境运行。

functionmyfun19%先建立函数文件

x=-pi:

0.3:

pi;

y=sin(x);

plot(x,y);

>>mbuild–setup%之后按照指示操作,则建立好环境

>>mcc–mmyfun19%生成独立运行的程序文件

MATLAB实验四:

文件的输入与输出

1.定义一个2*2的元胞数组,放入相应的数据,然后保存到MAT文件中,清除内存后,然后再调入内存。

查看数据是否改变。

>>a=a={'hello',magic(5);[-3:

0.1:

5],17.3500}

>>savea.mat%mat也可以省略,默认的格式就是mat格式

>>savewana%保存文件名为wan,变量为a

Save(‘wan.mat’,’a’);

>>clearall

>>loada

2.实验用图像:

pic.jpg.(注意,此图片是灰度图片,本题是针对灰度图片的处理)使用imread函数将图像读入Matlab。

根据产生灰度变换函数T1,使得:

0.3rr<0.35

d=0.105+2.6333(r–0.35)0.35≤r≤0.65

1+0.3(r–1)r>0.65

用T1对原图像pic.jpg进行处理,查看结果。

并打印出来。

functionmyfun21

rgb=importdata('pic.jpg');

r=im2double(rgb);

desimg=[r<0.35].*r*0.3+[r<=0.65&r>=0.35].*(0.105+2.6333*(r-0.35))+[r>0.65].*(1+0.3*(r-1));

imshow(desimg);

imwrite(desimg,'huidu.jpg','jpg');

3.自己查阅资料找出中国近10年人口数,制成txt文件,格式如下:

199011.3456

199112.3566

然后将数据引入到内存,并绘制出相应的人口变化曲线图。

functionmyfun22

a=load('-ascii','number.txt');%work中有名为number的txt文件

plot(a(:

1),a(:

2));

4.使用通用读函数importdata读入一个声音文件hello.wav,将所有的数据反序排列后,播放声音,听效果,最后,将数据保存成另外的的声音文件名helloRev.wav。

functionmyfun23

a=importdata('hello.wav');

m=flipud(a.data);

n=a.fs;

sound(m,n);

wavwrite(m,n,'helloRev.wav');

MATLAB实验五:

图形绘制与分析

1.海尔,联想,方正近四年销售的数据如下。

data=[3000,2334,3444,6663;2342,3422,2111,4453;3232,2334,5433,3500];请做出如下图表。

functionmyfun24

data=[3000,2334,3444,6663;2342,3422,2111,4453;3232,2334,5433,3500];

bar(data);

title('各品牌销售比较图');

set(gca,'XTickLabel',{'海尔','联想','方正'});

legend('2006','2007','2008','2009');

2.已知在三维空间里,x,y,z的变化规律如下,试用plot3来做出其图形。

z=0:

0.1:

40;

x=cos(z).^2;

y=sin(z)+cos(z);

functionmyfun25

z=0:

0.1:

40;

x=cos(z).^2;

y=sin(z)+cos(z);

plot3(x,y,z);

3.根据下面的方程绘制图形,y=sin(x)+x,然后再分别用多项式拟合函数和用拟合工具进行拟合。

functionmyfun26

x=-2*pi:

0.1:

2*pi;

y=sin(x)+x;

ky5=polyfit(x,y,5);

y5=polyval(ky5,x);

ky7=polyfit(x,y,7);

y7=polyval(ky7,x);

ky9=polyfit(x,y,9);

y9=polyval(ky9,x);

plot(x,y,'r',x,y5,'g',x,y7,'b',x,y9,'k');

4.在0-450范围内,x,y均每隔50产生一个数,这样产生一个10*10网格区域,用randn函数来产生一个10*10的随机矩阵(标准差是10,平均数是20),使用surf来作出这个三维的曲面图。

然后使用interp2进行二次插值,插值函数使用三次杨条插值函数,在原来的第一个分隔区域里产生5个小区域,并最后画出图形。

functionmyfun27

x=0:

50:

450;

y=0:

50:

450;

[x1y1]=meshgrid(x,y);

z1=10*randn(10,10)+20;

subplot(1,2,1);

surf(x1,y1,z1);

x=0:

10:

450;

y=0:

10:

450;

[x2y2]=meshgrid(x,y);

z2=interp2(x1,y1,z1,x2,y2,'spline');

subplot(1,2,2);

surf(x2,y2,z2);

5.有数据如下:

x=[-3-2.5-2-1.5-1-0.500.511.522.53];

y=[-0.14112-0.59847-0.9093-0.99749-0.84147-0.4794300.479430.841470.997490.90930.598470.14112];

数据点如下图中兰方块所示,要求编写函数对原数据进行linear和spline一次插值运算,得到结果如下:

答:

functionmyfun28

x=[-3,-2.5,-2,-1.5,-1,-0.5,0,0.5,1,1.5,2,2.5,3];

y=[-0.14112,-0.59847,-0.9093,-0.99749,-0.84147,-0.47943,0,0.47943,0.84147,0.99749,0.9093,0.59847,0.14112];

xi=-3:

0.2:

3;

y1=interp1(x,y,xi,'linear');

subplot(1,2,1);

plot(xi,y1,'r*');

title('linear');

y2=interp1(x,y,xi,'spline');

subplot(1,2,2);

plot(xi,y2,'r*');

title('spline');

(选做题)

1.求解方程组:

functionmyfun1

a=[-1,1,2;3,-1,1;-1,3,4];

b=[2;6;4];

x1=a\b

x2=inv(a)*b

2.用magic产生一个5*5的矩阵,将这个矩阵的第2列与第5列互换位置。

functionmyfun2

a=magic(5);

disp(a);

b=a(:

[15342]);

disp(b);

3.编写一个M函数,求和S=1+2+3+…+1000

functions=myfun3

s=0;

fori=1:

1000

s=s+i;

end

4.定义一个矩阵,放入相应的数据,然后保存到MAT文件中,清除内存后,然后再调入内存。

查看数据是否改变。

>>a=magic(5)

a=

17241815

23571416

46132022

101219213

11182529

>>savewan.mata

>>clearall

>>loadwan

5.根据下面的方程绘制图形,y=cos(x)+x,x取值-pi-pi,然后用多项式拟合函数进行拟合。

functionmyfun26

x=-pi:

0.1:

pi;

y=cos(x)+x;

newy5=polyfit(x,y,5);%进行5次拟合

y5=polyval(newy5,x);

newy7=polyfit(x,y,7);%进行7次拟合

y7=polyval(newy7,x);

newy9=polyfit(x,y,9);%进行9次拟合

y9=polyval(newy9,x);

plot(x,y,'r',x,y5,'g',x,y7,'b',x,y9,'k');

6.创建一个5行5列的magic矩阵,删除其中的第二、三行与第三、四列。

使其变成3行3列的矩阵。

functionmyfun6

a=magic(5)

a([23],:

)=[];%删除2,3行

a(:

[34])=[];%删除3,4列

disp(a);

7.建一个2行2列的元胞数组,a={zeros(2,2,2),’hello’;1758,int16(1:

10)},请在此基础上创建一个新的8行8列元胞数组。

functionmyfun7

a={zeros(2,2,2),'hello';1758,int16(1:

10)};

disp(a);

b={rand(2,2,2),'hi';17.58,int16(1:

20)};

disp(b);

c=[a,b];

disp(c);

d=[a,b;c];

disp(d);

e=[d,d;d,d];

disp(e);

8.要求编写一个函数文件,将一个给定图片的所有颜色都变深(变深多少自己斟酌),其中黑色为0,白色为255

functionmyfun8

img=importdata('pic.jpg');

[m,n,p]=size(img);

fori=1:

m

forj=1:

n

img(i,j,:

)=img(i,j,:

)+30;

end

end

image(img);

9.根据下面的方程绘制图形,y=cos(2x)+sin(x),然后用5次多项式进行拟合。

functionmyfun8

x=-pi:

0.1:

pi;

y=cos(2*x)+sin(x);

subplot(1,2,1);

plot(x,y,'k');

newy5=polyfit(x,y,5);%进行5次拟合

y5=polyval(newy5,x);

subplot(1,2,2);

plot(x,y5,'r');

10.要求编写一个M函数,完成下列函数的求解:

y=sin(x);y=sin(x+pi);y=sin(x+pi/3);y=sin(x+pi/2)自变量x的变化范围从-pi到pi,要求四个图像画在同一个图形窗体中。

functionmyfun9

x=-pi:

0.2:

pi;

y1=sin(x);

y2=sin(x+pi);

y3=sin(x+pi/3);

y4=sin(x+pi/2);

subplot(2,2,1);

plot(x,y1);

subplot(2,2,2);

plot(x,y2);

subplot(2,2,3);

plot(x,y3);

subplot(2,2,4);

plot(x,y4);

11.矩阵的使用:

多项式

在[-1,3]之间求值并画出相应的曲线。

>>x=-1:

0.2:

3;y=x.^3+4*x.^2-7.*x-10;plot(x,y);grid

>>fzero(@(x)x^3+4*x^2-7*x-10,2)%根据画图找出零点的大概位置是2

12.元胞和结构的定义:

创建一个元胞数组A{1,1}=’JamesBond’ ;A{1,2}=[12 ;34 ;56] ;A{2,1}=pi ;A{2,2}=zeros(5) ;请读取A元胞数组中的数字5。

>>A{1,1}='JamesBond';A{1,2}=[12;34;56];A{2,1}=pi;A{2,2}=zeros(5) ;

>>A{1,2}(3,1)

functionmyfun12

A{1,1}='JamesBond';

A{1,2}=[12;34;56];

A{2,1}=pi;

A{2,2}=zeros(5);

[mn]=size(A{1,2});

fori=1:

m

forj=1:

n

if(A{1,2}(i,j)==5)

disp(A{1,2}(i,j));

break;

end

end

end

13.M文件的编写

计算分段函数

functiony=f(x)

ifx==10

y=cos(x+1)+sqrt(x^2+1);

disp(y);

else

y=x*sqrt(x+sqrt(x));

disp(x);

end

14.函数文件的编写:

编写函数文件,求半径为r的圆的周长和面积。

function[l,s]=yuan(r);

l=2*pi*r;

s=pi*r^2;

15.图形绘制和分析:

绘制

在[-3,3]上以0.3为步长各数据点的条形图。

functionmyfun15

x=-3:

0.3:

3;

y=exp(-x.^2);

bar(x,y);

16.多项式拟合:

用一个三次多项式在区间[0,20]内逼近函数sin(x)。

functionmyfun16

x=0:

0.1:

20;

y=x.^3+x.^2+1;

newy3=polyfit(x,y,3);

y3=polyval(newy3,x);

plot(x,y,'k',x,y3,'r');

 

第一章:

基本概念

17.

答案

z1=3+4i

z2=1+2i

z3=2*exp(pi/6*i)

z=z1*z2/z3

第二章:

矩阵

18.已知a=magic(5),得到结果如下:

a=

17241815

23571416

46132022

101219213

11182529

现在要将第2行与第4行互换,第2列与第4列互换,得到结果如下:

17812415

102119123

42013622

23147516

11225189

答案

pos=[14325]

a(pos,pos)

19.见教材p85,其中的数据可以给出文本文件或者由下面的式子表达

a=[10*rand(24,1)+15,1*rand(24,1)+30,2*rand(24,1)+45],这是24行3列的一个矩阵,第一列表示温度,第二列表示湿度,第三列表示气压。

要求如下:

(1)将温度数据取出

(2)找出一天中最高温度

(3)按温度进行从小到大(默认)排序

(4)求出最高温度的时刻

(5)按温度进行

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

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2