MATLAB复习题(答案仅供参考)1

更新时间:2024-01-21 18:41:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、填空题

1. MATLAB命令窗口中可用 clear 命令清除工作区中的变量;用 clc 命令清除命令窗口中的内容。

2. MATLAB中的运算符包括数学运算符、 矩阵运算符 、 数组运算符 。 3 MATLAB的含义为 矩阵运算 。

4. MATLAB中的函数类型有嵌套函数、 主函数 、 子函数 、私有函数和匿名函数。

5. MATLAB中用系统预定义的特殊变量 nargin 表示函数输入参数个数。 6. size命令的功能 确定数组大小 。 7. MATLAB中用linspace 符号定义单元数组。

8. MATLAB中用 hold on 命令打开图形保持功能。

9 MATLAB中如果一个变量名为123,该变量名是否合法 否 (填是或否)。

10. MATLAB中用 inv 函数完成矩阵的求逆运算,用 det 函数求矩阵的行列式。

11.已知C={2+5i,’Hi’;1:4,[1 2]} 输入s=C(3) 即s=__'_Hi__'___.

12.先输入P=struct(‘name’,’ Jack‘,’num’,43) ,再输入s=P.name 即s=___Jack___. 13.当x=[ 1 2 3; 4 5 6] , y=[ 5 8; 5 8 ] 时,__不能__(能 ﹨ 不能 )使用plot 命令绘图。 14.sym 或 syms _能_______(能﹨ 不能 )创建符号矩阵。 15.已知x=3:2:24,则x有__11_个元素。

16.if结构的开始是“if”命令,结束是_end____命令。

17.已知x为一个向量,计算ln(x)的MATLAB命令是计算_log(x)___。

18.命令:>>subplot(3,3,x)中有__9_个子图。

19.已知s=‘显示“hey”’,则s的元素个数是___9__。

20.function y=f() global W W=2 y=f1(5)

function y=f() global W y=w+W

创建以上函数文件,在命令窗口中运行“y=f”命令则显示__出错___。

21. MATLAB中用 find 函数查找数组中的非零元素,用 sort 函数对数组进行排序。

22. MATLAB中的M文件包括 M脚本文件 和 M函数文件 。 23. MATLAB中用系统预定义的特殊变量 eps 表示浮点数的精度。 24. MATLAB中8位有符号整数用 int8 定义。

25. MATLAB中小括号、转置运算符和冒号运算符,具有最高优先级的为 转置运算符 。

26. MATLAB中用系统预定义的特殊变量 nargout 表示函数输出参数个数。 27. MATLAB中用 % 符号表示其后为程序注释。

28. 已知矩阵A,则矩阵A的共轭转置可表示为 A’ 。 29. MATLAB中用 grid on 命令显示坐标轴下的网格线。

30. MATLAB中如果一个函数名为test,该函数名是否合法 是 (填是或否)。 31. MATLAB中用 none 创建一个空数组。

32. MATLAB命令窗口中可用 cd 命令查看当前路径;用 path 命令查看搜索路径。 33 MATLAB中的M文件有 M脚本文件 和 M函数文件 。 34. A=[1,2,3;4,5,6]; A(4)=___5_________, A(2,3)=____6______________。

35. MATLAB中用系统预定义的特殊变量 nargin 表示函数输入参数个数。 36. MATLAB中用系统预定义的特殊变量 inf 表示无穷大。 37. MATLAB中用 linspace 符号定义单元数组。

38. MATLAB中用 hold on 命令打开图形保持功能。

39 A=[1,2;3,4]; B=[1,0;0,1]; A*B=_[1,2;3,4]_________, A.*B=____[1,0;0,4]_________。 40. MATLAB中用 int 函数完成矩阵的求逆运算,用 det 函数求矩阵的行列式。

41.指令 load 将data.mat中的变量u、v、w加载到工作空间中,指令 save 以二进制格式将所有变量存入到matlab.mat中。

