Matlab习题与答案Word文件下载.docx
- 文档编号:21121806
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:31
- 大小:338.44KB
Matlab习题与答案Word文件下载.docx
《Matlab习题与答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《Matlab习题与答案Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
x=linspace(0,2*pi,60);
生成含有60个数据元素的向量X
plot(x,y);
axis([02*pi-22]);
设定坐标轴范围
2、subplot函数
(1)subplot(m,n,p)
该命令将当前图形窗口分成m×
n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。
例5在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:
z=cos(x);
t=sin(x)./(cos(x)+eps);
eps为系统内部常数
ct=cos(x)./(sin(x)+eps);
subplot(2,2,1);
分成2×
2区域且指定1号为活动区
title('
sin(x)'
axis([02*pi-11]);
subplot(2,2,2);
plot(x,z);
cos(x)'
subplot(2,2,3);
plot(x,t);
tangent(x)'
axis([02*pi-4040]);
subplot(2,2,4);
plot(x,ct);
cotangent(x)'
(2)多图形窗口
需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命令。
每执行一次figure命令,就创建一个新的图形窗口,该窗口自动为活动窗口,若需要还可以返回该窗口的识别号码,称该号码为句柄。
句柄显示在图形窗口的标题栏中,即图形窗口标题。
用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活动窗口有效。
(3)hold命令
若在已存在图形窗口中用plot命令继续添加新的图形内容,可使用图形保持命令hold。
发出命令holdon后,再执行plot命令,在保持原有图形或曲线的基础上,添加新绘制的图形。
阅读如下程序:
plot(x,y,'
b'
绘制正弦曲线
holdon;
设置图形保持状态
plot(x,z,'
g'
保持正弦曲线同时绘制余弦曲线
legend('
cos'
'
sin'
holdoff关闭图形保持
3、函数f(x)曲线
fplot函数则可自适应地对函数进行采样,能更好地反应函数的变化规律。
fplot函数格式:
fplot(fname,lims,tol)
其中fname为函数名,以字符串形式出现,lims为变量取值范围,tol为相对允许误差,其其系统默认值为2e-3。
例:
fplot(‘sin(x)’,[02*pi],’-+’)
fplot(‘[sin(x),cos(x)]’,[02*pi],1e-3,’·
’)同时绘制正弦、余弦曲线
4、特殊坐标图形
1)对数坐标图形
(1)loglog(x,y)双对数坐标
例6绘制y=|1000sin(4x)|+1的双对数坐标图。
程序为:
x=[0:
0.1:
2*pi];
y=abs(1000*sin(4*x))+1;
loglog(x,y);
双对数坐标绘图命令
(2)单对数坐标
以X轴为对数重新绘制上述曲线,程序为:
0.01:
2*pi]
y=abs(1000*sin(4*x))+1
semilogx(x,y);
单对数X轴绘图命令
同样,可以以Y轴为对数重新绘制上述曲线,程序为:
semilogy(x,y);
单对数Y轴绘图命令
(3)极坐标图
函数polar(theta,rho)用来绘制极坐标图,theta为极坐标角度,rho为极坐标半径
例7绘制sin(2*θ)*cos(2*θ)的极坐标图,程序为:
theta=[0:
2*pi];
rho=sin(2*theta).*cos(2*theta);
polar(theta,rho);
绘制极坐标图命令
polarplot'
5、其它图形函数
除plot等基本绘图命令外,Matlab系统提供了许多其它特殊绘图函数,这里举一些代表性例子,更详细的信息用户可随时查阅在线帮助,其对应的M-file文件存放在系统\matlab\toolbox\matlab目录下。
(1)、阶梯图形
函数stairs(x,y)可以绘制阶梯图形,如下列程序段:
x=[-2.5:
0.25:
2.5];
y=exp(-x.*x);
stairs(x,y);
绘制阶梯图形命令
stairsplot'
(2)、条形图形
函数bar(x,y)可以绘制条形图形,如下列程序段将绘制条形图形
bar(x,y);
绘制条形图命令
(3)、填充图形
fill(x,y,’c’)函数用来绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。
字符’c’规定填充颜色,其取值前已叙述。
下述程序段绘制一正方形并以黄色填充:
x=[01100];
正方形顶点坐标向量
y=[00110];
fill(x,y,'
y'
绘制并以黄色填充正方形图
再如:
0.025:
y=sin(3*x);
fill(x,y,[0.50.30.4]);
颜色向量
Matlab系统可用向量表示颜色,通常称其为颜色向量。
基本颜色向量用[rgb]表示,即RGB颜色组合;
以RGB为基本色,通过r,g,b在0~1范围内的不同取值可以组合出各种颜色。
6、三维绘图
1、plot3函数
最基本的三维图形函数为plot3,它是将二维函数plot的有关功能扩展到三维空间,用来绘制三维图形。
plot3(x1,y1,z1,c1,x2,y2,z2,c2,…)
其中x1,y1,z1…表示三维坐标向量,c1,c2…表示线形或颜色。
以向量x,y,z为坐标,绘制三维曲线。
例8绘制三维螺旋曲线,其程序为:
t=0:
pi/50:
10*pi;
y1=sin(t),y2=cos(t);
plot3(y1,y2,t);
helix'
),text(0,0,0,'
origin'
sin(t)'
),ylabel('
cos(t)'
),zlabel('
t'
grid;
2、mesh函数
mesh函数用于绘制三维网格图。
在不需要绘制特别精细的三维曲面结构图时,可以通过绘制三维网格图来表示三维曲面。
三维曲面的网格图最突出的优点是:
它较好地解决了实验数据在三维空间的可视化问题。
mesh(x,y,z,c)
其中x,y控制X和Y轴坐标,矩阵z是由(x,y)求得Z轴坐标,(x,y,z)组成了三维空间的网格点;
c用于控制网格点颜色。
例9下列程序绘制三维网格曲面图
0.15:
y=[0:
z=sin(y'
)*cos(x);
矩阵相乘
mesh(x,y,z);
3、surf函数
surf用于绘制三维曲面图,各线条之间的补面用颜色填充。
surf函数和mesh函数的调用格式一致。
函数格式:
surf(x,y,z)
其中x,y控制X和Y轴坐标,矩阵z是由x,y求得的曲面上Z轴坐标。
例10下列程序绘制三维曲面图形
surf(x,y,z);
x-axis'
y-axis'
z-label'
3-Dsurf'
4、视点
视点位置可由方位角和仰角表示。
方位角又称旋转角为视点位置在XY平面上的投影与X轴形成的角度,正值表示逆时针,负值表示顺时针。
仰角又称视角为XY平面的上仰或下俯角,正值表示视点在XY平面上方,负值表示视点在XY平面下方。
从不同视点绘制三维图形的函数为view。
view(az,el)中的az为方位角,el为仰角。
通过系统提供的多峰函数peaks的绘制例子,可进一步说明视点对图形的影响,以及view(az,el)函数的使用。
例11不同视角图形
p=peaks;
系统提供的多峰函数
mesh(peaks,p);
view(-37.5,30);
指定子图1的视点
azimuth=-37.5,elevation=30'
view(-17,60);
指定子图2的视点
azimuth=-17,elevation=60'
view(-90,0);
指定子图3的视点
azimuth=-90,elevation=0'
view(-7,-10);
指定子图4的视点
azimuth=-7,elevation=-10'
7、图形句柄
在Matlab系统中,绘图命令产生的每一个部分称为图形对象,系统在创建每一个对象时,都为该对象分配唯一的一个值,称其为句柄,因此句柄就是图形对象标识符。
对象、句柄以及图形对象等概念其实质是统一的,系统将每一个对象按树型层次结构组织起来,这些对象包括根对象,通常为计算机屏幕、图形窗口、坐标系统、线条、曲面、文本串、用户界面控制等。
根对象可包含一个或多个图形窗口对象,而一个图形窗口对象又可包含一组或多组坐标系子对象,线条、文本等其它对象都是坐标系的子对象。
所有创建对象的函数当父对象不存在时,都会自动创建它。
计算机屏幕作为根对象自动建立,其句柄值为0。
而Hf_f=figure命令则建立图形窗口对象,并返回它的句柄值给变量Hf_f。
图形窗口的句柄为一整数,并显示在该窗口的标题栏,其它图形对象的句柄为浮点数,Matlab提供了一系列与句柄操作有关的函数,如gcf、gca等。
为便于识别,用大写字母开头的变量表示句柄,如Hf_f等。
所有图形对象都具有控制对象显示的属性。
这些属性既包括对象的一般信息,如对象类型、对象的父对象及子对象等,也包括对象的一些特定信息,如坐标系对象的刻度等。
用户可以获取、设置对象属性,以达到控制对象的目的。
当创建一个对象时,系统用一组默认属性值定制对象,用户梢酝ü
get命令获取这些属性值,同时也可通过set命令重新设置对象属性。
set命令格式为:
set(H,’name’,value,…)将图形对象H的name属性设置为value
其中H为句柄,name为属性名,value为name的属性值。
用set命令可以方便地设置图形对象属性,如下列程序段就是通过属性来定制图形。
4*pi];
H=plot(x,sin(x));
返回正弦曲线句柄H
set(H,'
LineStyle'
*'
LineWidth'
0.1);
设置正弦曲线线型与线宽
其中'
为线型属性,'
为线宽属性。
利用get(H)命令可以返回当前句柄H对象的属性。
键入命令:
get(H)系统返回当前图形对象的有关属性:
象H=get(0,’CurrentFigure’)则返回根对象的’CurrentFigure’的属性值,即当前图形窗口的句柄,相当于函数gcf。
get(gcf,’Children’)则返回当前坐标系对象的句柄;
类似的操作用户可在使用Matlab的过程中不断积累。
句柄应用
利用句柄操作的有关函数,用户可以查找、访问图形对象,以达到定制对象属性,改变对象显示效果的目的。
x=-pi:
pi/20:
pi;
r'
x,z,'
Hl_lines=get(gca,'
Children'
获取正、余曲线句柄向量Hl_lines
fork=1:
size(Hl_lines)
ifget(Hl_lines(k),‘Color’)==[010][010]为绿颜色向量Hl_green=Hl_lines(k)返回绿色线条句柄
end
end
四、实验习题
1.在[02π]范围内绘制二维曲线图y=sin(x)*cos(5x)。
解>
>
x=[0:
>
y=sin(x).*cos(5*x);
plot(y)
2.在[02π]范围内绘制以Y轴为对数的二维曲线图。
y=|1000sin(4x)|+1
y=abs(1000*sin(4*x))+1;
semilogy(x,y);
3.在[–62]范围内用plot和fplot函数分别绘制二维曲线图。
函数为y=3*x^2+2*x
symsxy;
x=[-6:
2];
y=3.*x.^2+2.*x;
plot(y)
fplot('
3.*x.^2+2.*x'
[-62])
4.绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为[02π]。
y=[0:
z=sin(x'
)*cos(y);
mesh(x,y,z);
surf(x,y,z)
五、实验总结
请根据本次实验的内容写出实验总结,总结一下Matlab的数据可视化的特点及其基本操作。
(要求不少于300字)
实验总结
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
MATLAB基本绘图函数
plot:
x轴和y轴均为线性刻度(Linearscale)
loglog:
x轴和y轴均为对数刻度(Logarithmicscale)
semilogx:
x轴为对数刻度,y轴为线性刻度
semilogy:
x轴为线性刻度,y轴为对数刻度
习题二
1.选择题
(1)下列变量名中A是合法的。
A.char_1,i,j
B.
C.x\y,a1234
D.end,lbcx
说明:
end是关键字,变量名中不能有运算符、标点符号,可以有下划线。
内置常量可以作为变量名,但一般不提倡这样做。
(2)下列C是合法常量。
A.3*e10
B.1e500
C.
D.10-2
10-2是表达式,1e500超过了realmax,3*e10也是表达式。
(3)x=uint8(2.3e10),则x所占的字节是D个。
A.1
B.2
C.4
D.8
(4)已知x=0:
10,则x有B个元素。
A.10
B.11
C.9
D.12
(5)产生对角线上为全1其余为0的2行3列矩阵的命令是C。
A.ones(2,3)
B.ones(3,2)
C.eye(2,3)
D.eye(3,2)
(6)已知数组
,则a(:
end)是指C。
A.所有元素
B.第一行元素
C.第三列元素
D.第三行元素
(7)已知数组
,则运行a(:
1)=[]命令后C。
A.a变成行向量
B.a数组为2行2列
C.a数组为3行2列
D.a数组中没有元素3
(8)已知数组
,则运行mean(a)命令是B。
A.计算a每行的平均值
B.计算a每列的平均值
C.a数组增加一行平均值
D.a数组增加一列平均值
(9)已知x为一个向量,计算ln(x)的MATLAB命令是计算B。
A.ln(x)
B.log(x)
C.Ln(x)
D.lg10(x)
(10)当a=2.4,使用取整函数计算得出3,则该取整函数名为C。
A.fix
B.round
C.ceil
D.floor
(11)已知a=0:
4,b=1:
5,下面的运算表达式出错的为D。
A.a+b
B.a./b
C.a'
*b
D.a*b
(12)命令day(now)是指C。
A.按照日期字符串格式提取当前时间
B.提取当前时间
C.提取当前时间的日期
D.按照日期字符串格式提取当前日期
(13)以下运算符中哪个的优先级最高B。
A.*
B.^
C.~=
D.|
(14)运行命令bitand(20,15)的结果是C。
A.15
B.20
D.5
bitand(20,15)
ans=
4
(15)使用检测函数isinteger(15)的结果是B。
B.0
C.false
D.true
isinteger(15)
0
(16)计算三个多项式s1、s2和s3的乘积,则算式为C。
A.conv(s1,s2,s3)
B.s1*s2*s3
C.conv(conv(s1,s2),s3)
D.conv(s1*s2*s3)
2.复数变量a=2+3i,b=3-4i,计算a+b,a-b,c=a*b,d=a/b,并计算变量c的实部、虚部、模和相角。
a=2+3i;
b=3-4i;
a+b
a-b
c=a*b
d=a/b
real(c)
imag(c)
abs(c)
angle(c)
c=
d=
18
1
0.0555
“from:
step:
to”方式和linspace函数分别得到从0~4π步长为π的变量x1和从0~4π分成10点的变量x2。
x1=0:
0.4*pi:
4*pi
x2=linspace(0,4*pi,10)
x1=
Columns1through10
Column11
x2=
01.39632.79254.18885.58516.98138.37769.773811.170112.5664
4.输入矩阵
,使用全下标方式取出元素“3”,使用单下标方式取出元素“8”,取出后两行子矩阵块,使用逻辑矩阵方式取出
。
a=[123;
456;
789]
a(1,3)
a(6)
a(2:
3,:
a([1,3],[1,3])
a=
123
456
789
3
8
13
79
5.输入a为3×
3的魔方阵,b为3×
3的单位阵,并将a、b小矩阵组成3×
6的大矩阵c和6×
3的大矩阵d,将d矩阵的最后一行取出构成小矩阵e。
a=magic(3)
b=eye(3)
c=[a,b]
d=[a;
b]
d(end,:
)
816
357
492
b=
100
010
001
816100
357010
492001
001
阵
用flipud、fliplr、rot90、diag、triu和tril函数进行操作。
a=reshape(1:
9,3,3);
a=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 习题 答案