资源描述
上机题汇总1 设置 matlab 的工作环境,将工作目录设置为d:work,添加搜索目录 d:example 设置当前目录:在 Matlab 工具栏 Current Directory中输入或者浏览设置搜索目录命令在资源管理器中创建work 文件夹addpath(d:work);savepath;【也可以在 file/Set Path 路径设置窗口中完成】2 在 matlab 的命令窗口里完成如下计算,其中t 的值分别取-1,0,1,表达式如下:43sin(43/3)2tyet答:t=-1 0 1;y=sqrt(2)/2*exp(-4*t).*sin(4*sqrt(3*t)+pi/3)y=1.0e+004*1.7063+0.9851i 0.0001 0.0000 3 自行产生一个 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=2 3 4;J=2 3 4;A(I,J)ans=5 7 14 6 13 20 12 19 21 4 用 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;J=1 2 3 4 5;A(I,J)ans=17 24 1 8 15 4 6 13 20 22 23 5 7 14 16 10 12 19 21 3 11 18 25 2 9 5 求方程组的根x1+4x2-3x3=2 2x1+5x2-x3=11 x1+6x2+x3=12 答:clear a=1 4-3;2 5-1;-1 3 4;b=2;11;12;x=ab x=2.5526 1.6579 2.3947 6 已知:一个多项式的系数向量是p=1-6-72-27,求这个多项式的根。答:p=1-6-72-27 r=roots(p)7 已经两个多项式的系数分别是:1 2 3 4和1 4 9 16,请求这两个多项式的乘积,及商和余数。答:p1=1 2 3 4;p2=1 4 9 16;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)9:A=2 3 4;1 5 7;6 2 5 用什么函数,保证第一列排序的时候,其他列跟着变化。最后的结果是:1 5 7;2 3 4;6 2 5 答:A=2 3 4;1 5 7;6 2 5;temp,idx=sort(A(:,1);A(idx,:)10 补充题:电路分析电路分析常常涉及到对方程组的求解,这些方程常常是利用描述电流进入和离开节点的电流方程,或者描述电路中网络回路上的电压的电压方程得出的。下图描述了3 个回路电压的方程方程式如下:11 121222132423432532()0()()0()0VR IRIIRIIR IRIIRIIR IV假设 5 个电阻值为已知,2 个电压值也为已知,求3 个电流值。答:A=R1+R2 R2 0;-R2 R2+R3+R4 R4;0 R4 R4+r5;b=V1;0;-V2;R=Ab11 自行产生一个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=2 3 4;J=2 3 4;A(I,J)ans=5 7 14 6 13 20 12 19 21或 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 A(1,5,:)=;A(:,1,5)=;A A=5 7 14 6 13 20 12 19 21 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=(a0)a(pos)(2)pos=(a0)a.*pos13 建立如下一个元胞数组,现在要求计算第一个元胞第4 行第 2 列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第二个元素。a=pascal(4),hello;17.3500,7:2:100 答:a=pascal(4),hello;17.3500,7:2:100 a1(4,2)+a2+a3(2)+a4(2)14 建立一个结构体的数组,包括3 个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3 行 10 列的数据表示了有10 门课程,每门课程有三个阶段的分数。问题是:问题 1,如何找到第 2 个人的分数并显示出来问题 2,如何找到第 2 个人的每门课程 3 个阶段的平均分数并显示出来问题 3,全班同学(指这3 个学生)的 10 门课程的每门课程的平均分如何计算出来?要求放到一个数组里。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)mean(stud.score)15 给定一个图像文件,格式是 jpg,通过 inportdata引入这个文件,查看引入后数据保存是一个数组,是 100*100*3 的一个数组,这是一个三维的数组,表明有 100*100 个点,每个点有 RGB 三个方面决定的。现在,要求将这些点的中间部分30个象素宽度的正方形用黑点表示。a=importdata(1.jpg);a(160:190,210:240,:)=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=1 2 3 4 5 6 编写一个 M函数,要求输入是 a,输出有三个:平均数,标准差,秩。程序运行后分析其性能指标(主要从时间上分析)function avg,stdev,r=ourstats(x,tol)m,n=size(x);if m=1 m=n;end avg=sum(x)/m;stdev=sqrt(sum(x.2)/m-avg.2);s=svd(x);r=sum(stol);A=1 2 3;4 5 6 A=1 2 3 4 5 6 a,s,r=ourstats(A,0.1)a=2.5000 3.5000 4.5000 s=1.5000 1.5000 1.5000 r=2 ourstats(A,0.1)ans=2.5000 3.5000 4.5000 a,s=ourstats(A,0.1)a=2.5000 3.5000 4.5000 s=1.5000 1.5000 1.5000 a,s,r,q=ourstats(A,0.1)?Error using=ourstats Too many output arguments.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 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文件中,清除内存后,然后再调入内存。查看数据是否改变。1.A=magic(5);abc;15;rand(1,19)save filea.mat clear all load filea.mat 21 实验用图像:pic.jpg.(注意,此图片是灰度图片,本题是针对灰度图片的处理)使用 imread 函数将图像读入Matlab。根据产生灰度变换函数 T1,使得:0.3r r 0.65 用 T1对原图像 pic.jpg进行处理,查看结果。并打印出来。答 img=imread(1.jpg);r=im2double(img);desing=r0.65.*(0.3*(r-1)+1)+r=0.35.*(0.015+2.663*(r-0.35);image(desing);imwrite(desing,y.jpg)22 自己查阅资料找出中国近10 年人口数,制成 txt文件,格式如下:1990 11.3456 1991 12.3566,然后将数据引入到内存,并绘制出相应的人口变化曲线图。答:先在 WORK 中设置横的数据,1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 11.3456 12.3566 11.3333 12.0987 11.2345 12.8765 12.3795 12.5239 12.6683 11.4637 12.3473 clear load data.txt x=data(1,:)x=Columns 1 through 8 1990 1991 1992 1993 1994 1995 1996 1997 Columns 9 through 11 1998 1999 2000 y=data(2,:)y=Columns 1 through 9 11.3456 12.3566 11.3333 12.0987 11.2345 12.8765 12.3795 12.5239 12.6683 Columns 10 through 11 11.4637 12.3473 plot(x,y)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);snd=importdata(盛夏的果实.wav)snd=data:42752x1 double fs:44100 sound(snd.data,snd.fs)snd.data=snd.data(42752:-1:1);wavwrite(snd.data,snd.fs,helloRev.wav)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(2,2,1 2;bar(data);title(各品牌销售比较图);legend(2006,2007,2008,2009);set(gca,xticklabel,海尔;联想;方正)grid on M文件:data=3000,2334,3444,6663;2342,3422,2111,4453;3232,2334,5433,3500;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)xlabel(x)ylabel(y)zlabel(z)title(Spiral Plot-using Plot3)z=0:0.1:40;x=cos(z).2;y=sin(z)+cos(z);plot3(x,y,z)26 有数据如下:x=-3-2.5-2-1.5-1-0.5 0 0.5 1 1.5 2 2.53;y=-0.14112-0.59847-0.9093-0.99749-0.84147-0.47943 00.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,然后再分别用多项式拟合函数和用拟合工具进行拟合。function f3 x=0:1:10;y=sin(x)+x;%5 次 多 项拟 合R5=polyfit(x,y,5);Y5=polyval(R5,x);%11 次 多 项 拟 合R11=polyfit(x,y,11)Y11=polyval(R11,x)%绘制曲线plot(x,y,g,x,Y5,r,x,Y11,b)legend(one,two,three)x=-2*pi:0.3:2*pi y=sin(x)+x k5=polyfit(x,y,5)y5=polyval(k5,x)plot(x,y,g,x,y5).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
展开阅读全文