42.A=rand(5,5),[n,m]=size(a),则n=( 5 ),m=( 5 ) 。 43. A=[1,2,3;4,5,6]; A(:,[1,3])=[];A=___[2;5]_________。 44. A=[1,2;3,1]; B=[1,0;0,1]; A~=B=__[0,1;1,0]_____________ 45. 使用collect函数化简符号表达式“(x+2)*(x-3)*(x+5)”在横线出补完整程序。 >> syms x;

>> f1=(x+2)*(x-3)*(x+5); >>_g1=collect(f1)_ g1 =

-30+x^3+4*x^2-11*x

46. a=[1 2 2],求a的转置 [1;2;2] 。 47. 计算积分变量“int(f,t,3,5)”,其中_f__为符号表达式;__t__为积分符号变量;__5为积分上限;_3__为积分下限。 48. 运行以下命令: >>x=0:10; >>y1=sin(x); >>y2=5*sin(x);

>>y3=[10*sin(x);20*sin(x)]; >>plot(x,y1,x,y2,x,y3)

则在一个图形窗口中,可以看到__2___条曲线。

49. 符号表达式“g=sym(sin(a*z)+cos(w*v))”中的自由符号变量是__w___。 50. >>syms t >>f1=1/t

>>limitf1_r=limit(f1,'t','0','right'); 中limitf1_r趋向0的右极限为__无穷大__。

二、选择题

1.产生四维单位矩阵的语句为( B).

A.ones(4) B.eye(4) C.zeros(4) D.rand(4) 2.求解线性方程组Ax=b,当det(A)≠0时,方程的解是(A ). A. A\\b B.b/A C.b\\A D.A/b 3. 在MATLAB中下列数值的表示不正确的是( B). A.+99 B.1.3e-5 C.2-3*e^2 D.3-2*pi 4. MATLAB表达式2*2^3^2的结果是( A) A.128 B.4096 C. 262144 D.256 5. 下列变量中比0大的最小数是(3 )

A.i B.realmin C.realmax D.pi

6. 如果x=1: 2 : 8,则x(1)和x(4)分别是(2 ) A.1,8 B.1, 7 C.2, 8 D.2, 7

7. 运行如下程序后,输入9回车,命令窗口(command windows)显示的结果为( D )

x=input('请输入x的值:'); if x==10

y=cos(x+1)+sqrt(x*x+1); else

y=(3^(1/2))*sqrt(x+sqrt(x)); end y

A. 9 B. 8 C. 7 D. 6 8. 图形窗口(Figure)显示网格的命令是(B )

A. axis on B. grid on C. box on D. hold on 9. 已知函数文件如下,则factor(4)=( C )

function f=factor(n) if n<=1 f=1; else

f=factor(n-1)*n; end

A. 4 B. 12 C. 24 D.48 10. 运行如下程序后, 命令窗口(command windows)显示的结果为( D )

A=[13,-56,78; 25,63,-735; 78,25,563; 1,0,-1]; y=max(max(A))

A. y=564 B.y=9 C.y=-735 D.y=563 11.在图形指定位置加标注命令是(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)’); 12. 运行如下程序后, 命令窗口(command windows)显示的结果为( D )

syms x;

f=x*(sqrt(x^2+1)-x); limit(f,x,inf,’left’)

A. 0 B. -1/2 C.0 D. 1/2

13. 运行如下程序后, 命令窗口(command windows)显示的结果为( B )

X=100:(10*11-9); diff(X)

A. 104 B. 1 C.0 D. 50

14. 运行如下程序后, 命令窗口(command windows)显示的结果为( A )

syms x ;

f=sqrt(1+exp(x));

diff(f)

A. 1/2/(1+exp(x))^(1/2)*exp(x) B. sqrt(1+exp(x)) C.1 D.0 15. 下列不属于与三维绘图相关函数是( D )

A. meshgrid B. surf C.mesh D. bar 16.在MATLAB的命令窗口中执行 B 命令,将命令窗口的显示内容清空。 A.clear B.clc C.echo off D.cd

17.在一个模型窗口上按住一个模块并同时按住shift键移动到另一个模型窗口,则(A )。

A 在两个模型窗口都有这个模块 B 在后一个模型窗口有这个模块 C 在前一个窗口有这个模块 D 在两个窗口都有模块并添加连线

