《matlab上机题汇总.doc》由会员分享,可在线阅读,更多相关《matlab上机题汇总.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、上机题汇总 2,在matlab的命令窗口里完成如下计算,其中t的值分别取-1,0,1,表达式如下:解: t=-1 0 1t = -1 0 1 y=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3*t)+pi/3)y = 1.0e+004 * 2.0897 + 1.2065i 0.0001 0.0000 3自行产生一个5行5列的数组,得到最中间的三行三列矩阵。解: a=reshape(1:25,5,5)a = 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 i=2 3 4; j=2 3 4; a
2、(i,j)ans = 7 12 17 8 13 18 9 14 194用magic产生一个5*5的矩阵,将这个矩阵的第二行与第三行互换位置解: a=magic(5)a = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 i=1 3 2 4 5; a(i,:)ans = 17 24 1 8 15 4 6 13 20 22 23 5 7 14 16 10 12 19 21 311 18 25 2 95求方程组的根x1+4x2-3x3=22x1+5x2-x3=11x1+6x2+x3=12解: a=1 4 -3;2 5
3、 -1;1 6 1; b=2;11;12; x=abx = 4 1 26已知:一个多项式的系数向量是p=1 -6-72 -27,求这个多项式的根。解: p=1 -6 -72 -27p = 1 -6 -72 -27 r=roots(p)r = 12.1229 -5.7345 -0.38847已经两个多项式的系数分别是:1 2 3 4和1 4 9 16,请求这两个多项式的乘积,及商和余数。解: p1=1 2 3 4; p2=1 4 9 6; c=conv(p1,p2)c = 1 6 20 40 55 54 24 q,r=deconv(p1,p2)q = 1r = 0 -2 -6 -28给定一个多项
4、式的根是-5 -3+4i -3-4i,求原来的多项式解: r=-5 -3+4i -3-4ir = -5.0000 -3.0000 + 4.0000i -3.0000 - 4.0000i p=poly(r)p = 1 11 55 125 disp(poly2sym(p)x3+11*x2+55*x+12510补充题:电路分析电路分析常常涉及到对方程组的求解,这些方程常常是利用描述电流进入和离开节点的电流方程,或者描述电路中网络回路上的电压的电压方程得出的。下图描述了3个回路电压的方程方程式如下:假设5个电阻值为已知,2个电压值也为已知,求3个电流值。答:A=R1+R2 R2 0;-R2 R2+R3
5、+R4 R4;0 R4 R4+r5;b=V1;0;-V2; R=Ab11自行产生一个5行5列的数组,用两种方法得到最中间的三行三列矩阵。解: a=reshape(1:25,5,5)a = 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 i=2 3 4; j=2 3 4; a(i,j)ans = 7 12 17 8 13 18 9 14 1912根据a=reshape(-4:4,3,3)做一个矩阵,然后(1)取出所有大于0的元素构成一个向量(可推广到从一个矩阵里筛选出符合条件的元素组成一个向量)(2)将原矩阵中大
6、于0的元素正常显示,而小于等于0的元素全部用0来表示(可推广到将原矩阵中不符合条件的全用0来表示,符合条件的值不变)。(思考:大于0的正常显示,小于等于0的用-10来表示)解: a=reshape(-4:4,3,3)a = -4 -1 2 -3 0 3 -2 1 4 pos=(a0)pos = 0 0 1 0 0 1 0 1 1 a(pos)ans = 1 2 3 4 pos=(a0)pos = 0 0 1 0 0 1 0 1 1 a(pos)ans = 1 2 3 4 a.*posans = 0 0 2 0 0 3 0 1 413建立如下一个元胞数组,现在要求计算第一个元胞第4行第2列加上第
7、二个元胞+第三个元胞里的第二个元素+最后一个元胞的第二个元素。a=pascal(4),hello;17.3500,7:2:100解: a=pascal(4),hello;17.3500,7:2:100a = 4x4 double hello 17.3500 1x47 double a1(4,2)+a2+a3(2)+a4(2)ans = 131.350014建立一个结构体的数组,包括3个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3行10列的数据表示了有10门课程,每门课程有三个阶段的分数。问题是:问题1,如何找到第2个人的分数并显示出来问题2,如何找到第2个人的每门课程3个阶段的平均
8、分数并显示出来问题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).scoremean(stud(2).score)3meanscore=(mean(stud(1).score)+mean(stud(2).score)+mean(stud(3).score)
9、/3cname=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 = 1x3 struct array with fields: name age score student(2).scoreans = 2 93 85 67 68 50 30 68 15 86 75 47 53 84 38 71 19 30 7
10、0 85 45 42 20 2 83 43 19 54 38 59 mean(student(2).score)ans = 40.6667 60.6667 52.6667 51.0000 63.0000 54.6667 22.6667 50.6667 41.0000 76.6667 meanscore=(mean(student(1).score)+mean(student(2).score)+mean(student(3).score)/3meanscore = 58.1111 67.5556 42.7778 55.0000 61.2222 62.2222 46.0000 56.1111 3
11、5.4444 58.2222 cname=student(1).name,student(2).name,student(3).namecname = jim henrry smith15给定一个图像文件,格式是jpg,通过inportdata引入这个文件,查看引入后数据保存是一个数组,是100*100*3的一个数组,这是一个三维的数组,表明有100*100个点,每个点有RGB三个方面决定的。现在,要求将这些点的中间部分30个象素宽度的正方形用黑点表示。解: a=importdata(1.jpg); a(200:300,200:360,:)=0; image(a)16手动构造一个长宽页是100
12、0*1000*3的图像,每个图像的点有三个0-255之间的随机值构成。然后使用image函数显示这个图像,再用imwrite函数保存这个图像,使这个图像用图片浏览器也能够查看。解:imgdata=uint8(255*rand(1000,1000,3);image(imgdata)imwrite(imgdata,myimg.jpg,jpg)17给定一个矩阵a = 1 2 3 4 5 6编写一个M函数,要求输入是a,输出有三个:平均数,标准差,秩。程序运行后分析其性能指标(主要从时间上分析)解:function y=mymean(a)a=1 2 3;4 5 6h,w=size(a)s=0;for
13、i=1:h for j=1:w s=s+a(i,j) endendy=s/(i*j);18编写一个M函数,将一个给定图片文件里的白色全部换成另一种颜色,比如说:将白色转成黑色。a=importdata(1.jpg)m,n,p=size(a);for i=1:m for j=1:n for k=1:p if a(i,j,k)=255; a(i,j,k)=0; end end endendimage(a)19要求编写一个M函数文件,完成求三角函数,x变化范围从-pi到pi,求出相应的y的值,并画出图,然后使用编译器生成EXE,脱离MATLAB环境运行。解:x=-pi:0.01:pi;y=sin(x
14、); plot(x,y),grid;20定义一个2*2的元胞数组,放入相应的数据,然后保存到MAT文件中,清除内存后,然后再调入内存。查看数据是否改变。解:A=magic(5),abc;15,rand(1,19) save filea.mat clear all load filea.mat21实验用图像:pic.jpg.(注意,此图片是灰度图片,本题是针对灰度图片的处理) 使用imread函数将图像读入Matlab。根据产生灰度变换函数T1,使得:0.3rr 0.65用T1对原图像pic.jpg进行处理,查看结果。并打印出来。解:. a=imread(sy4.jpg) image(a) r=
15、im2double(a) b=r0.35.*0.3+r=0.35.*(0.105+2.6333*(r-0.35)+r0.65.*(1+0.3*(r-1); image(b) imwrite(b,syy.jpg)22自己查阅资料找出中国近10年人口数,制成txt文件,格式如下:1990 11.34561991 12.3566然后将数据引入到内存,并绘制出相应的人口变化曲线图。解:1990 1231991 121992 321993 431995 341996 651997 31998 901999 80答: load data.txt y,s=textread(data.txt) plot(y,
16、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,233
17、4,5433,3500;请做出如下图表。解:data=3000,2334,3444,6663;2342,3422,2111,4453;3232,2334,5433,3500;subplot(1,2,1 2);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,3 4);plot3(x,y,z)grid onxlabel(x)ylabel(y)zlabel(z)title(Spiral Plot-using Plot3)1+。1000?sum=0;for i=1:1000 sum=sum+i;endstr=the result:,num2str(sum);disp(str)7、画出衰减震荡曲线、t的取值范围是【0,4pi】function myfun2t=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:);