《武汉轻工大学MATLAB期末考试试卷汇总.docx》由会员分享,可在线阅读,更多相关《武汉轻工大学MATLAB期末考试试卷汇总.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLAB期末考试试卷及其参考答案一、填空题每空1分,20分1、MATLAB常用操作界面包括命令窗口、工作空间窗口浏览器、命令历史窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。2、MATLABInf或inf表示无穷大、NaN或nan表示不是一个数、nargout表示函数输出宗量数目。3、MATLAB中逗号主要用作要显示计算结果指令与其后指令分隔;用作输入量与输入量之间分隔符;用作数组元素分隔符号。4、工作空间浏览器主要用于内存变量查阅、保存和编辑。5、MATLAB实现将全下标转换为单下标指令为Sub2ind、据单下标换算出全下标指令为Ind2sub。6
2、、二维数组标识有“全下标标识、“单下标标识、“逻辑1”标识。7、在一个元胞数组A中寻访第2行第3列元胞元素用A(2,3);寻访数组第2行第3列元胞中内容用A2,3。8、MATLAB中clf用于去除图形窗、clc用于去除指令窗中显示内容、clear用于去除MATLAB工作空间中保存变量。二、简答题每题5分,共20分简述MATLAB历史指令窗主要作用。历史指令窗记录着用户在MATLAB指令窗中所输入过所有指令。历史记录包括:每次开启MATLAB时间,每次开启MATLAB后在指令窗中运行过所有指令。应用功能有单行或多行指令复制和运行、生成M文件等。2、简述空数组功用。“空数组功用:在没有“空数组参与
3、运算时,计算结果中“空可以合理地解释“所得结果含义;运用“空数组对其他非空数组赋值,可以改变数组大小,但不能改变数组维数。3、简述MATLAB函数根本构造。典型M函数文件构造:函数申明定义行(Function declaration line)、H1行(The first help text line)、在线帮助文本(Help text)区、编写和修改记录、函数体(Function body)。4、简述绘制二维图形一般步骤。绘制二维图形一般步骤为:曲线数据准备、选定图形窗及子图位置、调用二维曲线绘图指令、设置轴范围、坐标分格线、图形注释、图形精细操作。三、阅读程序并答复以下问题每题4分,共28
4、分1、写出以下指令运行结果。A=zeros(2,4); A(:)=1:8; s=2 3 5; A(s) Sa=10 20 30 A(s)=Sa ans =2 3 5Sa =102030A =1 20 30 710 4 6 8 2、写出以下指令运行结果。A=reshape(1:16,2,8) A =1 3 5 7 9 11 13 152 4 6 8 10 12 14 16 reshape(A,4,4) ans =1 5 9 132 6 10 143 7 11 154 8 12 16 s=1 3 6 8 9 11 14 16; A(s)=0 A =0 0 5 7 0 0 13 152 4 0 0
5、10 12 0 0 3、写出以下指令运行结果。A=1,2;3,4; B=-1,-2;2,1;S=3;A.*BA*BS.*AS*Bans =-1 -46 4ans =3 05 -2ans =3 69 12ans =-3 -66 34、下面函数主要完成什么功能?function f=factor(n)if n=a&ch=z); ch(k)=ch(k)-(a-A); char(ch) length(k)subch =ABc12revch =9gF65e4d321cBAans =ABC123D4E56FG96、写出以下指令运行结果。A(1,1)=this is cell;A1,2=1 2 3;4 5
6、6;A2,1=1+2*i;A2,2=A1,21+(A1,21(1,1)+A1,21(2,2);celldisp(A)A1,1 =this is cellA2,1 =A1,21 =1 2 34 5 6A2,2 =7 8 910 11 127、在同一个图中绘制两个函数,这两个函数分别是:y=e(-t/3)y0=e(-t/3)*sin(3t)其中y是用红色细实线,而y0是用兰色虚线绘制,t区间是(0:4p),t步长为p/50,t轴和y轴分别用斜粗题指示,图中有网格表示。四、编程题32分1、1、在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间0,4*pi曲线,并用星号
7、*标出两条曲线交点以及建立图例。5分答案clfx=0:pi/200:2*pi;y1=sin(x);y2=cos(x);zz=x(find(abs(y1-y2)0.005)z=min(zz)plot(x,y1,r-,x,y2,g-.)hold onplot(zz,sin(zz),*)legend(sin,cos)2、分别在同一图形窗不同子图绘制y=sin(t)sin(9t)和y=sin(t)sin(9t)及其包络线。4分答案t=(0:pi/100:pi); y1=sin(t)*1,-1; y2=sin(t).*sin(9*t); t3=pi*(0:9)/9; y3=sin(t3).*sin(9*
8、t3);subplot(1,2,1)plot(t,y1,r:,t,y2,b,t3,y3,bo)subplot(1,2,2)plot(t,y2,b)axis(0,pi,-1,1)3、某商场对顾客所购置商品实行打折销售,标准如下(商品价格用price来表示): price200 没有折扣200price500 3%折扣500price1000 5%折扣1000price2500 8%折扣2500price student(iptr).Ave)iptr = jj;endendif ii =iptr temp = student(ii);student(ii) =student(iptr);stude
9、nt(iptr) = temp;endendfor ii=1 : length(student)if student(ii).Ave 80disp(student(ii).Name);disp(student(ii).Ave);endenddisp(student name,blanks(6),student no.,blanks(6),student average);disp( )for ii=1 : length(student)disp(student(ii).Name,blanks(20),student(ii).No,blanks(20),num2str(student(ii).A
10、ve);end答案str1 = ;str2 = ;str3= ;val = cell(5,2)a=zeros(5,1);ave = 0;student = struct(Name,str1,No,str2,Scores,val,Ave,ave);n = input(please input students number:);for i=1 : nstr1 = input(Name:);str2 = input(No.:);%for k=1:2% val(k,:) = input(Curriculums and Scores:);% a(k,1)=valk,2;%end%val(1,:) =
11、input(Curriculum:);%val(:,2) = input(Scores:);val = input(please input five Curriculums and Scores:);for k=1:5a(k,1)=valk,2;endstudent(i).Name = str1;student(i).No = str2;student(i).Scores = val;student(i).Ave = mean(a);end for ii= 1:(length(student)-1)iptr = ii;for jj=ii+1 : length(student)if (stud
12、ent(jj).Ave student(iptr).Ave)iptr = jj;endendif ii =iptr temp = student(ii);student(ii) =student(iptr);student(iptr) = temp;endendfor ii=1 : length(student)if student(ii).Ave 80disp(student(ii).Name);disp(student(ii).Ave);endenddisp(student name,blanks(6),student no.,blanks(6),student average);disp
13、( )for ii=1 : length(student)disp(student(ii).Name,blanks(20),student(ii).No,blanks(20),num2str(student(ii).Ave);end一、填空题每空2分,总共30分1. A=0 9 6;1 3 0;B=1 4 3;1 5 0;写出以下各指令运行结果。A & B 运行结果ans= ;A ./ B 运行结果ans= 。2. 产生4阶全0方阵命令为 zeros(4) ;产生3阶全1方阵命令为 ones(3) 。3. A=rand(2,5);b=size(A);c=length(A);那么b和c值分别为
14、和 2,5,5 。4. 标点符号 分号 可以使命令行不显示运算结果, 百分号 用来表示该行为注释行。5. 用if判断语句判断80 x 60,在MATLAB中if语言后判断应写为 if x60 。6. P, Q分别是个多项式系数矢量,求P对应多项式积分对应常数项为K,使用命令是 polyint(P,K) ;求P/Q解,商和余数分别保存在k和r,使用命令是 k,r=deconv(P,Q) ;7. 为了使两个plot图形在同一个坐标显示,可以使用 hold on 命令进展图形保持;可以使用 grid on 命令为图形添加网格。 save my_data load my_data 。二、选择题每空2分
15、,总共20分1.以下哪个变量定义是不合法 A (A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz2. 以下哪条指令是求矩阵行列式值 C (A) inv (B) diag (C) det (D) eig3. 在循环构造中跳出循环,执行循环后面代码命令为 B (A) return (B) break (C) continue (D) keyboard4. 清空Matlab工作空间内所有变量指令是 C (A) clc (B) cls (C) clear (D) clf5. 用round函数四舍五入对数组2.48 6.39 3.93 8.52取整,结果为 C (A) 2
16、6 3 8 (B) 2 6 4 8 (C) 2 6 4 9 (D) 3 7 4 96. a=2:2:8, b=2:5,下面运算表达式中,出错为 C (A) a*b (B) a .*b (C) a*b (D) a-b7. 角度,计算其正弦函数运算为 D (A) SINdeg2rad(x) (B) SIN(x) (C) sin(x) (D) sin(deg2rad(x)8. 下面程序执行后array值为 ( A )for k=1:10 if k6 break; elsearray(k) = k; end end(A) array = 1, 2, 3, 4, 5, 6 (B) array = 1,
17、2, 3, 4, 5, 6, 7, 8, 9, 10(C) array =6 (D) array =10.9i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后;a, b, c值分别是多少?(A)a=4, b=4, c=2.0000i (C) (D)10. 求解方程x4-4x3+12x-9 = 0 所有解三、写出程序执行结果或写出给定要求指令总共35分1. 写出执行以下代码后C,D,E值 (6分)A=1,2,3;4:6;7:9; C=A;10,11,12,D=C(1:3,2 3)E=C(2,1 2)2. 写出执行以下代码后,MATLAB命令窗口上显示x矩阵值 (5分)x=
18、0,1,0,2,0,3,0,4; for k=1:8 if x(k)=0 x(k)=k; else x(k)=2*k+1; endenddisp(x);3. 创立符号函数并求解,要求写出步骤和运行结果7分(1)创立符号函数f=ax2+bx+c(2)求f=0解4. 求解以下线性方程组,要求写出程序代码和运行结果5分5绘制函数曲线,要求写出程序代码(12分)(1)在区间0:2均匀取50个点,构成向量(2)在同一窗口绘制曲线y1=sin(2*t-0.3); y2=3cos(t+0.5);要求y1曲线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号四、使用MATLAB语言进展编程15分打印出所
19、有水仙花数。所谓“水仙花数,是指一个三位数,其各位数字立方之和等于该数本身。一、填空题1、ans = 0 1 1 1 1 0ans =1.0000 0.6000 NaN2、 zeros(4)ones(3)3、 2 5 5 4、 ;%5、 if x606、 polyint(P,K)k,r= deconv (P,Q)7、 hold ongrid on8、 save my_dataLoad my_data二、选择题1、 A 2、 C 3、 B 4、 C 5、 C 6、 C7、 D 8、 A 9、 C 10、 A三、写出程序执行结果或写出给定要求指令1、 c =D = 2 3 5 6 8 9E = 4
20、 52、1 5 3 9 5 13 7 173、 syms a b c x s = a*x2 + b*x + c; solve(s) ans = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)4、 syms a b c x syms x1 x2 x3 x4 clear syms x1 x2 x3 x4 f = 2*x1 + 3*x2 + x3 + 2*x4 -8; g = x1 + 3*x2 + x4 - 6; h = x1 - x2 + x3 + 8*x4 - 1; i = 7*x1 + x2 - 2*x3 + 2*x4 -5; x1,x
21、2,x3,x4 = solve(f,g,h,i) x1 =13/17x2 =320/187x3 =212/187x4 =19/1875、t = linspace(0, 2*pi, 50);plot(t,y1,r-o ,t,y2,b-*);四、使用MATLAB语言进展编程for k = 100:999a = fix(k/100);b = rem(fix(k/10),10);c = rem(k,10);if a.3 + b.3 + c.3 = kfprintf( “%u,tt, k );endend根本知识填空题(每空1分,共20分)1MATLAB通用命令中列出内存中变量目录可用 whos 命令;
22、假设对函数功能和用法不熟悉,可用 help 命令;显示变量、阵列或文本时,可用 disp 命令;去除工作空间中变量时,可用 clear 命令;保存和恢复工作空间,或者工作空间中特定变量时,可用 save 和 load 命令。2、在MATLAB图形系统中,如果需要给已经绘制好图形加上栅格线,可以使用 grid on 命令,如果需要在指定坐标位置标注文本时使用函数为text ,需要绘制多条曲线,保持当前图形窗口可使用 hold on 命令。3、用MATLAB绘制条形图时可使用 bar(或barh ) 函数,绘制柱状图,用以表示数据值分布情况时可使用 hist 函数。4、MATLAB中用于控制不定次
23、重复循环语句为while(while end) ,假设在循环执行过程中需要终止该循环时采用语句为break 。5、对于MATLAB中多维阵列,在保持所有元素个数和内容不变前提下可以使用 reshape 函数改变其尺寸和维数;利用 cell 函数可以定义单元阵列。6、在MATLAB中,可用内部函数与工具箱函数产生矩阵,其中如果要产生单位阵可用 eye 函数,产生对角阵可用 diag 函数,产生均匀分布随机阵可用rand 函数。7、在MATLAB中,将含有小数数值转换成字符串可用num2str 命令,在字符串中查找子字符串可用findstr 命令。二、选择题(每题4分,共20分)1、设A=2 4
24、3; 5 3 1; 3 6 7,那么sum(A),length(A)和size(A)结果(D )A. 10 13 11 9 3 3 B. 9 9 16 3 3 3C. 9 9 16 9 3 3 D. 10 13 11 3 3 32、以下关于脚本文件和函数文件描述中不正确是( B )A. 去掉函数文件第一行定义行可转变成脚本文件;B. 函数文件可以在命令窗口直接运行;C. 脚本文件可以调用函数文件;D. 函数文件中第一行必须以function开场;3、在Command Window窗口中分别输入以下命令,对应输出结果错误是C )A. x=-3:2 x=-3 -2 1 0 1 2 B. x=zer
25、os(1,2);x0 ans=0 0C. y=diag(eye(3),2). y=0 0 D. 3-2*rand(1,2) ans=1.0997 2.53774、对于矩阵B,统计其中大于A元素个数,可以使用语句是( B )A. length(B) - length(find(BA) C. length(sum(BA) D. sum(length(BA)5、str1=find, str2=fund, str3=I like you,有:k1=sum(str1=str2), k2=sum(strrep(str1,i,u)=str2), k3=findstr(str3,ke), 那么k1,k2,k3
26、结果分别为:( B )A. 3, 3, 5 B. 3, 4, 5 C. 4, 3, 5 D. 3, 4, 6三、程序填空(每空2分,共12分) 编写MATLAB程序,用三阶多项式来拟合数据,在同一图形窗口中绘制拟合前和拟合后两条曲线,并对图形坐标轴进展控制。程序如下:x=1, 2, 3, 4, 5;y=5.1, 6.2, 7.0, 8.2, 9.3;p=polyfit(x,y,3) %采用三阶多项式拟合x2=1:0.1: 5;y2= y2=polyval(p,x2) ; %拟合后曲线figure(1)plot(x,y,o,x2,y2); %绘制曲线m1 = max(y, y2); m2 = m
27、in(y, y2);axis(0 6 m2 m1) ; %用axis调制坐标轴,横坐标在0 6之间,且完全显示图形 title(多项式曲线拟合) ; %加上标题“多项式曲线拟合编写MATLAB程序,对于用户输入向量或矩阵,计算其平均值: x = input(请输入数据 n) 或 x = input(请输入数据) % 提示输入数据并保存到x中,命令行显示“请输入数据y = reshape(x,1, prod(size(x);m = m = mean(y) ; % 计算均值m四、(8分) 为解以下线性方程组,请写出MALAB语言程序。 4 x1 +2 x3 +3 x4 = 9 3 x2 +2 x3
28、 + 3x4 = 8 2 x1 + x4 = 10 x3 -2 x2 + 3x4 =7A=4 0 2 3; 0 3 2 3; 2 0 0 1; 0 -2 1 3; %3分b=9 8 10 7; %2分x=Ab; 或x=inv(A)*b; %3分另一种答案:A=4 0 2 0;0 3 0 -2; 2 2 0 1; 3 3 1 3; %3分b=9 8 10 7; %2分x=b/A;或x=b*inv(A); %3分五、(10分) 利用menu函数输入选择参数len,输入菜单名称为“select an num,根据len取值分别给变量x赋不同值。当len=1时,x值为值为4行3列全0矩阵;当len=2
29、时,x值为3行4列全为5矩阵;当len=3时,x值为5行3列均值为0,方差为1正态分布随机矩阵;当len=4时,x值为字符串“not an array; 当len为其它值时,那么显示“Error。要求使用switch函数。len= menu(select a num,1,2,3,4, 5); %3分switch len % switch 语句格式写对2分case 1 y=zeros(4,3); %1分case 2 y=5.*ones(3,4); %1分case 3 y=5+randn(5,3); %1分case 4 y=not an array; %1分otherwisedisp(Error)
30、 %1分end六、(15分)某混合信号有2个不同频率确知信号,加上正态分布随机噪声构成,噪声功率为4,2个确知信号分别为:、,其中信号频率分别为Hz、Hz,采样频率为Hz,采样点128点,即n=0,1,2,127。编程完成以下内容:(1) 求出信号频谱用到函数有fft和abs。(2) 以图形方式比拟信号波形和信号频谱,要求把图形窗口分成2个子窗口,分别画出:时域信号波形横坐标为 “Time,纵坐标为 “amplitude,标题为 “信号时域与频域波形、信号频谱横坐标为 “frequency(Hz),纵坐标为 “frequency spectral。f1=2; f2=5; fs=20; n=0:
31、127; %1分 s1=10*sin(2*pi*f1*n/fs); %1分 s2=5*sin(2*pi*f2*n/fs); %1分 noise=2*randn(size(n); %2分 s=s1+s2+noise; %1分s_f= fft(s); %1分m_f=abs(s_f); %1分 或m_f=abs(fft(s) %2分f=(0:length(s_f)-1)*fs/length(s_f) 或 f=n*fs/length(n) %2分 figure(1);subplot(2,1,1); plot(n,s); %1分title(信号时域与频域波形); %1分xlabel(Time); yla
32、bel(amplitude); %1分subplot(2,1,2); plot(f,m_f); %1分xlabel(frequency(Hz); ylabel(frequency spectral); %1分七、15分某宿舍有4名同学期末考试成绩为下表所示:姓名nameliweiwangjunliuzhizhanglin课程及成绩英语eng85838090物理phy75846975数学math78927781计算机computer83878278编程完成以下内容:基于表格内容构建构造阵列,构造名为student。对每名同学成绩按学分加权求出综合测评分。其中eng(英语)、物理(phy)、mat
33、h(数学)学分分别为3 4 5 2,综合测评分计算公式如下:,为课程成绩,为相应学分,n为成绩个数。基于表格内容构建单元阵列,单元阵列名为student1,单位阵列中每一行保存一个学生信息,包括学生姓名和学生各门课成绩。通过访问单元阵列,计算每一个学生平均分,将平均分作为一个新域,更新已经建立单元阵列。最终得到单元阵列格式为: 姓名 成绩 平均分学生1学生2学生3学生4 % 构建构造阵列3分,也可用赋值语句逐个赋值student=struct(name,liwei wangjun liuzhi zhanglin,.eng,85 75 78 83, phy 83 84 92 87, math 8
34、0 69 77 82, computer 90 75 81 78 );%加权求平均,%7分w=3 4 5 2; w=w/sum(w); student_num=length(student); syn_score=zeros(1,student_num); for i=1:student_num syn_score(i)=student(i).eng*w(1)+student(i).phy*w(2). +student(i).math*w(3)+student(i) puter*w(4);end构建单元阵列 %3分student1 = liwei , 85 75 78 83; wangjun
35、, 83 84 92 87; liuzhi , 80 69 77 82; zhanglin , 90 75 81 78;for i=1: length(student1)student1i,3 = mean(student1i,2); %更新正确 2分end 根本知识填空题(每空1分,共20分)MATLAB通用命令中假设对函数功能和用法不熟悉,可用 help 命令;显示变量、阵列或文本时,可用 disp 命令;去除工作空间中变量时,可用clear 命令;保存和恢复工作空间,或者工作空间中特定变量时,可用 save 和 load 命令。MATLAB系统提供了两个重要部件: simulink 和toolboxes,它们在系统和用户编程中,占据重要地位。在MATLAB中,可用内部函数与工具箱函数产生矩阵,其中如果要产生单位阵可用 eye 函数,产生全0阵可用 zeros 函数,产生全1阵可用 ones 函数,产生对角阵可用diag 函数。在MATLAB图形系统中,如果需要给已经绘制