18.已知x为一个向量,计算ln(x)的MATLAB命令是计算 B 。 A.ln(x) B.log(x) C.Ln(x) D.lg10(x)

19已知a=0:4,b=1:5,下面说法中错误的为 D 。 A.a+b B.a./b C.a′*b D.a*b

20运行以下命令,则( B)描述是正确的。

>>syms a b c d >>A=[a b;c d]

A A占用的内存小于100B B 创建了5个符号变量 C A占用的内存是a、b、c、d的总和 D 不存在

21以下运算符中哪个的优先级最高 B 。 A.* B.^ C.~= D.|

22计算三个多项式s1、s2和s3的乘积,则算式为 A 。 A.conv(s1,s2,s3) B.s1*s2*s3 C.conv(conv(s1,s2),s3) D.conv(s1*s2*s3)

23运行以下命令: >>x=[1 2 3;4 5 6]; >>y=x+x*i >>plot(y) 则在图形窗口绘制 A 条曲线。 A.3 B.2 C.6 D.4

24运行命令“f=solve(‘x^2+1’)”,则(2 )。

A f是有两个数值元素的行向量 B f是有两个数值元素的列向量。 C f是符号对象 D f只有一个元素

25 subplot(2,1,1)是指 A 的子图。 A.两行一列的上图 B.两行一列的下图 C.两列一行的左图 D.两列一行的右图

26 极坐标图是使用 B 来绘制的。 A.原点和半径 B.相角和距离 C.纵横坐标值 D.实部和虚部

27运行命令“>>a=sym(‘pi’,’d’)”则对于变量a的描述 D 是正确的。 A.a是符号变量 B.a显示为10位的数值 C.a显示为32位的数值 D.a不存在

28运行命令“>>figure(3)”,则执行( B)。

A 打开三个图形窗口 B 打开一个图形窗口

C 打开图形文件名为“3.fig” D 打开图形文件名为“figure 3.fig”

29运行命令“>>a=double(sym(‘sin(pi/2)’))”,则变量a是 C A.符号变量 B.字符串‘1’ C.double型的数值1 D.出错

30运行命令“f=solve(‘x^2+1’)”,则 B A.f是有两个数值元素的行向量 B.f是有两个数值元素起的列向量 C.f是符号对象 D.f只有一个元素

31符号运算符“g=sym(‘sin(a*z)+cos(w*v)’)”中的自由符号变量是 C A.a B.z C.w D.v

32 if结构的开始是“if”命令,结束是 B 命令。 A.End if B.end C.End D.else

33产生对角线上为全1其余为0的2行3列矩阵的命令是(D )。

A ones(2,3) B oner(3,2) C eye(2,3) D eye(3,2)

34 运行以下命令: >>a=eye(5); >>for n=a(2:end,:) ...... 则for循环的循环次数是 B A.5 B.4 C.3 D.1

35关于主函数,以下说法正确的是 B A.主函数名必须与文件名相同 B. 主函数的工作空间与子函数的工作空间是嵌套的 C.主函数中不能定义其他函数 D.每个函数文件中都必须有主函数

36在MATLAB的命令窗口中执行( B )命令,是的数值5.3显示为5.30000000000e+000

A format long B format long e C format short Dformat short e

37 创建以下函数文件,在命令窗口中运行“y=f”命令则显示 D function y=f() global W W=2; Y=f1(5) function y=f1(w) global W y=w+W A.y=5 B.y=2 C.y=7 D.出错

38 在一个模型窗口上按住一个模块并同时按Shift键移动到另一个模块窗口,则 A A.在两个模型窗口都有这个模块 B.在后一个窗口有这个模块 C.在前一个窗口有这个模块 D.在两个窗口都有模块并添加连线 39 运行以下命令,则实现的功能是 c >>add_line(‘exel’,[300,0;300,80;150,80]) A.添加一条直线 B.添加一条有一个转折的折线 C.添加一条有两个转折的折线 D.添加一条从左到右的折线

40 仿真参数设置中,slover的默认设置是 A.ode45 B.ode23 C.ode15 D.ode4

