资源描述
一、填空题
1、MATLAB常用操作界面包括命令窗口、工作空间窗口(浏览器)、历史命令窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、
帮助导航/浏览器、图形窗口等。
2、MATLAB中Inf或inf表示无穷大、NaN或nan表示不是一个数、nargout表示函数输出变量数目。
3、MATLAB中逗号主要用作要显示计算结果的指令与其后指令的分隔符;
用作输入量与输入量之间的分隔符;用作数组元素分隔符号。
4、工作空间浏览器主要用于内存变量的查阅、保存和编辑。
5、MATLAB实现将全下标转换为单下标的指令为Sub2ind、据单下标换算出全
下标的指令为Ind2sub。
6、二维数组的标识有“全下标”标识、“单下标”标识、“逻辑1”标识。
7、在一个元胞数组A中寻访第2行第3列元胞元素用A(2,3);寻访数组第
2行第3列元胞中的内容用A{2,3}。
8、MATLAB中clf用于清除图形窗、clc用于清除指令窗中显示内容、clear
用于清除MATLAB工作空间中保存的变量。
二、简答题
1、简述MATLAB历史指令窗的主要作用。
答:历史指令窗记录着用户在MATLAB指令窗中所输入过的所有指令。历史记录包括:每次开启MATLAB的时间,每次开启MATLAB后在指令窗中运行过的所有指令。应用功能有单行或多行指令的复制和运行、生成M文件等。
2、简述空数组的功用。
答:“空”数组的功用:在没有“空”数组参与的运算时,计算结果中的“空”可以合理地解释“所得结果的含义”;运用“空”数组对其他非空数组赋值,可以改变数组的大小,但不能改变数组的维数。
3、简述MATLAB函数的基本结构。
答:典型M函数文件的结构:函数申明(定义)行(Function declaration line)、H1行(The first help text line)、在线帮助文本(Help text)区、编写和修改记录、函数体(Function body)。
4、简述绘制二维图形的一般步骤。
答:绘制二维图形的一般步骤为:曲线数据准备、选定图形窗及子图位置、调用二维曲线绘图指令、设置轴的范围、坐标分格线、图形注释、图形的精细操作。
三、编程题
(1)在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及建立图例。书p123、p126
解:clf
x=0:pi/200:4*pi;
y1=sin(x);
y2=cos(x);
zz=x(find(abs(y1-y2)<0.005))
z=min(zz)
plot(x,y1,'r-',x,y2,'g_')
hold on
plot(zz,sin(zz),'*')
legend('sin','cos')
(2)分别在同一图形窗的不同子图绘制y=sin(t)sin(9t)和y=sin(t)sin(9t)及其包络线。P121
解: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])
(3)某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):
price<200 没有折扣
200≤price<500 3%折扣
500≤price<1000 5%折扣
1000≤price<2500 8%折扣
2500≤price<5000 10%折扣
5000≤price 14%折扣
输入所售商品的价格,求其实际销售价格。P172
解:price=input('请输入商品价格');
switch fix(price/100)
case {0,1} %价格小于200
rate=0;
case {2,3,4} %价格大于等于200但小于500
rate=3/100;
case num2cell(5:9) %价格大于等于500但小于1000
rate=5/100;
case num2cell(10:24) %价格大于等于1000但小于2500
rate=8/100;
case num2cell(25:49) %价格大于等于2500但小于5000
rate=10/100;
otherwise %价格大于等于5000
rate=14/100;
end
price=price*(1-rate) %输出商品实际销售价格
(4)用符号变量法解如下方程 p
解:eq1=sym(‘x+2*y+z=1’);
eq2=sym(‘2*x+y-2*z=3’);
eq3=sym(‘3*x-4*y+2*z=9’);
[x,y,z]=solve(a,b,c)
(5)将matlab绘图窗口分割为二个区域,在左区域绘出y1曲线, 在右区域绘出y2曲线,y1为红色,y2为蓝色,步距0.01. p121
解:x1=0:0.01:5;
y1=x*exp(-2*x);
subplot(1,2,1);
plot(x1,y1,’r’);
x2=-2:0.01:2;
y2=5*cos(3*pi*x2);
subplot(1,2,2);
plot(x2,y2,’b’);
(6)某班有50名学生,进行英语考试,考试成绩为: 优秀8人,良好14人,中等20人,及格5人,不及格3人.试绘该班英语考试成绩分布的三维饼图,将优秀块及不及格块分离.p143
解:x=[8,14,20,5,3];
explode = [1,0,0,0,1];
pie3(x,explode)
四、 阅读程序
(1)写出下列指令运行结果。P51
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
(2)写出下列指令运行结果。
A=zeros(2,4);
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
(3)下面的函数主要完成什么功能?
function f=factor(n)
if n<=1
f=1;
else
f=factor(n-1)*n;
end
解:功能是利用函数的递归调用,求n!
(4)下面的程序完成功能是什么?
t=0:pi/50:4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,'-r',t,y0,':b',t,-y0,':b')
xlabel(‘\bf\it t’);
ylabel(‘\bf\it y’);
grid on;
解:在同一个图中绘制两个函数,这两个函数分别是:
y=e(-t/3)
y0=e(-t/3)*sin(3t)
其中y是用红色的细实线,而y0是用兰色的虚线绘制,t的区间是(0:4p),
t的步长为p/50,t轴和y轴分别用斜粗题指示,图中有网格表示。
(5)写出下列指令运行结果。
ch=‘ABc123d4e56Fg9’;
subch=ch(1:5)
revch=ch(end:-1:1)
k=find(ch>=‘a’&ch<=‘z’);
ch(k)=ch(k)-(‘a’-‘A’);
char(ch)
解:结果为ABC123D4E56FG9
(6)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);
for i=1:m
if x(i)<0
s1=s1+x(i);
n1=n1+1;
else
s2=s2+x(i);
n2=n2+1;
end
end
s1,n1,s2,n2,m
s1= -31 ; n1= 6 ;s2= 41 ;n2= 8 ;m= 14 .
展开阅读全文