Matlab-期末考试题库(共12套卷) 下载本文

A(:)=1:8;

s=[2 3 5]; A(s)

Sa=[10 20 30]' A(s)=Sa ans = 2 3 5 Sa = 10 20 30 A =

1 20 30 7

10 4 6 8

2、写出下列指令运行结果。 A=reshape(1:16,2,8) reshape(A,4,4)

s=[1 3 6 8 9 11 14 16]; A(s)=0

答案:A=reshape(1:16,2,8) A =

1 3 5 7 9 11 13 15 2 4 6 8 10 12 14 16

reshape(A,4,4) ans = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16

s=[1 3 6 8 9 11 14 16]; A(s)=0 A =

0 0 5 7 0 0 13 15 2 4 0 0 10 12 0 0

3、写出下列指令运行结果。

A=[1,2;3,4]; B=[-1,-2;2;1]; S=3;

A.*B A*B S.*A S*B

答案: ans = -1 -4 6 4 ans = 3 0 5 -2 ans = 3 6 9 12 ans = -3 -6 6 3

4、下面的函数主要完成什么功能? function f=factor(n)

if n<=1 f=1;

else

f=factor(n-1)*n;

End

答:利用函数的递归调用,求n!。 四、程序填空(每空3分,共15分)

1. 编写MATLAB程序,在同一图形窗口中绘制y1和y2两条曲线,并对图形坐

标轴进行控制。程序如下: x = -3:0.1: 3;

y1 = 2*x+5; y2 = x.^2-3*x; plot(x,y1); %绘制曲线y1 ①; %保持曲线y1① hold on plot(x,y2); %绘制曲线y2

m1 = max([y1, y2]); m2 = min([y1, y2]);

②; %用axis调制坐标轴,横坐标在[-3 3]之间,且完全显示图形 ③; %加入图形注释,横坐标为“时间”,纵坐标为“幅度”

2. 编写MATLAB程序,对于用户输入的向量或矩阵,计算其平均值和方差:

④; % 提示输入数据并保存到x中,命令行显示“请输入数据” y = reshape(x,1,prod(size(x))); m = mean(y); % 计算均值m ⑤; % 计算方差v ① hold on

② axis([-3 3 m2 m1])

③ xlabel(‘时间’); ylabel(‘幅度’);

④ x = input(‘请输入数据 \\n’) 或 x = input(‘请输入数据’) ⑤ v = var(y)或 1/(length(y)-1) * (sum((y-m).^2))

五、编程题(40分)

1、分别在同一图形窗的不同子图绘制y=sin(t)sin(9t)和y=sin(t)sin(9t)及其包络线。(5分)

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])

2、编写程序实现f(n)=f(n-1)+f(n-2)(f(1)=1和f(2)=2)函数。(5分) function f=fab(n) if (n==1) f = 1;

elseif (n==2) f =2; else

f = fab(n-1) + fab(n-2);

End

3、求解以下线性方程组,要求写出程序代码和运行结果(5分)

2x1-3x2+x3+2x4=8 x1+3x2+x4=6 x1-x2+x3+8x4=1 7x1+x2-2x3+2x4=5 >> 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,x2,x3,x4] = solve(f,g,h,i) x1 =

13/17 x2 = 320/187 x3 = 212/187 x4 = 19/187

4、打印出所有的水仙花数。所谓“水仙花数”,是指一个三位数,其各位数字立方之和等于该数本身。(10分) for k = 100:999 a = fix(k/100);

b = rem(fix(k/10),10); c = rem(k,10);

if a.^3 + b.^3 + c.^3 == k

fprintf( “%u,\\t\\t”, k ) ; end end

第三套

MATLAB试卷

一、填空题(每题2分,共10题,共20分,错一个得1分,错2个得0分)

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

2.MATLAB中的运算包括、、。 3.MATLAB中的M文件有、。

4.MATLAB中的程序控制结构包括、、。

5.已知矩阵A[1 2 3;4 5 6;7 8 9],A(6)A(1,3)。

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

7.在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形, 可以使用 函数。

8.MATLAB提供了函数和函数来绘制三维曲面图。 9.用if语句判断60≤x≤80,在MATLAB中if语言后面的判断应写为 。 10.为了使两个plot的图形在同一坐标显示,可以使用命令进行图形保持,可以使用命令为图形添加网格。

二、选择题(每题2分,共10题,共20分) 1.下列哪个变量的定义是不合法的

(A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz 2.在循环结构中跳出循环,执行循环后面代码的命令为

(A) return (B) break (C) continue (D) keyboard 3、下列变量名中是合法的。

(A) char_1 ; (B) x*y ; (C) x\\y ; (D) end 4. 如果x=1:-1:-8,则x(1)和x(5)分别是

A.-1,-3 B.-1,-7 C.-1,-6 D.1,-3

5. 在MATLAB中下列数值的表示不正确的是 A.+25 B.1.3e-5 C.4-3*e^2 D.3-2*pi

6. 用round函数四舍五入对数组[2.48 6.39 3.93 8.52]取整,结果为 (A) [2 6 3 8] (B) [2 6 4 8] (C) [2 6 4 9] (D) [3 7 4 9] 7.下列哪条指令是求矩阵的行列式的值

(A) inv (B) diag (C) det (D) eig 8. 在图形指定位置加标注命令是

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)’); 9.i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后;a, b, c的值分别 (A)a=4, b=4, c=2.0000i

(B)a=4, b=2.0000i, c=2.0000i (C)a=2.0000i, b=4, c=2.0000i

(D)a=2.0000i, b=2.0000i, c=2.0000i

10、在循环结构中跳出循环,但继续下次循环的命令为

(A) return; (B) break ; (C) continue ; (D) keyboard

三、简答题(每题7.5分,共4题,共30分) 1.A = [1 2; 3 4]; B = [1 2; 1 4]; 写出下面几条指令的运行结果: C = A*B D = A+B E = A.*B

2.在MATLAB窗口中,用哪两种方法启动Simulink?

3.判断下列一段程序的错误,并进行改正。 x=-2:0.2:2; y=x.^2; plot(x,y)

str1 = num2str(min(x));% 数字转化为字符串 str2 = num2str(max(x));% 数字转化为字符串 out = [Value of f from 'str1' to 'str2']; xlabel(out);