MATLAB历年考试题目附答案.docx
- 文档编号:29634084
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:46
- 大小:112.94KB
MATLAB历年考试题目附答案.docx
《MATLAB历年考试题目附答案.docx》由会员分享,可在线阅读,更多相关《MATLAB历年考试题目附答案.docx(46页珍藏版)》请在冰豆网上搜索。
MATLAB历年考试题目附答案
历年考试题目(附答案)
一、填空题
1、MATLAB常用操作界面包括、工作空间窗口、、、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。
2、MATLAB中Inf或inf表示、NaN或nan表示、nargout表示。
3、MATLAB中逗号主要用作;用作输入量与输入量之间的分隔符;。
4、工作空间浏览器主要用于内存变量的、和。
5、MATLAB实现将全下标转换为单下标的指令为、据单下标换算出全下标的指令为。
6、二维数组的标识有、、“逻辑1”标识。
二、简述下列命令在MATLAB中的作用
1.clf%清除图对象
clear%清除工作空间内的所有变量
clc%清除当前屏幕上显示的所有内容,但不清除工作空间中的数据
2.ceil%沿+∞方向取整
factor%符号计算的因式分解
3.sph2cart%球坐标变为直角坐标
pow2%2的幂
4.digits(d)%设置当前的可变算术精度的位数为整数d位
vpa(pi,100)%设置当前pi的小数位数为100
5.boxon%打开框状坐标轴开
gridoff%网格关
6.logspace%对数分度向量
cat%串接成高维数组
7.sym2poly%符号多项式转变为双精度多项式系数向量
poly2sym%双精度多项式系数转变为向量符号多项式
8.plot3%三维线图
poly2str%以习惯方式显示多项式
9.bar%二维直方图
pie%二维饼图
10.zoomon%打开图形缩放模式edit%M文件编辑
11.whos%对当前工作空间变量的信息进行列表
figure%生成图形窗口
12.cart2sph%直角坐标变为球坐标
pol2cart%极或柱坐标变为直角坐标
13.diff%数值差分、符号微分
dsolve%符号计算解微分方程
14.ezplot3%画三维曲线的简捷指令
fix%向零取整
factor%符号计算的因式分解
三简答题
1.叙述MATLAB的主要窗口包括哪些?
其作用是什么?
命令窗口(CommendWindow)——供输入命令,实现计算或绘图功能。
工作空间窗口(Workspace)——用于列出数据的变量信息,包括变量名、变量字节大小
变量数组大小、变量类型等内容。
当前目录浏览器(CurrentDirectory)(Currentfolder7.9版)——显示当前目录下所有文件的文件名、文件夹类型和最后修改时间等内容。
命令历史窗口(CommendHistory)——显示窗口所有执行过的命令,利用该窗口,可以查看曾经执行过的命令,也可以重复利用这些命令。
2.MATLAB的变量命名有什么规则?
能用”pi”来作为变量名吗,为什么?
.变量名区分大小写;
变量名最多包含63个字符,其后的字符将被忽略;
变量名必须以一个字母开始,其后可以是如意数量的字母、数字或下划线;
变量名中不允许出现标点符号,因为许多标点符号在MATLAB中有特殊意义。
不能以“pi”来作为变量,因为“pi”在MATLAB中默认为3.1416,若要定义可改为大写的”PI”。
3.将数据采用excel形式(*.xls)存储,如何导入MATLAB?
导入后在
命令窗口中有该数据的结果没有?
将存放数据的excel文件存放在matlab/work目录下,如起名为aa,导入的时候键入:
x=xlsread('aa.xls','sheet1')。
即可,其中sheet1是存放数据的表单。
在Workspace,点击aa,将显示表格数据内容。
4.你知道几种数据矩阵的建立方式?
请简述并举例。
不规则矩阵可直接在命令窗口输入>>X=[135;7911;368]
X=135
7911
368
规则矩阵的创建
增量矩阵创建方式,一般格式为X=(First:
Increment:
Last)
>>X=(0:
2:
10)
X=
0246810
5.在命令窗口中输入“a=[2222]”,请问:
1)可以用“a”直接表示多项式吗?
若能,请写出该多项式的数学表达式.
能,
2)如果输入命令poly(a),则表示什么意思?
是求取矩阵特征多项式系数的函数
3)写出将第2)问的多项式转换成自变量为“x”的符号形式的完整命令。
>>poly2sym(a,'x')
ans=
2*x^3+2*x^2+2*x+2
6.M文件的基本结构是什么?
各结构部分起什么作用?
1、函数声明行
2、H1行%帮助文字的第一行,给出M文件帮助最关键的信息
3、帮助文字%对M文件更为详尽的说明
4、M文件正文%所实现的功能部分
5、注释部分%
7.subplot(3,3,[26])表示什么意思?
画出该分块图在整个句柄图像中的位置示意图。
形式:
subplot(m,n,p)或者subplot(mnp)。
说明:
P也可以是向量表示将P 中指定的小块合并成一个大块创建坐标系,P中指定的小块可以不连续,甚至不相连。
比如subplot(2,3,[25])表示将第2和5小块连成一个大块;subplot(2,3,[26])由于2和6不连续也不相连,此时表示将第2、3、5和6四块连成一个大块,相当于subplot(2,3,[2356])
8.现有下列脚本程序,请解释该程序的作用。
x=[515253520];
x=
515253520
ee=[20-212^2sqrt(4)];
ee=
20-2142
subplot(222)
pie(x,ee)
9.简述MATLAB历史指令窗的主要作用。
10.简述空数组的功用。
11.简述MATLAB函数的基本结构。
12.简述绘制二维图形的一般步骤。
四阅读程序指令
13.写出下列指令的运行结果。
>>a=zeros(3,3)
a=
000
000
000
>>a(3,4)=5^2
a=
0000
0000
00025
>>a(6)=100
a=
0000
0000
0100025
>>a(:
3)
ans=
0
0
0
>>a(:
:
)
ans=
0000
0000
0100025
>>size(a)
ans=
34
14.写出下列指令的运行结果。
>>A=1:
2:
7.5
A=
1357
>>B=1:
4
B=
1234
>>C=[B;A]
C=
1234
1357
>>D=fliplr(C)
D=
4321
7531
>>E=sort(D)
E=
4321
7531
15.写出下列指令的运行结果。
>>X=[2,0;2,4];Y=[-1-4;10];A=2;都有有“;”符号,所以不以显示
>>X.*Y
ans=
-20
20
>>X*Y
ans=
-2-8
2-8
>>X.*A
ans=
40
48
16.写出下列指令的运行结果。
>>a=eye(4);
>>b=pascal(4)
b=
1111
1234
13610
141020
>>tril(b,0)
ans=
1000
1200
1360
141020
>>a
ans=
0111
1111
1111
1111
>>a=b
a=
1111
1234
13610
141020
17.写出下列指令的运行结果。
>>a=[52-6;678;12108;204030];
都有有“;”符号,所以不以显示
>>median(a)
ans=
9.00008.50008.0000
>>cumsum(a)
ans=
52-6
1192
231910
435940
>>diff(a,2)
ans=
5-2-14
22722
18.下列指令表示建立了什么数组?
每一数组各由什么组成(用数学上的矩阵形式表示出来)?
>>t0{1,1}=[345660];
>>t1{1,2}={'okok','wo'};
>>t2{2,1}='wehaveatest';
>>t3{2,2}=[3*8+2];
19.现有下列脚本程序,请分析该“for”循环执行情况并写出该程序运行结果。
form=1:
3
forn=1:
3
H(m,n)=m^2+n
end
end
生成三行三列的数组,
m=1,n=1,2,3时,依次生成H=[234]
m=2,n=1,2,3时,依次生成H=[234;567]
最后结果
H=
234
567
101112
20.写出下列指令的运行结果
>>f=sym('2*x^3+x+20')
f=
2*x^3+x+20
>>p=sym2poly(f)
p=
20120
>>f1=poly2sym(p,’y’)
f1=
2*y^3+y+20
21.编写一个脚本程序实现:
在同一图上分别用红色虚线和绿色点划线绘制函数y1=sinx和y2=x2+2x-1在区间[-10,10]的曲线,标题为“用作图法求两条函数曲线的交点”,x轴为“自变量x”,y轴为“函数y1、y2的曲线”,并给出图例“‘y1=sinx’,‘y2=x2+2x-1’”。
x=-10:
1:
10;
y1=sin(x);
y2=x.^2+2*x-1;
plot(x,y1,'r--');
holdon
plot(x,y2,'c-.');
xlabel('自变量x');
ylabel('函数y1、y2的曲线');
title('用作图法求两条函数曲线的交点');
legend('y1=sin(x)','x^2+2x-1');
五、阅读程序并回答问题
1、写出下列指令运行结果。
A=zeros(2,4);
A(:
)=1:
8;
s=[235];
A(s)
Sa=[102030]’
A(s)=Sa
2、写出下列指令运行结果。
A=reshape(1:
16,2,8)
reshape(A,4,4)
s=[13689111416];
A(s)=0
3、写出下列指令运行结果。
A=[1,2;3,4];
B=[-1,-2;2;1];
S=3;
A.*B
A*B
S.*A
S*B
4、下面的函数主要完成什么功能?
functionf=factor(n)
ifn<=1
f=1;
else
f=factor(n-1)*n;
end
5、写出下列指令运行结果。
ch=‘ABc123d4e56Fg9’;
subch=ch(1:
5)
revch=ch(end:
-1:
1)
k=find(ch>=‘a’&ch<=‘z’);
ch(k)=ch(k)-(‘a’-‘A’);
char(ch)
6、写出下列指令运行结果。
A(1,1)={'thisiscell'};
A{1,2}={[123;456]};
A{2,1}=[1+2*i];
A{2,2}=A{1,2}{1}+(A{1,2}{1}(1,1)+A{1,2}{1}(2,2));
celldisp(A)
7、下面的程序完成功能是什么?
t=0:
pi/50:
4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,'-r',t,y0,':
b',t,-y0,':
b')
xlabel(‘\bf\itt’);
ylabel(‘\bf\ity’);
gridon;
四、编程题
1、1、在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及建立图例。
2、分别在同一图形窗的不同子图绘制y=sin(t)sin(9t)和y=sin(t)sin(9t)及其包络线。
3、某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<200没有折扣
200≤price<5003%折扣
500≤price<10005%折扣
1000≤price<25008%折扣
2500≤price<500010%折扣
5000≤price14%折扣
输入所售商品的价格,求其实际销售价格。
4、编写程序实现f(n)=f(n-1)+f(n-2)(f
(1)=1和f
(2)=2)函数。
5、编写一个学生成绩管理的程序
A.构造一个学生结构,包括学生的学号,姓名,课程名称(限五门),考试成绩和平均值等域;
B.从键盘上,连续输入N个学生的情况,分别将这些学生的情况填入到相应的域,若域中没有值即为空或0并计算平均成绩写入到平均值域。
C.根据平均值排序,并输出学生的姓名、学号和平均成绩。
参考答案
一、填空题
1、MATLAB常用操作界面包括命令窗口、工作空间窗口(浏览器)、命令历史窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、帮助导航/浏览器、图形窗口等。
2、MATLABInf或inf表示无穷大、NaN或nan表示不是一个数、nargout表示函数输出宗量数目。
3、MATLAB中逗号主要用作要显示计算结果的指令与其后指令的分隔;
用作输入量与输入量之间的分隔符;用作数组元素分隔符号。
4、工作空间浏览器主要用于内存变量的查阅、保存和编辑。
5、MATLAB实现将全下标转换为单下标的指令为Sub2ind、据单下标换算出全
下标的指令为Ind2sub。
6、二维数组的标识有“全下标”标识、“单下标”标识、“逻辑1”标识。
7、在一个元胞数组A中寻访第2行第3列元胞元素用A(2,3);寻访数组第
2行第3列元胞中的内容用A{2,3}。
8、MATLAB中clf用于清除图形窗、clc用于清除指令窗中显示内容、clear
用于清除MATLAB工作空间中保存的变量。
二、简答题
9.简述MATLAB历史指令窗的主要作用。
历史指令窗记录着用户在MATLAB指令窗中所输入过的所有指令。
历史记录
包括:
每次开启MATLAB的时间,每次开启MATLAB后在指令窗中运行过
的所有指令。
应用功能有单行或多行指令的复制和运行、生成M文件等。
10.简述空数组的功用。
“空”数组的功用:
在没有“空”数组参与的运算时,计算结果中的“空”
可以合理地解释“所得结果的含义”;运用“空”数组对其他非空数组赋值,
可以改变数组的大小,但不能改变数组的维数。
11.简述MATLAB函数的基本结构。
典型M函数文件的结构:
函数申明(定义)行(Functiondeclarationline)、
H1行(Thefirsthelptextline)、在线帮助文本(Helptext)区、编写和修改记录、
函数体(Functionbody)。
12.简述绘制二维图形的一般步骤。
绘制二维图形的一般步骤为:
曲线数据准备、选定图形窗及子图位置、调用二维曲线绘图指令、设置轴的范围、坐标分格线、图形注释、图形的精细操作。
三、阅读程序并回答问题
1、写出下列指令运行结果。
A=zeros(2,4);
A(:
)=1:
8;
s=[235];
A(s)
Sa=[102030]'
A(s)=Sa
ans=
235
Sa=
10
20
30
A=
120307
10468
2、写出下列指令运行结果。
A=reshape(1:
16,2,8)
A=
13579111315
246810121416
reshape(A,4,4)
ans=
15913
261014
371115
481216
s=[13689111416];
A(s)=0
A=
0057001315
2400101200
3、写出下列指令运行结果。
A=[1,2;3,4];
B=[-1,-2;2,1];
S=3;
A.*B
A*B
S.*A
S*B
ans=
-1-4
64
ans=
30
5-2
ans=
36
912
ans=
-3-6
63
4、下面的函数主要完成什么功能?
functionf=factor(n)
ifn<=1
f=1;
else
f=factor(n-1)*n;
end
利用函数的递归调用,求n!
。
5、写出下列指令运行结果。
ch=‘ABc123d4e56Fg9’;
subch=ch(1:
5)
revch=ch(end:
-1:
1)
k=find(ch>=‘a’&ch<=‘z’);
ch(k)=ch(k)-(‘a’-‘A’);
char(ch)
length(k)
subch=
ABc12
revch=
9gF65e4d321cBA
ans=
ABC123D4E56FG9
6、写出下列指令运行结果。
A(1,1)={'thisiscell'};
A{1,2}={[123;456]};
A{2,1}=[1+2*i];
A{2,2}=A{1,2}{1}+(A{1,2}{1}(1,1)+A{1,2}{1}(2,2));
celldisp(A)
A{1,1}=
thisiscell
A{2,1}=
1.0000+2.0000i
A{1,2}{1}=
123
456
A{2,2}=
789
101112
7、在同一个图中绘制两个函数,这两个函数分别是:
y=e(-t/3)
y0=e(-t/3)*sin(3t)
其中y是用红色的细实线,而y0是用兰色的虚线绘制,t的区间是(0:
4),
t的步长为/50,t轴和y轴分别用斜粗题指示,图中有网格表示。
四、编程题
1、答案
clf
x=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-.')
holdon
plot(zz,sin(zz),'*')
legend('sin','cos')
2、答案
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*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=input('请输入商品价格');
switchfix(price/100)
case{0,1}%价格小于200
rate=0;
case{2,3,4}%价格大于等于200但小于500
rate=3/100;
casenum2cell(5:
9)%价格大于等于500但小于1000
rate=5/100;
casenum2cell(10:
24)%价格大于等于1000但小于2500
rate=8/100;
casenum2cell(25:
49)%价格大于等于2500但小于5000
rate=10/100;
otherwise%价格大于等于5000
rate=14/100;
end
price=price*(1-rate)%输出商品实际销售价格
4、答案
functionf=fab(n)
if(n==1)
f=1;
elseif(n==2)
f=2;
else
f=fab(n-1)+fab(n-2);
end
5、答案
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('pleaseinputstudentsnumber:
');
fori=1:
n
str1=input('Name:
');
str2=input('No.:
');
%fork=1:
2
%val(k,:
)=input('CurriculumsandScores:
');
%a(k,1)=val{k,2};
%end
%val(1,:
)=input('Curriculum:
');
%val(:
2)=input('Scores:
');
val=input('pleaseinputfiveCurriculumsandScores:
');
fork=1:
5
a(k,1)=val{k,2};
end
student(i).Name=str1;
student(i).No=str2;
student(i).Scores=val;
student(i).Ave=mean(a);
end
forii=1:
(length(student)-1)
iptr=ii;
forjj=ii+1:
length(student)
if(student(jj).Ave>student(iptr).Ave)
iptr=jj;
end
end
ifii~=iptr
temp=student(ii);
student(ii)=student(iptr);
student(iptr)=temp;
end
end
forii=1:
length(student)
ifstudent(ii).Ave>80
disp(student(ii).Name);
disp(student(ii).Ave);
end
end
disp(['studentname',blanks(6),'studentno.',blanks(6),'studentaverage']
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 历年 考试 题目 答案