MATLAB机试题及答案_第1页
MATLAB机试题及答案_第2页
MATLAB机试题及答案_第3页
MATLAB机试题及答案_第4页
MATLAB机试题及答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上机题汇总1设置matlab的工作环境,将工作目录设置为d:\work,添加搜索目录d:\example设置当前目录:在Matlab工具栏CurrentDirectory中输入或者浏览设置搜索目录命令在资源管理器中创建work文件夹addpath('d:\work');savepath;【也可以在file/SetPath路径设置窗口中完成】2在matlab的命令窗口里完成如下计算,其中t的值分别取-1,0,1,表达式如下:y=sqrt(2)/2*exp(-4*t).*sin(4*sqrt(3*t)+pi/3)3自行产生一个5行5列的数组,得到最中间的三行三列矩阵。答:>>A=magic(5)I=[234];J=[234];M=A(I,J)4用magic产生一个5*5的矩阵,将这个矩阵的第二行与第三行互换位置答:>>A=magic(5)I=[13245];J=[12345];M=A(I,J)5求方程组的根x1+4x2-3x3=22x1+5x2-x3=11x1+6x2+x3=12答:>>A=[14-3;25-1;-134];>>b=[2;11;12];>>x=A\b或x=inv(A)*b6已知:一个多项式的系数向量是p=[1-6-72-27],求这个多项式的根。答:>>p=[1-6-72-27]>>r=roots(p)7已经两个多项式的系数分别是:[1234]和[14916],请求这两个多项式的乘积,及商和余数。答:>>p1=[1234];p2=[14916];>>C=conv(p1,p2)>>[q,r]=deconv(p1,p2)8给定一个多项式的根是[-5-3+4i-3-4i],求原来的多项式答:>>r=[-5-3+4i-3-4i]>>p=poly(r)>>disp(poly2sym(p))9A=[234;157;用什么函数,保证第一列排序的时候,其他列跟着变化。最后的结果是:[157;234;625]答:>>A=[234;157;625]10补充题:电路分析 电路分析常常涉及到对方程组的求解,这些方程常常是利用描述电流进入和离开节点的电流方程,或者描述电路中网络回路上的电压的电压方程得出的。下图描述了3个回路电压的方程方程式如下:假设5个电阻值为已知,2个电压值也为已知,求3个电流值。答:A=[R1+R2–R20;-R2R2+R3+R4–R4;0–R4R4+r5];b=[V1;0;-V2];>>R=A\b11自行产生一个5行5列的数组,用两种方法得到最中间的三行三列矩阵。答:>>A=magic(5)I=[234];J=[234];M=A(I,J)或>>A=magic(5)A([1,5],:)=[]A(:,[1,5])=[]12根据a=reshape(-4:4,3,3)做一个矩阵,然后(1)取出所有大于0的元素构成一个向量(可推广到从一个矩阵里筛选出符合条件的元素组成一个向量)(2)将原矩阵中大于0的元素正常显示,而小于等于0的元素全部用0来表示(可推广到将原矩阵中不符合条件的全用0来表示,符合条件的值不变)。(思考:大于0的正常显示,小于等于0的用-10来表示)答:(1)>>a=reshape(-4:4,3,3)>>pos=(a>0)>>a(pos)(2)>>pos=(a>0)>>a.*pos13建立如下一个元胞数组,现在要求计算第一个元胞第4行第2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第二个元素。a={pascal(4),'hello';17.3500,7:2:100}答:>>a={pascal(4),'hello';17.3500,7:2:100}>>a{1}(4,2)+a{2}+a{3}(2)+a{4}(2)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',{'liyi','wym'},'age',{40,30},'score',{100*rand(3,10),100*rand(3,10)})>>student.score//显示所有人的分数>>student(2).score//显示第2个人的分数>>student(2).score(1,:)//显示第2个人的第一行的分数>>mean(student(1).score)//显示第一个同学的平均数(按列)>>student=struct('name',{'A','B','C'},'age',{'12','13','11'},'score',rand(3,10))>>student(2).name>>student(2).score>>student(2).age>>a2=mean(student(2).score)>>a1=mean(student(1).score)>>student(1).score>>a3=mean(student(3).score)>>A=[a1;a2;a3]>>asum=mean(A)>>B=[student(1).name,student(2).name,student(3).name]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=123456编写一个M函数,要求输入是a,输出有三个:平均数,标准差,秩。程序运行后分析其性能指标(主要从时间上分析)mymean.mfunctiony=mymean(a)a=[123;456];[h,w]=size(a);s=0;fori=1:hforj=1:ws=s+a(i,j);endendy=s/(i*j);18编写一个M函数,将一个给定图片文件里的白色全部换成另一种颜色,比如说:将白色转成黑色。a=importdata('1.jpg')[m,n,p]=size(a);fori=1:mforj=1:nfork=1:pifa(i,j,k)==255;a(i,j,k)=0;endendendendimage(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文件中,清除内存后,然后再调入内存。查看数据是否改变。1.A={magic(5);'abc';15;rand(1,19)}savefilea.matclearallloadfilea.mat21实验用图像:pic.jpg.(注意,此图片是灰度图片,本题是针对灰度图片的处理)使用imread函数将图像读入Matlab。根据产生灰度变换函数T1,使得:0.3r r<0.35d= 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文件,格式如下:199012319911219923219934319953419966519973199890199980…然后将数据引入到内存,并绘制出相应的人口变化曲线图。答:>>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',['海尔';'联想';'方正'])>>gridon25已知在三维空间里,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)>>xlabel('x')>>ylabel('y')>>zlabel('z')>>title('SpiralPlot-usingPlot3')26有数据如下: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];数据点如下图中兰方块所示,要求编写函数对原数据进行linear和spline一次插值运算,得到结果如下:27在0-450范围内,x,y均每隔50产生一个数,这样产生一个10*10网格区域,用randn函数来产生一个10*10的随机矩阵(标准差是10,平均数是20),使用surf来作出这个三维的曲面图。然后使用interp2进行二次插值,插值函数使用三次杨条插值函数,在原来的第一个分隔区域里产生5个小区域,并最后画出图形。28根据下面的方程绘制图形,y=sin(x)+x,然后再分别用多项式拟合函数和用拟合工具进行拟合。答:functionf3x=0:1:10;y=sin(x)+x;R5=polyfit(x,y,5);Y5=polyval(R5,x);R11=polyfit(x,y,11)Y11=polyval(R11,x)plot(x,y,'g',x,Y5,'r',x,Y11,'b')legend('one','two','three').29手动构造一个长宽页是1000*1000*3的图像,每个图像的点有三个0-255之间的随机值构成。然后使用image函数显示这个图像,再用imwrite函数保存这个图像,使这个图像用图片浏览器也能够查看>>a=uint8(255*rand(1000.1000.3));>>image(a)>>imwrite(a.1,'1.jpg','jpg')二.创建向量1逐个输入法(空格输入法)2批量输入法(冒号输入法)3函数输入法linspace将行向量转化成列向量方法(1)用“;”来间隔元素(2)使用转置的概念三.创建矩阵1逐个输入法(空格分号)2数组编辑器法(是最简单的一种方法)3函数表示法reshape函数改造原来的矩阵A=1:25;a=shape(A,5,5)1.求解方程组-x1+x2+2x3=23x1-x2+x3=6-x1+3x2+4x3=4A=[-112;3-11;-134];b=[264];x=inv(A)*b或x=A\b2.用magic产生一个5*5的矩阵,将这个矩阵的第2列与第5列互换位置magic(5)I=[12345];J=[15342]M=A[I,J]3编写一个M函数,求和S=1+2+3+…+1000sum=0;fori=1:1000sum=sum+i;endstr=['theresult:',num2str(sum)];disp(str)第五题:复数Z1=3+4iZ2=1+2i,z3=2e^6表达及计算Z=(Z1×Z2)/Z3答:Z1=3+4iZ2=1+2z3=2*exp(pi/6*i)Z=(z1*z2)/z36.已知a=magic(5),现在要将第2行与第4行互换。第2列与第4列互换>>a=magic(5)a=17241815235714164613202210121921311182529>>pos=[14325]pos=14325>>a(pos,:)ans=1724181510121921346

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论