41.MATLAB系统由MATLAB开发环境、MATLAB语言、MATLAB数学函数库、MATLAB图形处理系统和___C_五大部分组成()

A、MATLAB工具栏 B、MATLAB菜单 C、MATLAB应用程序接口 D、命令窗口 41、 在MATLAB的命令窗口中执行>>x=int8(1.8)其输出结果为(D) A、0.8 B、1 C、1.8 D、2 42、下列变量名组成合法的是(D)

A、1_1 B、if C、a% D、a 43、使用from:step:to方式生成向量,“-3:1:3”,其中-3,1,3分别是:(B) A、步长值,结束值,开始值 B、开始值,步长值,结束值 C、结束值,步长值,开始值 D、开始值,结束值,步长值 44、以下命令是取出图中数组第三列元素4,5和6的是:(D)

数组a

A、a([3;6;9]) B、a(3:9)’ C、a([3,4,6]) D、a([7;8;9]) 45、执行以下命令,其输出图形正确的是(A) x=0:1:5; y=2x; plot(x,y)

10987654321010.80.60.40.20-0.2-0.4-0.6-0.8

A B

00.511.522.533.544.55-105101520253010.80.60.40.20-0.2-0.4-0.6500-50-100-150-200

C D

46、设y是一个m*n矩阵,则plot(y)图像为(A)

A、n条曲线,横坐标为向量1:m B、m条曲线,横坐标为向量1:n C、n条曲线,纵坐标为向量1:m D、m条曲线,纵坐标为向量1:n 47、执行_C_命令可得到A=

[a,b ;c,d] A、A=sym(‘[a,b ;c,d]’) B、A=sym(‘[c,d ;a,b]’) C、A= ‘[a,b ;c,d]’ D、A= ‘(a,b ;c,d)’ 48、符号表达式“f=sym(‘sin(a*b)+cos(c*d)’)”中的自由符号变量是(D) A、a B、b C、c D、d 49、执行一下命令>>syms a x y

>>f=(sin(a*x)+y^2*cos(x)) ; >>dfdx=diff(f) 表示(D)

A、对a求一阶微分 B、对y求一阶微分 C、对x求二阶微分 D、对x求一阶微分

-1051015202530-250051015202530-0.850、if结构开始是“if ”命令,结束是_C___命令 A、End if B、End C、end D、else

51、运行以下命令,for循环的循环次数不是5次的是(D)

A、for n=1:5 B、for n=1:1:5 C、for n=linspace(1,5,5) D、a=eye(5,3);for n=a 52、有一M函数“function c=ex5_8(a b)”保存为“ex_5_7.m”则以下调用该函数正确的命令是(C)

A、z=ex5_8(1,2) B、z=ex5_8 C、z=ex5_7(1,2) D、z=ex5_7(1,2).m 53、关于Simulink模型.mdl文件,下面说法不正确的是(D)

A、.mdl文件是ASCLL文件 B、.mdl文件可以在M文件编辑器窗口中查看

C、.mdl文件可以在模型窗口中查看 D、.mdl文件中的模型可以在图像编辑器中查看 54在MATLAB的命令窗口中执行_C____命令,使数据输出显示为十六进制表示。()

A.format long B.format rat C.format hex D.format short e

55已知x=0:5,则x有___B__个元素。() A.5 B.6 C.7 D.8

56三维图形中默认视角是___C__度。()

A.方位角=0 俯仰角=90 B.方位角=90 俯仰角=0 C.方位角=37.5 仰俯角=30 D.方位角=0 仰俯角=180

57将符号表达式化简为因式分解形式,使用_____函数。(D) A.collect B.expand C.horner D.factor

58 模块名的修改是___C__。() A.在参数设置对话框中实现

B.在模块旁双击鼠标后出现的编辑框中实现 C.在模块的下面或旁边的编辑框中 D.在模块的属性窗口中

59与命令linspace(2,10,5) 产生的向量相同的命令___B___。 A. a=[2 10 5] B. a=2:2:10

C. a=logspace(2,10,5) D. a=2 4 6 8

