matlab 复习资料.docx
《matlab 复习资料.docx》由会员分享,可在线阅读,更多相关《matlab 复习资料.docx(22页珍藏版)》请在冰豆网上搜索。
![matlab 复习资料.docx](https://file1.bdocx.com/fileroot1/2023-2/7/04e8aea9-5b4f-4728-9692-f922f5b77e82/04e8aea9-5b4f-4728-9692-f922f5b77e821.gif)
matlab复习资料
MATLAB重点难点
一、简述下列命令或函数在MATLAB中的作用。
1.bar二维直方图
2.clf清除图对象
3.clear清除工作空间内的所有变量
4.clc清除当前屏幕上显示的所有内容,但不清除工作空间中的数据
5.ceil沿+∞方向取整。
6.cell(m,n)创建一个m×n的空细胞矩阵
7.diff数值差分、符号微分
8.dsolve符号计算解微分方程
9.disp显示矩阵和文本
10.editM文件编辑
11.exit退出Matlab
12.eye(n)生成n×n的单位矩阵
13.format数据显示格式控制命令
14.factor符号计算的因式分解
15.figure生成图形窗口
16.fix向零取整
17.factor符号计算的因式分解
18.legend在当前图形中显示图例
19.linspace创建等间隔行向量
20.log以e为底的对数,即自然对数lnx
21.logspace创建对数刻度分度等间隔行向量
22.num2str数值转化为字符串
23.mod(x,y)返回x/y的正余弦
24.mean(x)向量x的元素的平均值
25.plot二维线图函数
26.poly2str以习惯方式显示多项式
27.pow22的幂次
28.pie二维饼图
29.sign符号函数,取值1,0,-1
30.size返回数组维数的大小
31.sort(x)将数组x中的元素按升序排序
32.sqrt平方根
33.str2num字符串转化为数值
34.syms创建多个符号变量
35.xlable给当前轴对象中的x轴贴标签
二、填空题
1.MATLAB系统由MATLAB开发环境、MATLAB数学函数、MATLAB语言、MATLAB图形处理系统和MATLAB应用程序接口(API)五大部分构成。
2.在命令窗口中输入quit或exit命令,就可以关闭MATLAB系统。
3.在MATLAB环境中,如果不特别指明存放数据和文件的目录,MATLAB总是默认地将它们存放在当前文件夹中。
4.MATLAB的主界面窗口包括命令窗口、当前文件夹浏览器、工作空间浏览器和历史命令窗口等部分。
5.编辑程序时,标点符号一定要在英文状态下输入,分号‘;’的作用为:
1.用做矩阵的行间分隔符,2.用做不显示计算结果的命令。
6.标点符号;可以使命令行不显示运算结果,%用来表示该行为注释行。
7.x为0~4pi,步长为0.1pi的向量,使用命令x=0:
0.1*pi:
4*pi创建。
8.输入矩阵A=
,使用全下标方式用A(2,2)取出元素“-5”,使用单下标方式用A(8)取出元素“7”。
9.在符号表达式sin(2*a+t)+m中主变量为t。
10.设x是一个元素个数大于3的一维数组,则x的倒数第3个元素表示为x(end-2);设y为二维数组,要删除y的第4行和5列,可使用命令y(4,:
)=[],y(:
5)=[]。
11.要从键盘读入一个字符串并赋值给变量x,且给出提示“Whoisshe?
”,应使用命令:
x=input(‘Whoisshe?
’,’s’)。
12.在MATLAB命令窗口中,“>>”标志为MATLAB的命令行提示符,“│”标志为输入提示符。
13.已知A=[123;450;789];B=[103;150;012];写出下列各指令运行的结果。
A+Bans=[2,2,6;5,10,0;7,9,11];
A.*Bans=[1,0,9;4,25,0;0,8,18];
A==Bans=[1,0,1;0,1,1;0,0,0];
14.MATLAB的程序文件的扩展名是.m。
15.MATLAB中最基本的二维绘图函数的名称为plot
16.执行A=[1,2,3;4,5,6];A(:
[1,3])=[];语句后,A=[2;5]。
17.fix(-1.5)=-1,round(-1.5)=-2。
18.执行A=[13;46];C=[A,eye(size(A));A,ones(size(A))]命令之后,
C的值为:
[1310;4601;1311;4611]。
19.若A=[1,2,3;4,5,6];则A(4)=5,A(2,3)=6。
20.若A=[123;654];则reshape(A,3,2)=[15;63;24]。
21.若A=[1,2;3,1];B=[1,0;0,1];则A~=B的值为[01;10]。
22.若A=[4,15,45,10,6,56,0,17];则find(A>=10&A<=20)=[248]。
23.产生4阶全0方阵的命令为zeros(4);产生3阶全1方阵的命令为ones(3)。
24.A=rand(2,5);b=size(A);c=length(A);则b和c的值分别为[25]和5。
25.若用if语句判断80≥x>60,在MATLAB语言中if后面的逻辑表达式应写为:
x<=80&x>60。
26.为了使两个plot的图形在同一个坐标显示,可以使用holdon命令进行图形保持;可以使用gridon命令为图形添加网格。
27.a=[122],求a的转置,结果为:
a=[1;2;2]。
28.MATLAB表达式3*2^3^2的结果是192。
29.对x进行赋值,从5到25,间隔是0.1,命令为:
x=5:
0.1:
25。
30.对x进行赋值,从2到20,线性等刻度,共100个数值,使用命令为:
x=linspace(2,20,100)。
31.MATLAB命令窗口中可用clear命令清除工作区中的变量;用clc命令可以清除命令窗口中的内容。
32.MATLAB中的M文件有命令文件和函数文件两种形式。
33.MATLAB中的系统预定义的特殊变量inf表示正无穷大。
34.设X=[2468;1357],则X(3)=4。
X(2,2)=3。
find(X>5)的值为:
[578]’。
X(find(X>5))的值为:
[687]’。
35.取矩阵A的第r行的命令为:
A(r,:
),取矩阵A的第r行的命令为:
A(:
r)。
36.依次提取矩阵A的每一列,将A拉伸为一个列向量的命令为:
A(:
)。
37.设A的大小为3×4,则使用命令reshape(A,1,12)将生成一个12个元素的行向量。
38.设B=’MATLABR2015a’,则B
(2)=’A’,B([25])=’AA’,B([2:
5])’ATLA’。
39.设B=’MATLABR2015a’,则findstr(B,’A’)的值为:
[25]。
40.在MATLAB中可利用串操作函数char和strvcat创建多行串数组。
三、选择题
1.用来保存MATLAB工作空间浏览器中变量的文件的默认扩展名为(B)。
A.txtB.mat
C.mD.exe
2.MATLAB计算结果的的默认变量为(D)。
A.varB.eps
C.nanD.ans
3.用来清除工作空间中保存的变量的命令是(C)。
A.deleteB.cancel
C.clearD.clc
4.下列标识符中哪一项不是Matlab的永久常数值。
(B)
A.piB.exp
C.InfD.eps
5.下列标识符中哪一项是Matlab的合法变量名。
(A)
A.n_ageB.3_tel
C.forD.x*y
6.下列函数中用来计算不大于自变量的最大整数的函数是(A)。
A.floor(x)B.rat(x)
C.fix(x)D.round(x)
7.下列函数中用来计算不小于自变量的最大整数的函数是(A)。
A.ceil(x)B.rat(x)
C.fix(x)D.round(x)
8.函数mod(-7,3)的计算结果为(B)。
A.-2B.2
C.1D.-1
9.函数rem(-7,3)的计算结果为(D)。
A.-2B.2
C.1D.-1
10.为了将保存在文件abvar.mat中的变量重新装载到工作空间中,应使用命令(C)。
A.saveabvarB.findabvar
C.loadabvarD.getvarabvar
11.下列变量中的最大数是(C)。
A.epsB.realminC.realmaxD.-pi
12.下列表示可以作为MATLAB的变量的是(D)。
A.abcd-2B.xyz_2#C.@hD.X_1_a
13.如果x=1:
2:
8,则x
(1)和x(4)分别是(B)。
A.1,8B.1,7C.2,8D.2,7
14.如果x=1:
-2:
-8,则x
(1)和x(5)分别是(D)
A.1,-8B.-1,-7C.-1,-8D.1,-7
15.MATLAB表达式2*2^3^2的结果是(A)
A.128B.4096C.262144D.256
16.下列哪个变量的定义是不合法的(A)。
A.abcd-3B.xyz_3C.abcdefD.x3yz
17.指出下列错误的指令(B)。
A.symsab;B.symsa,b;C.syms(‘a',‘b');D.syms(‘a','b','positive');
18.下列哪条指令是求矩阵的行列式的值(C)。
A.invB.diagC.detD.eig
19.清空Matlab工作空间内所有变量的指令是(C)。
A.clcB.clsC.clearD.clf
20.下列变量名中(A)是合法的。
A.char_1B.x*yC.x\yD.end
21.产生四维单位矩阵的语句为(B)。
A.ones(4)B.eye(4)C.zeros(4)D.rand(4)
22.求解线性方程组Ax=b,当det(A)≠0时,方程的解是(A)。
A.A\bB.b/AC.b\AD.A/b
23.图形窗口显示网格的命令是(B)
A.axisonB.gridonC.boxonD.holdon
24.在图形指定位置加标注命令是(C)
A.title(x,y,’y=sin(x)’);B.xlabel(x,y,’y=sin(x)’);
C.text(x,y,’y=sin(x)’);D.legend(x,y,’y=sin(x)’);
25.i=2;a=2i;b=2*i;c=2*sqrt(-1);程序执行后;a,b,c的值分别是多少?
(C)
A.a=4,b=4,c=2.0000iB.a=4,b=2.0000i,c=2.0000i
C.a=2.0000i,b=4,c=2.0000iD.a=2.0000i,b=2.0000i,c=2.0000i
26.在循环结构中跳出循环,但继续下次循环的命令为(C).
A.return;B.break;C.continue;D.keyboard
27.已知a=2:
2:
8,b=2:
5,下面的运算表达式中,出错的为(C)
A.a'*bB.a.*bC.a*bD.a-b
28.在循环结构中跳出循环,执行循环后面的代码的命令为(B)
A.returnB.breakC.continueD.keyboard
29.用round函数四舍五入对数组[2.486.393.938.52]取整,结果为(C)
A.[2638]B.[2648]C.[2649]D.[3749]
30.角度x=[304560],计算其正弦函数的运算为(D)
A.SIN(deg2rad(x))B.SIN(x)C.sin(x)D.sin(deg2rad(x))
四、阅读程序
1.分析下面程序运行后s1,n1,s2,n2,m的值。
s1=0;s2=0;n1=0;n2=0;
x=[1,-4,-8,3,10,-9,7,-3,10,8,-5,-2,2,0];
m=length(x);
fori=1:
m
ifx(i)<0
s1=s1+x(i);
n1=n1+1;
else
s2=s2+x(i);
n2=n2+1;
end
end
s1,n1,s2,n2,m
答:
-31,6,41,8,14
2.写出下列程序运行结果
mysum=0;i=1;
while(i<=100)
mysum=mysum+i;
i=i+1;
end
mysum
答:
mysum=
5050
3.写出执行以下代码后,MATLAB命令窗口上显示的x矩阵的值。
x=[0,1,0,2,0,3,0,4];
fork=1:
8
ifx(k)==0
x(k)=k;
else
x(k)=2*k+1;
end
end
disp(x);
答:
1539513717
4.运行如下程序后,输入9回车,命令窗口显示的结果为:
c=input('请输入一个字符','s');
ifc>='A'&c<='Z'
disp(setstr(abs(c)+abs('a')-abs('A')));
elseifc>='a'&c<='z'
disp(setstr(abs(c)-abs('a')+abs('A')));
elseifc>='0'&c<='9'
disp(abs(c)-abs('0'));
else
disp(c);
end
答:
9
5.运行如下程序后,命令窗口显示的结果为:
s=0;
a=[12,13,14;15,16,17;18,19,20];
fork=a
s=s+k;
end
disp(s');
答:
394857
6.运行如下程序后,命令窗口显示的结果为:
k=0;
forn=100:
200
ifrem(n,21)~=0
k=k+1;
continue
end
break;
end
k
答:
5
7.已知函数文件如下,则factor(4)的值为:
functionf=factor(n)
ifn<=1
f=1;
else
f=factor(n-1)*n;
end
end
答:
24
8.下面程序执行后array的值为:
fork=1:
10
ifk>6
break;
else
array(k)=k;
end
end
答:
array=[1,2,3,4,5,6]
五、简答题:
1.什么是MATLAB的搜索路径?
若在命令提示符后输入符号X,请问Matlab将按什么次序搜索和识别X?
2.叙述MATLAB的主要窗口包括哪些?
其作用是什么?
⏹命令窗口:
供输入命令,实现计算或绘图功能。
⏹工作空间窗口:
用于列出数据的变量信息,包括变量名、变量字节大小
⏹变量数组大小、变量类型等内容。
⏹当前目录浏览器:
显示当前目录下所有文件的文件名、文件夹类型和最后修改时间等内容。
⏹命令历史窗口:
显示窗口所有执行过的命令,利用该窗口,可以查看曾经执行过的命令,也可以重复利用这些命令。
3.MATLAB的变量命名有什么规则?
⏹变量名区分大小写;
⏹变量名最多包含63个字符,其后的字符将被忽略;
⏹变量名必须以一个字母开始,其后可以是如意数量的字母、数字或下划线;
⏹变量名中不允许出现标点符号,因为许多标点符号在MATLAB中有特殊意义。
4.函数M文件的基本结构是什么?
各结构部分起什么作用?
1、函数声明行
2、H1行%帮助文字的第一行,给出M文件帮助最关键的信息
3、帮助文字%对M文件更为详尽的说明
4、M文件正文%所实现的功能部分
5、注释部分%
5.MATLAB系统由那些部分组成?
●MATLAB系统主要由开发环境、
●MATLAB数学函数库、
●MATLAB语言、
●图形功能
●应用程序接口五个部分组成。
6.有几种建立矩阵的方法?
各有什么优点?
可以用四种方法建立矩阵:
●直接输入法,如a=[2573],优点是输入方法方便简捷;
●通过M文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改;
●由函数建立,如y=sin(x),可以由MATLAB的内部函数建立一些特殊矩阵;
●通过数据文件建立,该方法可以调用由其他软件产生数据。
7.创建符号变量有几种方法?
答:
MATLAB提供了两种创建符号变量和表达式的函数:
sym和syms。
sym用于创建一个符号变量或表达式,用法如x=sym(‘x’)及f=sym(‘x+y+z’);
syms用于创建多个符号变量,用法如symsxyz。
f=sym(‘x+y+z’)
相当于
symsxyz
f=x+y+z
8.举例说明如何访问单元数组中的数据,说明使用花括号和圆括号的区别。
六、编程题
1.编写MATALAB程序,完成下列任务:
⏹在区间[0,4*pi]上均匀地取20个点构成向量;
⏹分别计算函数y1=sin(t)与y2=2cos(2t)在向量t处的函数值;
⏹在同一图形窗口绘制曲线y1=sin(t)与y2=2cos(2t),要求y1曲线为黑色点画线,y2曲线为红色虚线圆圈;并在图中恰当位置标注两条曲线的图例;给图形加上标题“y1andy2”。
解,程序如下:
t=linspace(0,4*pi,20);
y1=sin(t);
y2=2*cos(2*t);
plot(t,y1,'k-.');
text(1.2,sin(1.2),'y1\leftarrow','FontSize',12);
holdon;
plot(t,y2,'r--o');
text(6,1.5,'y2\leftarrow','FontSize',12);
title('y1andy2')
2.编写一个脚本程序实现:
在同一图上分别用红色虚线和绿色点划线绘制函数y1=sinx和y2=x2+2x-1在区间[-10,10]的曲线,标题为“用作图法求两条函数曲线的交点”,x轴为“自变量x”,y轴为“函数y1、y2的曲线”,并给出图例“‘y1=sinx’,‘y2=x2+2x-1’”。
(7分)
解:
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');
3.A是一个維度m×n的矩阵,写一段程序,计算出A中有多少个零元素(不能调用系统函数)。
答:
A=input('请输入一个矩阵')
[m,n]=size(A);
sig=0;
fori=1:
m
forj=1:
n
ifA(i,j)==0
sig=sig+1;
end
end
end
disp(sig)
4.向量A=[
].写一段程序,找出A中的最小元素(不能调用系统函数)。
答:
A=input('请输入一个向量')
[m,n]=size(A)
min=A(1,n);
fori=1:
n
ifA(1,i)min=A(1,i)
end
end
disp(min)
5.编写程序判断下列线性方程组是否有解。
(1)
解:
clear
clc
A=[326;359;6415];
b=[696]';
B=[Ab];
n=3;
rA=rank(A);
rB=rank(B);
formatrat
ifrA==rB&rA==n
X=A\b
elseifrA==rB&rAx0=A\b
Z=null(A,'r')
else
disp('equitionnosolve')
end
(2)
解:
clear
clc
A=[1-23-1;3-15-3;21-22];
b=[123]';
B=[Ab];
n=4;
rA=rank(A)
rB=rank(B)
formatrat
ifrA==rB&rA==n
X=A\b
elseifrA==rB&rAx0=A\b
Z=null(A,'r')
else
disp('equitionnosolve')
end
6.编写程序:
输入一个整数,若能被2整出,则显示它为偶数,否则显示为奇数。
clc
clear
n=input('输入一个整数:
');
ifmod(n,2)==0
disp('偶数')
else
disp('奇数')
end
7.编写利用for和while两种循环语句求
程序。
clc
clear
s=0;
fork=0:
64
s=s+2^k;
end
disp(s)
clc
clear
s=0;
k=0;
whilek<=64
s=s+2^k;
k=k+1;
end
disp(s)
8.编写输入正整数n计算
的值的程序。
clc
clear
while1
n=input('输入一个正整数:
');
ifn>0
s=0;
fork=1:
n
s=s+k;
end
disp([s,log(s)])
else
break
end
end
clear
9.编写程序寻找含n个元素的数组中的最大元素和最小元素,及其所在的相应位置的下标。
clc
clear
a=[345465233333434332353];
n=length(a);
max=a
(1);
min=a
(1);
maxIndex=1;
minIndex=1;
fork=2:
n
ifmaxmax=a(k);
maxIndex=k;
end
ifmin>a(k)
min=a(k);
minIndex=k;
end
end