MATLAB及其应用1

MATLAB及其应用1
MATLAB及其应用1

一、选择题

1. 设A=[2 4 3; 5 3 1; 3 6 7],则sum(A),length(A)和size(A)的结果( D )

A. [10 13 11] 9 [3 3]

B. [9 9 16] 3 [3 3]

C. [9 9 16] 9 [3 3]

D. [10 13 11] 3 [3 3]

2. 下列关于脚本文件和函数文件的描述中不正确的是( B )

A. 去掉函数文件第一行的定义行可转变成脚本文件;

B. 函数文件可以在命令窗口直接运行;

C. 脚本文件可以调用函数文件;

D. 函数文件中的第一行必须以function开始;

3. 在Command Window窗口中分别输入下列命令,对应输出结果错误的是

( C )

A. x=[-3:2] x=[-3 -2 1 0 1 2]

B. x=zeros(1,2);x>0 ans=[0 0]

C. y=diag(eye(3),2)’ y=[0 0]

D. 3-2*rand(1,2) ans=[1.0997 2.5377]

4. 对于矩阵B,统计其中大于A的元素个数,可以使用的语句是( B )

A. length(B) - length(find(B<=A))

B. sum(sum(B>A))

C. length(sum(B>A))

D. sum(length(B>A))

5. 已知str1=’find’, str2=’fund’, str3=’I like you’,有:k1=sum(str1==str2),

k2=sum(strrep(str1,’i’,’u’)==str2), k3=findstr(str3,’ke’), 则k1,k2,k3的结果分别为:( B )

A. 3, 3, 5

B.3, 4, 5

C. 4, 3, 5

D. 3, 4, 6

6. 已知a=2:2:8, b=2:5,下面的运算表达式中,出错的为(C)

(A) a'*b (B) a .*b (C) a*b (D) a-b

7. 角度x=[30 45 60],计算其正弦函数的运算为(D)

(A) SIN(deg2rad(x)) (B) SIN(x) (C) sin(x) (D) sin(deg2rad(x))

8. 下面的程序执行后array的值为(A)

for k=1:10

if k>6

break;

else

array(k) = k;

end

end

(A) array = [1, 2, 3, 4, 5, 6] (B) array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

(C) array =6 (D) array =10.