60 已知数组a =[1 2;4 5 ] ,则a (1,:)是指__B_____。 A. 第一列向量 B. 第一行向量 C. 整个数组 D. 第三行向量

61 f1=(x-1)*(x-2)*(x-3) 要把表达式化简为嵌套的形式,应用____C___指令。 A. collect B. expand C.horner D.factor

62 输入指令f1=sym(‘x+3/2’) 和 [N1,D1]=numden(f1)后,N1=_C____ A. x+3 B. 2 C. 2*x+3 D. 3/2

三、简答题

1.简述MATLAB命令窗的主要作用。

命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的 所有执行结果。是MATLAB提供给用户使用的管理功能的人机界面,其管 理功能包括:管理工作空间中的变量、数据的输入输出的方式和方法,开发、 调试、管理M文件和M函数的各种工具。

2.简述MATLAB如何解释命令窗口输入的指令。

分配变量空间;调用函数;运算;返回结果;打印显示

3.简述MATLAB函数的基本结构。

函数的基本结构包括函数名,输入变量,输出变量,函数体等 matlab的函数的基本结构是

function 输出变量=函数名(输入变量) 函数体 例如

function c=mysum(a,b) c=a+b;

4.简述绘制二维图形的一般步骤。

绘制二维图形的一般步骤为:曲线数据准备、选定图形窗及子图位置、调用二 维曲线绘图指令、设置轴的范围、坐标分格线、图形注释、图形的精细操作。

5.MATLAB的变量命名有什么规则?能用”NaN”来作为变量名吗,为什么? 变量可以包括数字、字母、下划线,必须以字母开头 可以,因为符合变量名命名规则

6.M文件有哪两种,各有什么特点? M脚本文件和M函数文件 特点:

M脚本文件:

? 它只是一串按用户意图排列而成的MATLAB指令集合。

? 脚本运行产生的所有变量都驻留在MATLAB基本工乍空间中。 M函数文件:

? 从形式上看,与脚本文件不丗,函数文集件的第一行总是以function引导的函数申

明行。

? MATLAB允许使用比标称贷数目少的输入、输出量,实现对函数的调用。

? 从运行上看,与脚本文件运行不同,每当函数文件运行,MATLAB就会专门为它开辟

一个临时工作空间。

? 函数空间随具体M函数文件的被调用而产生,随调用结束而删除。 ? 假如在函数文件中,发生对某脚本文件的调用,那么该脚本文件运行产生的所有变量

都存放于那 个函数空间之中,而不是放在基本空间之中。

7.现有下列脚本程序,请分析该“for”循环执行情况并写出该程序运行结果 for m=1:4

for n=1:4

H(m,n)=m^2+n^2 end end

可知循环16次

H =

2 5 10 17 5 8 13 20 10 13 18 25 17 20 25 32

8.简述M脚本文件和M函数文件的主要区别。

M脚本文件没有参数传递功能,但M函数文件有此功能。 M函数文件的格式有严格规定,它必须以“ function ”开头,其格式如下: Function 输出变量=函数名称(输入变量) 语句; end; 当函数输入变量为向量输入(多输入)时,输入形式为[x1,x2,x3...]的一元向量形式;输出同

理。

M函数文件的命名必须是其函数名,不可改变。 M脚本文件则为完成一固定功能的模块,其运行时产生的变量均为全局变量,区别于M函数的局部变量,并且没有参数传递。 四、综合题

1、创建一个函数名为ex3_3,的M函数文件,要求输入任意两个参数,能输出这两个参数的成积。并写出能调用该函数的正确命令。

function n=ex3_3(a,b) n=a*b end

z=ex3_3(18,20) n = 360 z = 360

2、在for循环中计算f(x)=3*x,当f(x)>31时程序终止运算。并输出各次运行结果。 x=0:30; for n=x f=3*n; if f>31 break end end

f=3*(0:n) 结果: f =

0 3 6 9 12 15 18 21 24 27 30 33

3、用MATLAB软件编写一个程序。求方程组

