MATLAB习题及答案.docx
《MATLAB习题及答案.docx》由会员分享,可在线阅读,更多相关《MATLAB习题及答案.docx(14页珍藏版)》请在冰豆网上搜索。
MATLAB习题及答案
一、填空题
1.MATLAB于1984年由美国Mathworks公司推出,其后每年更新(两)次。
2.MATLAB是一种以(矩阵)运算为基础的交互式程序设计语言。
3.MATLAB具有卓越的数值计算能力和符号计算、文字处理、可视化建模仿真和实时控制等众多功能,其每个变量代表一个(矩阵),每个元素都看作(复数)。
4.通过命令(help)、(lookfor),可以查找所有命令或函数的使用方法。
5.执行语句a=1:
2:
10,得到的一维数组是(13579).
6.执行语句b=linspace(1,10,10)后,一维数组b包含(10)个元素,最大值是(10)。
7.函数rem()的功能是取( 余 )数。
8.若p=[100;110],则p|~p=([111;111]).(注:
填空时请用本题的p的方式表示结果)
9.若p=[100;110],则all(p)=([100]).
10.矩阵的加减运算,要求相加减的矩阵阶数相同。
若A=[1234;2318],则执行语句:
[n,m]=size(A),则n=( 2 ),m=( 4 ).
11.对于一维矩阵,求其长度的函数是(length() ).
12.数组和数组之间的运算,尤其是对于乘除运算和乘方运算,如果采用点方式进行计算,表明是数组的(元素)之间的运算关系。
13.求矩阵运算A*B时,要求在维度上,A的(列 )数与B的( 行 )数相等。
二、判断题
1.MATLAB只有一种数据类型,一种标准的输入输出语句,不需编译,可直接运行。
(对)
2.MATLAB的特殊常量是一些预选定义好的数值变量。
(对)
3.MATLAB变量名不区分大小写。
(错)
4.i是特殊常量。
(对)
5.NAN是非数。
(对)
6.MATLAB中所有的变量都表示一个矩阵或一个向量。
(对)
7.MATLAB中变量不需要先定义后使用,会自动根据实际赋值的类型对变量类型进行定义。
(对)
8.clc命令可以从内存中删除一个、多个和所有变量。
(错)
9.语句a部门男女=[1;2;3]是生成行向量。
(错)
10.矩阵比较时,对应位置元素按照标量运算关系进行比较,最终结果为一个由0和1组成的,与原矩阵同阶数的矩阵。
(对)
11.阶数不同的矩阵可以进行比较运算。
(错)
12.数组之间的运算关系,如果是直接进行乘、除、乘方运算,则是向量或矩阵之间的运算关系。
(对)
13.randn()函数,用来生成随机数组,数组元素均匀分布。
(错)
14.标准函数名以及命令名一般用小写字母。
(对)
15.format命令影响数据输出格式,也会影响数据的计算和存储。
(错)
16.对一个3行3列的矩阵A来说,A(4)代表矩阵A中第二行第一列的元素。
(错)
17.表达式~(9==1)与表达式~9==1的值不相等。
(对)
三、单选题
1.关于命令窗,以下描述不正确的是(C)。
A.可以在命令窗查找函数或命令的使用方法
B.MATLAB的所有函数和命令都可以在命令窗执行
C.可以在命令窗编辑程序
D.程序的运行结果(除图形外)都可以显示在命令窗
2.关于变量的命名规则,以下描述不正确的是(D)。
A.变量名的长度不能超过31个字符
B.变量名不能是MATLAB的命令、函数、M文件名
C.变量名中的字母区分大、小写
D.变量名的第一个字符可以是数字
3.下面哪种方法不能创建一维数组?
(B)
A.线性采样法
B.计算法
C.直接输入法
D.冒号生成法
4.用直接输入法创建二维数组(矩阵),以下哪种描述不正确?
(A)
A.行与行之间用逗号隔开
B.矩阵的维数不必预先定义
C.矩阵元素必须在方括号内
D.同行元素之间用空格或逗号隔开
5.关于二维数组中元素的提取,以下哪种描述不正确?
(C)
A.A(i,j)表示提取第i行、第j列的元素
B.A(:
j)表示提取第j列的所有元素
C.A(:
j)表示提取第j行的所有元素
D.A(i:
i+m,k:
k+m)表示提取第i~i+m行、k~k+m列的所有元素
6.矩阵A、B进行运算,下面哪种运算是不正确的?
(B)
A.A+B
B.A.+B
C.A.*B
D.A\B
7.语句a(3)=[]的功能是(C)。
A创建数组a
B设置元素a(3)的值为空
C删除数组a中的元素
D比较数组元素的值
8.当在命令行窗口执行命令时,如果不想立即在命令行窗口中输出结果,可以在命令后加上( C)。
A.冒号(:
)
B.逗号(,)
C.分号(;)
D.百分号(%)
9.fix(264/100)+mod(264,10)*10的值是( D )。
A.86
B.62
C.423
D.42
10.在命令行窗口输入下列命令后,x的值是( C )。
>>clear
>>x=i*j
A.不确定
B.1
C.-1
D.i*j
11.使用语句x=linspace(0,pi,6)生成的是( B )个元素的向量。
A.5
B.6
C.7
D.8
12.ceil(-2.1)的结果为( A )。
A.-2
B.-3
C.1
D.2
13.eval('sqrt(4)+2')的值是(B )。
A.sqrt(4)+2
B.4
C.2+2
D.2
14.已知a为3×5矩阵,则执行完a(:
[2,4])=[]后( C )。
A.a变成行向量
B.a变为3行2列
C.a变为3行3列
D.a变为2行3列
15.在命令行窗口输入以下命令
>>A=[1:
3];
>>A(5)=100
A的值为( D )。
A.[1:
3:
100]
B.[1:
100]
C.123100
D.1230100
16.关于矩阵的关系运算和逻辑运算,以下描述不正确的是(D)
A.矩阵的比较是对应位置元素按照标量运算关系进行比较。
B.all和any命令都是按列运算的
C.相同阶数的矩阵才能进行比较。
D.矩阵的逻辑运算中,“与”、“或”、“非”的运算优先级相同
17.对以下命令的描述不正确的是(D)
A.ceil()是向+∞方向取整
B.round()是四舍五入取整
C.rem(x,y)运算的结果是x除以y的余数,函数结果的符号与x相同
D.floor(-2.3)的结果是-2
18.对于矩阵A=[204;135;698],以下结果或描述不正确的是(D)
A.[V,D]=eig(A)表示求矩阵A的全部特征值,构成对角矩阵D;求A的特征向量构成列向量V
B.rank(A)=3
C.trace(A)=13
D.det(A)=78
19.对于方阵A,以下结果或描述不正确的是(B)
A.三角分解的命令格式为:
[l,u]=lu(A)
B.求A的转置矩阵的命令格式为:
conj'(A)
C.奇异值分解的命令格式为:
[u,s,v]=svd(A)
D.将矩阵A扩展为4列的命令格式为:
A(:
4)=[5;4;3]
20.关于二维曲线绘制,以下描述不正确的是(A)
A.plot(t,[y1,y2,…])用来在一个图中绘制自变量均为t的多条曲线
B.plot(t,[y1;y2])与plot(t,y1),holdon,plot(t,y2)的作用相同
C.plot(x,y)用来绘制之间的关系曲线,x为横坐标,y为纵坐标
D.plot(x1,y1,x2,y2,…,xn,yn)用来在一个图中绘制横坐标不同的多条曲线
21.在0~4p区间绘制y=5cos(10t+p/3)关系曲线,下述哪个程序正确?
(D)
A.t=0:
4p,y=5*cos(10*t+p/3)
B.t=0:
0.1:
4p,y=5*cos(10*t+p/3)
C.t=0:
4*pi,y=5cos(10t+pi/3)
D.t=0:
0.1:
4*pi,y=5*cos(10*t+pi/3)
22.关于绘图的一些辅助操作,以下描述不正确的是(C)
A.坐标轴标注函数有:
xlabel、ylabel、zlabel。
B.legend可以用来给图形中的所有曲线进行图例标注。
C.颜色和线型要用单引号引起来。
D.可以用title给图形加标题。
23.关于多子图绘制命令subplot(m,n,p),以下说法正确的是(A)
A.将图形窗分为m行、n列个子窗口,在第p个子窗口中绘制图形。
子图的编号顺序为从左到右,从上到下。
B.将图形窗分为m行、n列个子窗口,在第p个子窗口中绘制图形。
子图的编号顺序为从上到下,从左到右。
C.将图形窗分为p个子窗口,在第m行、第n列的子窗口中绘制图形。
D.将图形窗分为m个子窗口,在第n行、第p列的子窗口中绘制图形。
24.图形可以在图形窗进行直接编辑,以下说法不正确的是(C)
A.点击“
”,再按下右键,可以对图形坐标的字体、字号等进行修改或设定。
B.点击“
”,再右键点中曲线,可以对曲线的颜色、线型、线宽等进行修改或设定。
C.不能用Legend给图形中的所有曲线进行图例标注。
D.依次点击edit®copyfigure,可以将图拷贝到Word文档中。
25.关于三维数据可视化,以下说法不正确的是(C)
A.用mesh命令可以绘制三维曲面。
B.用surf命令可以绘制三维曲面。
C.用mesh与surf命令绘制的三维曲面形同。
D.用plot3命令可以绘制三维曲线。
26.关于M文件,以下说法不正确的是(B)
A.函数文件必须以function开始,且必须有函数名。
B.注释行以#开头。
C.菜单方式下可以通过File®open打开M文件。
D.菜单方式下可以通过File®Save保存M文件。
27.以下程序不正确的是(B)
A.n=input(‘n=‘)
switchrem(n,3)
case0;A=3*n
case2;A=2*n
case1;A=n
end
B.n=input(‘n=‘)
ifrem(n,3)==0;A=3*n
elseifrem(n,3)==2;A=2*n
elseA=n
end
end
C.
n=input(‘n=‘)
switchrem(n,3)
case0;A=3*n
case2;A=2*n
otherwise;A=n
end
D.
n=input(‘n=‘)
ifrem(n,3)==0;A=3*n
elseifrem(n,3)==2;A=2*n
elseA=n
end
28.对于下面一段程序,对其描述不正确的是(A)
s1=0;
form=1:
3:
999;
s1=s1+m;
end
s1
A.求1到999之间从1开始、公倍数为3的数列之和。
B.求1到999之间从1开始、公差为3的等差数列之和。
C.最后的s1数值为166167。
D.s1的中间计算结果不会显示在命令窗中。
29.以下说法不正确的是(C)
A.input是一种人机交互命令。
B.程序的错误提示显示在命令窗中。
C.input命令中需要的数据要在文本编辑窗输入。
D.除图形外,其他程序运行结果显示在命令窗在中。
30.以下说法不正确的是(D)
A.用数组表示多项式时,缺少项必须用0表示。
B.基本的数据处理功能是按列进行的。
C.利用corrcoef(x,y)命令计算的相关系数是一个2´2的矩阵。
D.randn(m,n)可以产生在0~1之间均匀分布的m行、n列的随机数矩阵。
(注:
randn()按照正态随机分布,不是均匀的)
31.以下说法不正确的是(C)
A.用各幂次前的系数组成数组表示多项式,顺序为从高到低。
B.用roots命令求多项式的根。
C.不同幂次两个多项式不能进行乘法运算。
D.最高幂次不同的多项式进行加减运算时,表示幂次低的多项式的数组必须前面补0。
32.如果用a,b分别表示两个多项式的系数向量,则关于a,b两个多项式的除法运算,以下说法不正确的是(D)
A.用[q,r]=deconv(b,a)求b/a。
B.用[q,r]=deconv(a,b)求a/b。
C.[q,r]=deconv(b,a)中q是商式,r是余子式。
D.用deconv(a,b)求a/b。
33.以下程序不正确的是(C)
A.在多项式求值的命令中polyval(a,xv),xv代表给定的变量值。
B.用p=polyfit(x,y,n)进行多项式拟合,其中p表示多项式的系数向量。
C.fplot(‘arts’,(0,2))可以绘制arts函数在0~2区间的图形。
(注:
应该是fplot(‘arts’,[0,2]))
D.quad(‘arts’,0,2)可以求arts函数在0~2区间的积分值。
34.如下A、B、C是求解方程组AX=B的命令,D是求矩阵A对应的行列式值 的命令,试判断哪个不正确(C)
A.A1=det(A)
B.X=inv(A)*B
C.X=A/B
D.X=A\B
35.双纵坐标的绘图命令为(A)
A.plotyy(x1,y1,x2,y2)(plotyy(X1,Y1,X2,Y2):
以左、右不同纵轴绘制X1-Y1、X2-Y2两条曲线)
B.ploty(x1,y1,x2,y2)
C.plot(x1,y1,x2,y2)
D.plotyy(x1,y1;x2,y2)
36.下列哪种M文件的创建方式不正确?
(B)
A.在命令窗口键入“edit文件名”。
B.在命令窗直接编写程序
C.File®New®Script。
D.单击快捷工具栏上对应的图标。
37.设y=10cos(Nt+π/6),令N分别为2,4,6,8,绘制t=0~10区间的t-y曲线,取时间间隔为0.1,并将4条曲线分布在一个图形窗的2´2=4个子图中。
则下列哪个程序不正确?
(B)
A.t=linspace(0,10,101);
forN=2:
2:
8;
y=10*cos(N*t+pi/6);
subplot(2,2,N/2)
plot(t,y)
end
B.forN=2:
2:
8;
t=0:
0.1:
10;
y=10cos(Nt+pi/6);
subplot(2,2,N/2)
plot(t,y)
end
C.forN=2:
2:
8;
t=0:
0.1:
10;
y=10*cos(N*t+pi/6);
subplot(2,2,N/2)
plot(t,y)
end
D.forN=2:
2:
8;
t=linspace(0,10,101);
y=10*cos(N*t+pi/6);
subplot(2,2,N/2)
plot(t,y)
end
38.求出1到100之间能被3整除的数,并由此形成一维数组A,再求A的最大值、最小值、平均值、和值及标准差。
下列完成以上运算的哪个程序正确?
(D)
A. X=1:
100;
A=X((mod(X,3)==0))
max(A)
min(A)
aver(A)
sum(A)
std(A)
B.X=1:
100;
A=X((rem(X,3)==0))
max(A)
min(A)
aver(A)
sum(A)
std(A)
C.
X=1:
100;
A=X((mod(X,3)=0))
max(A)
min(A)
mean(A)
sum(A)
std(A)
D.
X=1:
100;
A=X((rem(X,3)==0))
max(A)
min(A)
mean(A)
sum(A)
std(A)
39.写出3´3的魔方矩阵M,并求M的转置矩阵T和M的秩,再由M扩展为4´3阶的矩阵,其中第4行第3列的元素为6。
下述完成以上过程的哪个程序正确?
(A)
A.M=magic(3)
T=M’
rank(M)
M(4,3)=6
B.
M=magic(3,3)
T=M’
rank(M)
M(4,3)=6
C.
M=magic(3,3)
T=conj(M)’
rank(M)
M(4,:
)=[006]
D.
M=magic(3)
T=M’
rank(M)
M(4,:
)=(006)
40.产生两个0-1之间均匀分布的、4´4阶的随机数矩阵A和B,然后对两个矩阵进行求和、相乘、元素群相乘和相除(A为被除矩阵)以及A矩阵的3次方运算。
下列完成以上运算的哪个程序正确?
(B)
A.
A=rand(4,4);
B=rand(4,4);
A+B
A*B
A.*B
A./B
A.^3
B.
A=rand(4,4);
B=rand(4,4);
A+B
A*B
A.*B
A./B
A^3
C.
A=rand(4,4);
B=rand(4,4);
A.+B
A*B
A.*B
A./B
A^3
D.
A=rand(4,4);
B=rand(4,4);
A+B
A*B
A.*B
B./A
A^3
41.已知多项式
,
,欲完成两个多项式相加、相乘和相除
的运算,则以下哪个程序正确?
(B)
A.a=[162];b=[268];C=a+b D=conv(a,b)[q,r]=deconv(a,b)
B.a=[1062];b=[268];C=a+[0,b]D=conv(a,b)[q,r]=deconv(a,b)
C.a=[1062];b=[268];C=a+b D=conv(a,b)E=deconv(a,b)
D.a=[1062]; b=[268];C=a+b D=conv(a,b)[q,r]=deconv(a,b)
42.设
,欲求y的一阶导数和y=0的所有根,并求x=[-4,4]区间y的函数值,且间隔0.5计算一个值,则以下哪个程序正确?
(C)
A.a=[3,7,2,9,12] y1=polyder(a) r=roots(a)x=-4:
0.5:
4 y=polyval(a,x)
B.a=[3,7,2,9,12] y1=polyder(a) r=roots(a)x=-4:
0.5:
4 y=3*x.^5+7*x.^3+2*x.^2+9*x+2plot(x,y)
C.a=[3,0,7,2,9,12] y1=polyder(a) r=roots(a)x=-4:
0.5:
4 y=polyval(a,x)
D.a=[3,0,7,2,9,12] y1=polyder(a) r=roots(a)y=3*x^5+7*x^3+2*x^2+9*x+2plot(x,y)
43.设
,欲画出定义域x=[-2,2]、y=[-2,2]内的三维曲面,则以下哪个程序正确?
(B)
A.x=-2:
0.1:
2;y=x';z=(x.^2).*exp(-(x.^2+y.^2));surf(z)
B.x=-2:
0.1:
2;y=x';X=ones(size(y))*x;Y=y*ones(size(x));z=(X.^2).*exp(-(X.^2+Y.^2));mesh(z)
C.x=-2:
0.1:
2;y=-2:
0.1:
2;X=ones(size(y))*x;Y=y*ones(size(x));z=(X.^2).*exp(-(X.^2+Y.^2));mesh(z)
D.x=-2:
0.1:
2;y=-2:
0.1:
2;z=(x.^2).*exp(-(x.^2+y.^2));surf(z)
四、多选题
1.建立矩阵时,同一行的元素之间用( AB )分隔。
A逗号
B空格
C分号
D中括号
2.在当前文件夹和搜索路径中都有fpp.m文件,那么在命令行窗口输入fpp时,下列说法错误的是( ABC)。
A先执行搜索路径中的fpp.m文件,再执行当前文件夹的fpp.m文件
B执行搜索路径中的fpp.m文件
C先执行当前文件夹的fpp.m文件,再执行搜索路径中的fpp.m文件
D执行当前文件夹的fpp.m文件