matlab上机题汇总.docx

上传人:b****4 文档编号:11718955 上传时间:2023-03-31 格式:DOCX 页数:15 大小:591.04KB
下载 相关 举报
matlab上机题汇总.docx_第1页
第1页 / 共15页
matlab上机题汇总.docx_第2页
第2页 / 共15页
matlab上机题汇总.docx_第3页
第3页 / 共15页
matlab上机题汇总.docx_第4页
第4页 / 共15页
matlab上机题汇总.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

matlab上机题汇总.docx

《matlab上机题汇总.docx》由会员分享,可在线阅读,更多相关《matlab上机题汇总.docx(15页珍藏版)》请在冰豆网上搜索。

matlab上机题汇总.docx

matlab上机题汇总

上机题汇总

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

解:

>>t=[-101]

t=

-101

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

y=

1.0e+004*

2.0897+1.2065i0.00010.0000

 

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

解:

>>a=reshape(1:

25,5,5)

a=

16111621

27121722

38131823

49141924

510152025

>>i=[234];

>>j=[234];

>>a(i,j)

ans=

71217

81318

91419

 

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

解:

>>a=magic(5)

a=

17241815

23571416

46132022

101219213

11182529

>>i=[13245];

>>a(i,:

ans=

17241815

46132022

23571416

101219213

11182529

5求方程组的根

x1+4x2-3x3=2

2x1+5x2-x3=11

x1+6x2+x3=12

解:

>>a=[14-3;25-1;161];

>>b=[2;11;12];

>>x=a\b

x=

4

1

2

6已知:

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

解:

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

p=

1-6-72-27

>>r=roots(p)

r=

12.1229

-5.7345

-0.3884

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

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

解:

>>p1=[1234];

>>p2=[1496];

>>c=conv(p1,p2)

c=

162040555424

>>[q,r]=deconv(p1,p2)

q=

1

 

r=

0-2-6-2

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

解:

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

r=

-5.0000-3.0000+4.0000i-3.0000-4.0000i

>>p=poly(r)

p=

11155125

>>disp(poly2sym(p))

x^3+11*x^2+55*x+125

10补充题:

电路分析

电路分析常常涉及到对方程组的求解,这些方程常常是利用描述电流进入和离开节点的电流方程,或者描述电路中网络回路上的电压的电压方程得出的。

下图描述了3个回路电压的方程

方程式如下:

假设5个电阻值为已知,2个电压值也为已知,求3个电流值。

答:

A=[R1+R2–R20;-R2R2+R3+R4–R4;0–R4R4+r5];b=[V1;0;-V2];>>R=A\b

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

解:

>>a=reshape(1:

25,5,5)

a=

16111621

27121722

38131823

49141924

510152025

>>i=[234];

>>j=[234];

>>a(i,j)

ans=

71217

81318

91419

12根据a=reshape(-4:

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

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

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

(思考:

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

解:

>>a=reshape(-4:

4,3,3)

a=

-4-12

-303

-214

>>pos=(a>0)

pos=

001

001

011

>>a(pos)

ans=

1

2

3

4

>>pos=(a>0)

pos=

001

001

011

>>a(pos)

ans=

1

2

3

4

>>a.*pos

ans=

002

003

014

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

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

2:

100}

解:

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

2:

100}

a=

[4x4double]'hello'

[17.3500][1x47double]

>>a{1}(4,2)+a{2}+a{3}

(2)+a{4}

(2)

ans=

131.3500

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

问题是:

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

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

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

要求放到一个数组里。

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

stud=struct('name',{'Jim','Henry','Smith'},'age',{22,18,26},'score',{int16(rand(3,10)*100),int16(rand(3,10)*100),int16(rand(3,10)*100)})

①stud

(2).score

②mean(stud

(2).score)

3meanscore=(mean(stud

(1).score)+mean(stud

(2).score)+mean(stud(3).score))/3

④cname={stud

(1).name,stud

(2).name,stud(3).name}

解:

student=struct('name',{'jim','henrry','smith'},'age',{22,18,26},'score',{int16(rand(3,10)*100),int16(rand(3,10)*100),int16(rand(3,10)*100)})

student=

1x3structarraywithfields:

name

age

score

>>student

(2).score

ans=

2938567685030681586

75475384387119307085

4542202834319543859

>>mean(student

(2).score)

ans=

40.666760.666752.666751.000063.000054.666722.666750.666741.000076.6667

>>meanscore=(mean(student

(1).score)+mean(student

(2).score)+mean(student(3).score))/3

meanscore=

58.111167.555642.777855.000061.222262.222246.000056.111135.444458.2222

>>cname={student

(1).name,student

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

cname=

'jim''henrry''smith'

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

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

解:

>>a=importdata('1.jpg');

>>a([200:

300],[200:

360],:

)=0;

>>image(a)

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

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

解:

imgdata=uint8(255*rand(1000,1000,3));

image(imgdata)

imwrite(imgdata,'myimg.jpg','jpg')

17给定一个矩阵

a=

123

456

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

平均数,标准差,秩。

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

解:

functiony=mymean(a)

a=[123;456]

[h,w]=size(a)

s=0;

fori=1:

h

forj=1:

w

s=s+a(i,j)

end

end

y=s/(i*j);

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

将白色转成黑色。

a=importdata('1.jpg')

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

fori=1:

m

forj=1:

n

fork=1:

p

ifa(i,j,k)==255;

a(i,j,k)=0;

end

end

end

end

image(a)

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

解:

x=-pi:

0.01:

pi;

y=sin(x);

plot(x,y),grid;

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

查看数据是否改变。

解:

A={magic(5),'abc';15,rand(1,19)}

savefilea.mat

clearall

loadfilea.mat

21实验用图像:

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进行处理,查看结果。

并打印出来。

解:

>>.a=imread('sy4.jpg')>>image(a)>>r=im2double(a)

>>b=[r<0.35].*0.3+[r<=0.65&r>=0.35].*(0.105+2.6333*(r-0.35))+[r>0.65].*(1+0.3*(r-1));>>image(b)>>imwrite(b,'syy.jpg')

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

199011.3456

199112.3566

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

解:

1990123

199112

199232

199343

199534

199665

19973

199890

199980…

答:

>>loaddata.txt

>>[y,s]=textread('data.txt')

>>plot(y,s)

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

解:

>>snd=importdata('x.wav');

>>sound(snd.data,snd.fs);

>>snd.data=snd.data([47541:

-1:

1])

>>wavwrite(snd.data,snd.fs,'y.wav')

>>sound(snd.data,snd.fs);

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

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

解:

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

subplot(1,2,[12]);bar(data);

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

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

set(gca,'XTickLabel',['海尔';'联想';'方正'])

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

z=0:

0.1:

40;

x=cos(z).^2;

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

解:

z=0:

0.1:

40;

x=cos(z).^2;

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

subplot(2,2,[34]);

plot3(x,y,z)

gridon

xlabel('x')

ylabel('y')

zlabel('z')

title('SpiralPlot-usingPlot3')

1+。

1000?

sum=0;

fori=1:

1000

sum=sum+i;

end

str=['theresult:

',num2str(sum)];

disp(str)

7、画出衰减震荡曲线、、、、、、、、、t的取值范围是【0,4pi】

functionmyfun2

t=0:

pi/50:

4*pi;

y=exp(-t/3).*sin(3*t);

y0=exp(-t/3);

plot(t,y,'r-',t,y0,'b:

',t,-y0,'b:

');

 

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

当前位置:首页 > 高等教育 > 艺术

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

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