9.i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后;a, b, c的值分别是多少?( 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. 求解方程x4-4x3+12x-9 = 0 的所有解(A)

(A)1.0000, 3.0000, 1.7321, -1.7321

(B)1.0000, 3.0000, 1.7321i, -1.7321i

(C)1.0000i, 3.0000i, 1.7321, -1.7321

(D)-3.0000i, 3.0000i, 1.7321, -1.7321

1.下列哪个变量的定义是不合法的(A)

(A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz

2. 下列哪条指令是求矩阵的行列式的值(C)

(A) inv (B) diag (C) det (D) eig

3. 在循环结构中跳出循环,执行循环后面代码的命令为(B)

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

4. 清空Matlab工作空间内所有变量的指令是(C)

(A) clc (B) cls (C) clear (D) clf

5. 用round函数四舍五入对数组[2.48

6.39 3.93 8.52]取整,结果为(C)

(A) [2 6 3 8] (B) [2 6 4 8] (C) [2 6 4 9] (D) [3 7 4 9]

二、填空题

1.产生4阶全0方阵的命令为【zeros(4)】;产生3阶全1方阵的命令为【ones(3)】。

2. A=rand(2,5);b=size(A);c=length(A);则b和c的值分别为【 2 】和【5】。

3. 标点符号【分号】可以使命令行不显示运算结果,【百分号】用来表示该行为注释行。

4. 用if判断语句判断80≥ x >60,在MATLAB中if语言后的判断应写为【x<=80&x>60 】。

5. P, Q分别是个多项式的系数矢量,求P对应的多项式的积分(对应的常数项为K),使用的命令是【polyint(P,K)】;求P/Q 的解,商和余数分别保存在k和r,使用的命令是【[k,r]=deconv(P,Q)】;

6. 为了使两个plot的图形在同一个坐标显示,可以使用【hold on】命令进行图形保持。

1. 已知A=[0 9 6;1 3 0];B=[1 4 3;1 5 0];写出下列各指令运行的结果。

A &

B 的运行结果ans=【[0 1 1;1 1 0 ]】;

A ./

B 的运行结果ans=【 [0 2.2500 2.0000; 1.0000 0.6000 NaN ]】。

6.关闭所有已经打开的图像窗口的指令是【 Close all 】。

三、简答题

1.在进行算术运算时,数组运算和矩阵运算各有什么要求,运算符有什么区别?

答:进行数组运算的两个数组必须有相同的尺寸,进行矩阵运算的两个矩阵必须满足矩阵运算规则。

在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算。

2.有哪几种建立矩阵的方法?各有什么优点?

答:可以用四种方法建立矩阵:

(1)从键盘直接输入矩阵的元素;

(2)通过M文件建立矩阵,适用于建立尺寸较大、较复杂的矩阵,并且易于修改;

(3)由函数建立,可以由MATLAB的内部函数建立一些特殊矩阵;

(4)通过数据文件建立,该方法可以调用由其他软件产生数据。

3.if语句有哪几种结构?

答:

(1)单分支if语

if 条件

语句 end

(2)双分支if语句

if 条件

语句组1

else

语句组2

end

(3)多分支if语句

if 条件1

语句组1

elseif 条件2

语句组2

...

elseif 条件m

语句组m

else

语句组n

end

4.MATLAB的变量命名有哪些规则?

答:(1)变量名对大小写敏感;

(2)变量名的第一个字符必须为英文字母,其长度不能超过31个字符;

(3)变量名可以包含下连字符、数字,但不能包含空格符、标点。

5. 函数文件的基本结构?

答:(1)function函数声明行(函数文件引导行)

(2)注释说明部分

(3)函数体语句

6.叙述MATLAB的主要窗口包括哪些?其作用分别是什么?

答:(1)命令窗口(Commend Window)

用于输入命令并显示除图形以外的所有执行结果。

(2)工作空间窗口(Workspace)

用于存储各种变量和结果的内存空间。

(3)当前目录窗口(Current Directory)

是MATLAB运行时的工作目录,显示当前目录下所有文件的文件名、文件夹类型等内容。

(4)命令历史记录窗口(Commend History)

保存所有执行过的命令,利用该窗口,可以查看曾经执行过的命令,也可以重复利用这些命令。

7.命令文件和函数文件的主要区别?

答:(1)命令文件没有输入参数,也不返回输出参数,而函数文件可以带输入参数,

也可以返回输出参数。

(2)命令文件对MATLAB工作空间中的变量进行操作,文件中所有命令执

行的结果也完全返回到工作空间,而函数文件中定义的变量为局部变量。

(3)命令文件可以直接运行,在MATLAB命令窗口输入命令文件名字,

就会顺序执行命令文件,而函数文件需要以函数调用的方式来运行。

8.简述绘制一个三维曲面所需步骤?

答:(1)定义x轴和y轴的取值范围;

(2)利用meshgrid函数将x轴和y轴取值范围内的X-Y平面离散化为一系列网格点;

(3)求得函数在X-Y平面这些离散点上的函数值;

(4)利用mesh或surf函数绘制三维曲面。

四、读程序题

1. s=0; 参见P67例4.10

a=[12,13,14;15,16,17;18,19,20;21,22,23];

for k=a

s=s+k;

end

disp(s');

运行结果为: 39 48 57 66

2. P=[1 2 3]; 参见P152例6.13

Q=[3 6 4];

q=polyder(P,Q)

运行结果为:q= 12 36 50 26

3. syms x t 参见P202 例7.3

f=x*cos(x*t);

f1=diff(f);

f2=diff(f,x,2);

f3=diff(f,t,3);

f1=cos(x*t)-x*sin(x*t)*t

f2=-2*sin(x*t)*t-x*cos(x*t)*t^2

f3=x^4*sin(x*t)

4. ch='ABc123d4e56Fg9';(参见P33)例2.6

revch=ch(end:-1:1);

k=find(revch>='A'&revch<='Z'); 找大写字母的位置

revch(k)= revch (k)-('A'-'a'); 大写字母变成相应的小写字母

ch=char(revch)

运行结果:ch=9gf65e4d321cba

5. function f=factor(n) 参见P73例4.18

if n<=1

f=1;

else

f=factor(n-1)*n;

end

将上述函数保存为factor.m;并运行下述程序:

s=0;

for i=1:3

s=s+factor(i);

end

s

运行结果为s= 9

6. X=linspace(0,2*pi,5);参见P156 例6.18

Y=sin(X);

DY=diff(Y);

D2Y=diff(Y,2);

D3Y=diff(Y,3);

DY

D2Y

D3Y

运行结果:

DY= 1.0000 -1.0000 -1.0000 1.0000

D2Y=-2.0000 -0.0000 2.0000

D3y=2.0000 2.0000

7.function f=price(a) 参见P63 例4.5

switch fix(a/100);

case {0,1,2}

rate=0;

otherwise

rate=0.05

end

f=a*(1-rate)

运行结果

price (300)= 285 .

五、编写程序题

1.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分~100分为A,80分~89分为B,70~79分为C,60~

69分为D,60分以下为E。要求:

(1)用switch语句实现。(2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩则输出“error”。参见教材P 参考答案:

x=input('请输入一个成绩'); switch floor(x/10) case {9,10} disp('成绩等级为:A'); case {8}

disp('成绩等级为:B'); case {7}

disp('成绩等级为:C'); case {6}

disp('成绩等级为:D'); case {0,1,2,3,4,5}

disp('成绩等级为:E');

otherwise disp('error')

end

2.若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是 完数。编写程序,求[1,600]之间的全部完数。 (参见P70 例4.14) for m=1:600 s= 0;

for k=1:m/2 if rem(m,k)==0 s=s+k; end end

if m==s disp(m); end end

3.某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price 来表示):

price<200没有折扣; 200≤price<500 3%折扣;500≤price<1000 5%折扣;1000≤price<2500 8%折扣 2500≤price<5000 10%折扣;5000≤price 14%折扣 输入所售商品的价格,求其实际销售价格。(参见教材P63)

price = input ('请输入商品价格'); switch fix(price/100)

case {0,1} rate = 0; case {2,3,4} rate =3/100; case num2cell(5:9) rate =5/100; case num2cell(10:24) rate =8/100; case num2cell(25:49) rate = 10/100; otherwise

rate 14/100; end

price =price*(1-rate)

4.已知x=6,y=5,利用符号表达式求y

x x z -++=31 ( 参见教材P192)

x=sym('6'); y=sym('5');

z=(x+1)/(sqrt(3+x)-sqrt(y))

5.在一个图形窗口中以子图形式分别绘制正弦、余弦、正切、余切在[0,2*pi]上的曲线,并标明各图形的标题、x轴和y轴。(参

见教材P92 例5.7)

x=linspace(0,2*pi,60);

y=sin(x);z=cos(x);

t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps);

subplot(2,2,1);

plot(x,y);title('sin(x)');axis ([0,2*pi,-1,1]);xlabel('independent variable X');

ylabel('independent variable Y'); text(pi,0.5,'y=sin(x)');

subplot(2,2,2);

plot(x,z);title('cos(x)');axis ([0,2*pi,-1,1]);xlabel('independent variable X');

ylabel('independent variable Y');text(2.8,0,'y=cos(x)');

subplot(2,2,3);

plot(x,t);title('tangent(x)');axis ([0,2*pi,-40,40]);xlabel('independent variable X');

ylabel('independent variable Y');text(2,20,'tangent(x)');

subplot(2,2,4);

plot(x,ct);title('cotangent(x)');axis ([0,2*pi,-40,40]);xlabel('independent variable X');

ylabel('independent variable Y'); text(1,30,'cotangent(x))');

6.一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数,输出全部水仙花数。((参见教材P65例4.7)

For m=100:999

for m= 100:999

m1= fix(m/100);

m2= rem(fix(m/10),10);

m3= rem(m,10);

if m== m1*m1*m1+m2*m2*m2+m3*m3*m3

disp(m)

end

end

7.已知y1=x2,y2=cos(2x),y3=y1*y2,完成下列操作:(参见教材P91、94例5.6和例5.8)

(1)在同一坐标系下用不同的颜色和线型绘制三条曲线;

(2)分别用条形图、阶梯图、杆图和填充图绘制y2的曲线。

(1)x=0:2*pi/100:2*pi;

y1=x.^2;

y2=cos(2*x);

y3=y1.*y2;

plot(x,y1,'-r');

hold on

plot(x,y2,'*b');

hold on

plot(x,y3,'--y');

(2)

x=-100:1:100

y2=cos(2*x);

bar(x,y2)

stairs(x,y2)

stem(x,y2)

area(x,y2)

相关主题
相关文档
最新文档