(2*x1+3*x2-x3=6; x1-2*x2+4*x3=12; 5*x1-3*x2+x3=8)的解。并输出结果。 解:A=[2,3,-1;1,-2,4;5,-3,1];

B=[6;12;8]; X=A\\B 结果 X =

2.0000 1.8000 3.4000

4、编写程序分别对符号表达式“f=3*x^2+5*y^3-4*x+6*y”的x和y求一阶微分。并写出结果。 解:smys x y

f=3*x^2+5*y^3-4*x+6*y;

dfdx=diff(f)% 对x求一阶微分 dfdx =

6*x-4 %结果

dfdy=diff(f,y)% 对y求一阶微分 dfdy =

15*y^2+6 %结果 阅读下述MATLAB脚本程序

A=[3 5 7 9;0 2 4 1;6 4 4 8]; B=ones(3,3); b=A([1 2],2:3); B(4,4)=5;

A([1,2],:)=[]; C=[A;B(:,1:3)'];

D=reshape(C,2,8); 写出b、A、B、C、D的结果. b =

5 7 2 4 A =

6 4 4 8 B =

1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 5 C =

6 4 4 8

1 1 1 0 1 1 1 0 1 1 1 0 D =

6 1 4 1 4 1 8 0

1 1 1 1 1 1 0 0

4235、已知多项式和a(x)?2x?3x?5b(x)?x?3x?1,编写脚本程序计算

1) 多项式a(x)+b(x) 2) a(x)*b(x)

2) 多项式a(x)/b(x)的部分分式展开。 解:

a=[0,3,0,3,5]; b=[1,0,3,0,1]; c1=a+b;

c2=conv(a,b);

[r,p,k]=residue(a,b)

6、编写MATLAB程序,以0.2为步长绘制正弦曲线sin??t?和余弦曲线cos??t?在[0,2?]之间的图形,分别位于图形窗口的二个子图中,正弦曲线以红色虚线绘制,并且用星号标注每个节点,余弦曲线以红色实线绘制,用圆标注每个节点。

解:

x1=0:0.2:pi; y1=sin(pi*x1); y2=cos(pi*x1);

subplot(1,2,1),plot(x1,y1,’h:r’) subplot(1,2,2),plot(x1,y2,’r-o’)

7、求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值,并将程序跟结果写到答卷上。 解: x=8 s=1

for n=1:4

s=s*(x-n) end

8、编写M脚本文件sy2,使用for循环计算f=5^x,当f(x)>500就终止程序,在命令窗口中调用函数文件,求终止程序时f的值和n运行的值分别为多少?并将程序跟结果写到答卷上。 解:

function[y]=f(x) for x=1:00 f=5^x if >500 f=z n=x break end end

4235、已知多项式和a(x)?2x?3x?5b(x)?x?3x?1,编写脚本程序计算

1) 多项式a(x)+b(x) 2) a(x)*b(x)

2) 多项式a(x)/b(x)的部分分式展开。 解:

a=[0,3,0,3,5]; b=[1,0,3,0,1]; c1=a+b;

c2=conv(a,b);

[r,p,k]=residue(a,b)

6、编写MATLAB程序,以0.2为步长绘制正弦曲线sin??t?和余弦曲线cos??t?在[0,2?]之间的图形,分别位于图形窗口的二个子图中,正弦曲线以红色虚线绘制,并且用星号标注每个节点,余弦曲线以红色实线绘制,用圆标注每个节点。

解:

x1=0:0.2:pi; y1=sin(pi*x1); y2=cos(pi*x1);

subplot(1,2,1),plot(x1,y1,’h:r’) subplot(1,2,2),plot(x1,y2,’r-o’)

7、求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值,并将程序跟结果写到答卷上。 解: x=8 s=1

for n=1:4

s=s*(x-n) end

8、编写M脚本文件sy2,使用for循环计算f=5^x,当f(x)>500就终止程序,在命令窗口中调用函数文件,求终止程序时f的值和n运行的值分别为多少?并将程序跟结果写到答卷上。 解:

function[y]=f(x) for x=1:00 f=5^x if >500 f=z n=x break end end

本文来源:https://www.bwwdw.com/article/pdro.html

Top