matlab3.docx
- 文档编号:23321785
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:24
- 大小:32.52KB
matlab3.docx
《matlab3.docx》由会员分享,可在线阅读,更多相关《matlab3.docx(24页珍藏版)》请在冰豆网上搜索。
matlab3
第三章MATLAB的图形处理
一、二维图形
绘制二维曲线的最基本函数:
1.plot函数的基本用法
plot函数的基本调用格式为:
plot(x,y)
其中x和y为长度相同的向量,分别用于存储x和y坐标数据。
例在0≤X≤2p区间内,绘制曲线y=2e-0.5xsin(2πx)。
x=0:
pi/100:
2*pi;
y=2*exp(-0.5*x).*sin(2*pi*x);
plot(x,y)
说明:
(1)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
(2)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同色彩的曲线。
曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。
(3)plot函数最简单的调用格式是只包含一个输入参数:
plot(x)。
例某工厂2000年各月总产值(单位:
万元)分别为22、60、88、95、56、23、9、10、14、81、56、23,试绘制折线图以显示出该厂总产值的变化情况。
p=[22,60,88,95,56,23,9,10,14,81,56,23];
plot(p)
2.含多个输入参数的plot函数
含多个输入参数的plot函数调用格式为:
plot(x1,y1,x2,y2,…,xn,yn)
3.含选项的plot函数
含选项的plot函数调用格式为:
plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)例用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其包络线。
x=(0:
pi/100:
2*pi)';
y1=2*exp(-0.5*x)*[1,-1];
y2=2*exp(-0.5*x).*sin(2*pi*x);
x1=(0:
12)/2;
y3=2*exp(-0.5*x1).*sin(2*pi*x1);
plot(x,y1,'g:
',x,y2,'b--',x1,y3,'rp');
4.双纵坐标函数plotyy
plotyy函数是MATLAB5.X新增的函数。
它能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。
调用格式为:
plotyy(x1,y1,x2,y2)
其中x1—y1对应一条曲线,x2—y2对应另一条曲线。
横坐标的标度相同,纵坐标有两个,左纵坐标用于x1—y1数据对,右纵坐标用于x2—y2数据对。
例用不同标度在同一坐标内绘制曲线y1=e-0.5xsin(2πx)及曲线
y2=1.5e-0.1xsin(x)。
x1=0:
pi/100:
2*pi;
x2=0:
pi/100:
3*pi;
y1=exp(-0.5*x1).*sin(2*pi*x1);
y2=1.5*exp(-0.1*x2).*sin(x2);
plotyy(x1,y1,x2,y2);
绘制图形的辅助操作:
1.图形标注有关图形标注函数的调用格式为:
title(图形名称),xlabel(x轴说明),ylabel(y轴说明),text(x,y,图形说明),legend(图例1,图例2,…)
例(**)给图形添加图形标注。
x=(0:
pi/100:
2*pi)';
y1=2*exp(-0.5*x)*[1,-1];
y2=2*exp(-0.5*x).*sin(2*pi*x);
x1=(0:
12)/2;
y3=2*exp(-0.5*x1).*sin(2*pi*x1);
plot(x,y1,'g:
',x,y2,'b--',x1,y3,'rp');
title('曲线及其包络线');%加图形标题
xlabel('independentvariableX');%加X轴说明
ylabel('independentvariableY');%加Y轴说明
text(2.8,0.5,'包络线');%在指定位置添加图形说明
text(0.5,0.5,'曲线y');
text(1.4,0.1,'离散数据点');
legend('包络线','包络线','曲线y','离散数据点')%加图例
2.坐标控制函数的调用格式为:
axis([xminxmaxyminymaxzminzmax])axis函数功能丰富,常用的用法还有:
axisequal纵、横坐标轴采用等长刻度
axissquare产生正方形坐标系(缺省为矩形)
axisauto使用缺省设置
axisoff取消坐标轴
axison显示坐标轴
gridon/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。
boxon/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。
例用图形保持功能在同一坐标内绘制曲线y=2e-0.5xsin(2πx)及其包络线,并加网格线。
x=(0:
pi/100:
2*pi)';
y1=2*exp(-0.5*x)*[1,-1];y2=2*exp(-0.5*x).*sin(2*pi*x);
plot(x,y1,'b:
');
axis([0,2*pi,-2,2]);%设置坐标
holdon;%设置图形保持状态
plot(x,y2,'k');
gridon;%加网格线
boxoff;%不加坐标边框
holdoff;%关闭图形保持
3.图形窗口的分割
subplot函数的调用格式为:
subplot(m,n,p)例在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。
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]);
subplot(2,2,2);
plot(x,z);title('cos(x)');axis([0,2*pi,–1,1]);
subplot(2,2,3);
plot(x,t);title('tangent(x)');axis([0,2*pi,-40,40]);
subplot(2,2,4);
plot(x,ct);title('cotangent(x)');axis([0,2*pi,-40,40]);
对图形窗口灵活分割
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);%选择2×2个区中的1号区
stairs(x,y);title('sin(x)-1');axis([0,2*pi,-1,1]);
subplot(2,1,2);%选择2×1个区中的2号区
stem(x,y);title('sin(x)-2');axis([0,2*pi,-1,1]);
subplot(4,4,3);%选择4×4个区中的3号区
plot(x,y);title('sin(x)');axis([0,2*pi,-1,1]);
subplot(4,4,4);%选择4×4个区中的4号区
plot(x,z);title('cos(x)');axis([0,2*pi,-1,1]);
subplot(4,4,7);%选择4×4个区中的7号区
plot(x,t);title('tangent(x)');axis([0,2*pi,-40,40]);
subplot(4,4,8);%选择4×4个区中的8号区
plot(x,ct);title('cotangent(x)');axis([0,2*pi,-40,40]);
绘制二维图形的其他函数:
1.其他形式的线性直角坐标图在线性直角坐标系中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:
bar(x,y,选项)
stairs(x,y,选项)
stem(x,y,选项)
fill(x1,y1,选项1,x2,y2,选项2,…)
例分别以条形图、填充图、阶梯图和杆图形式绘制曲线y=2e-0.5x。
x=0:
0.35:
7;
y=2*exp(-0.5*x);
subplot(2,2,1);bar(x,y,'g');
title('bar(x,y,''g'')');axis([0,7,0,2]);
subplot(2,2,2);fill(x,y,'r');
title('fill(x,y,''r'')');axis([0,7,0,2]);
subplot(2,2,3);stairs(x,y,'b');
title('stairs(x,y,''b'')');axis([0,7,0,2]);
subplot(2,2,4);stem(x,y,'k');
title('stem(x,y,''k'')');axis([0,7,0,2]);
2.极坐标图
polar函数用来绘制极坐标图,其调用格式为:
polar(theta,rho,选项)
其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。
例绘制ρ=sin(2θ)cos(2θ)的极坐标图。
clf;theta=0:
0.01:
2*pi;
rho=sin(2*theta).*cos(2*theta);
polar(theta,rho,'k');
3.对数坐标图形
MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为:
semilogx(x1,y1,选项1,x2,y2,选项2,…)
semilogy(x1,y1,选项1,x2,y2,选项2,…)
loglog(x1,y1,选项1,x2,y2,选项2,…)
例绘制y=10x2的对数坐标图并与直角线性坐标图进行比较。
clfx=0:
0.1:
10;
y=10*x.*x;
subplot(2,2,1);plot(x,y);title('plot(x,y)');gridon;
subplot(2,2,2);semilogx(x,y);title('semilogx(x,y)');gridon;
subplot(2,2,3);semilogy(x,y);title('semilogy(x,y)');gridon;
subplot(2,2,4);loglog(x,y);title('loglog(x,y)');gridon;
4.对函数自适应采样的绘图函数
fplot函数的调用格式为:
fplot(fname,lims,tol,选项)例用fplot函数绘制f(x)=cos(tan(πx))的曲线。
先建立函数文件myf.m:
functiony=myf(x)
y=cos(tan(pi*x));
再用fplot函数绘制myf.m函数的曲线:
fplot('myf',[-0.4,1.4],1e-4)
5.其他形式的图形
MATLAB提供的绘图函数还有很多,例如,用来表示各元素占总和的百分比的饼图、复数的相量图等等。
例绘制图形:
(1)某次考试优秀、良好、中等、及格、不及格的人数分别为:
7,17,23,19,5,试用饼图作成绩统计分析。
(2)绘制复数的相量图:
3+2i、4.5-i和-1.5+5i。
subplot(1,2,1);
pie([7,17,23,19,5]);
title('饼图');legend('优秀','良好','中等','及格','不及格');
subplot(1,2,2);
compass([3+2i,4.5-i,-1.5+5i]);title('相量图');
例47.用图形表示离散函数y=|n−6|−1
n=(0:
12);%产生离散数据点
y=1./(abs(n-6)+1);%如果将1去掉,会怎样?
plot(n,y,'r*','MarkerSize',10)
%'r*'表示描绘点是红*,10为*的大小
gridon%图形中画格子
例48.plot函数画图的比较
t1=(0:
11)/11*pi;y1=sin(t1).*sin(9*t1);t2=(0:
100)/100*pi;y2=sin(t2).*sin(9*t2);
subplot(2,2,1),plot(t1,y1,'r*'),axis([0,pi,-1,1]),title('fig.1')subplot(2,2,2),plot(t2,y2,'r*'),axis([0,pi,-1,1]),title('fig.2')subplot(2,2,3),plot(t1,y1,t1,y1,'r*'),axis([0,pi,-1,1]),title('fig.3')subplot(2,2,4),plot(t2,y2),axis([0,pi,-1,1]),title('fig.4')
注意:
plot函数通常是用于绘制2维图形,它的常用格式是:
plot(X,Y,S),这里X是横坐标向量,Y是纵坐标向量,S是绘制点的属性。
当S缺省时plot用直线连接各绘制点。
例49.用plot函数绘制一组曲线
t=(0:
pi/50:
2*pi)';
k=0.4:
0.1:
1;
Y=cos(t)*k;%矩阵Y是100×7的矩阵
plot(t,Y)%Y的第0.4≤k≤1列,对应于k×cos(t),t=0,pi/50,…
plot(t,Y(:
[23]))%画Y的第3,4列
例50.plot函数画y=sin(t)sin(9t)及其包络线
t=(0:
pi/100:
pi)';
y1=sin(t)*[1,-1];%包络线函数值y2=sin(t).*sin(9*t);
%y的函数曲线t3=pi*(0:
9)/9;
y3=sin(t3).*sin(9*t3);%t3在y处的函数值
plot(t,y1,'r:
',t,y2,'b',t3,y3,'bo')
%plot画y1,y2,y3
axis([0,pi,-1,1])%axis控制图形的输出范围
例51.采用
画一组椭圆
clearall
t=(0:
pi/50:
2*pi)';%取椭圆参数t的值
a=[0.5:
.5:
4.5];%取椭圆的半轴参数a
X=cos(t)*a;%椭圆的参数方程,X是101×9的矩阵
Y=sin(t)*sqrt(25-a.^2);%椭圆的参数方程,Y是101×9的矩阵
plot(X,Y)
axis('equal')
xlabel('x'),ylabel('y')
title('AsetofEllipses')
注意:
这里plot(X,Y)中,X和Y都是矩阵(同阶),plot函数按列画出图形。
问本例中a=5的椭圆如何画?
plot(X(:
1),Y(:
1))
例52.图形与标注
clf;t=6*pi*(0:
100)/100;y=1-exp(-0.3*t).*cos(0.7*t);
tt=t(find(abs(y-1)>0.05));
ts=max(tt);
plot(t,y,'r-','LineWidth',3)%plot作图
axis([-inf,6*pi,0.6,inf])%设定坐标的范围
set(gca,'Xtick',[0,2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)])
gridon%与上句结合作图形网格
title('\ity=1-e^{-\alpha}cos(\omegat)')%文本中引入Tex命令
text(13.5,1.2,'\fontsize{12}\alpha=0.3')
text(13.5,1.1,'\fontsize{14}\omega=0.7')
holdon;plot(ts,0.95,'bo','MarkerSize',10);holdoff
%在原图(ts,0.95)中画点
cst{1}='\fontsize{12}\uparrow';%cst是元胞数组
cst{2}='\fontsize{16}\fontname{隶书}镇定时间';
cst{3}='\fontsize{10}\fontname{宋体}元胞数组';
cst{4}=['\fontsize{14}t_s='num2str(ts)];
text(ts,0.85,cst)
text(1,1,'\fontsize{40}\xi(G_1(X_1))')
legend('First','Second','Third');
xlabel('\fontsize{14}\bft\rightarrow')
ylabel('\fontsize{14}\bfy\rightarrow')
问题12:
Text函数中可以使用Tex软件中符号的命令,是否可以使用所有的格式与命令?
例53.stem和stairs函数作图
t=2*pi*(0:
20)/20;y=cos(t).*exp(-0.4*t);
stem(t,y,'g');
holdon;
stairs(t,y,'r');
plot(t,y);
holdoff
legend('stem','stairs','plot','last','end')%可以看出作图的先后次序
例54.双坐标图的绘制
clf;dx=0.1;x=0:
dx:
4;y=x.*sin(x);
s=cumtrapz(y)*dx;%梯形法求累计积分
plotyy(x,y,x,s)
text(0.5,0,'\fontsize{14}\ity=xsin(x)');
sint='{\fontsize{16}\int_{\fontsize{8}0}^{\fontsize{8}x}}';
text(2.5,3.5,['\fontsize{14}s=',sint,'\fontsize{14}\itxsin(x)dx'])
%gtext({'Firstline'},'FontName','\fontsize{20}yr')
问题12:
研究学习gtext函数的使用方法
例55.常见2维绘图函数举例
x=-4:
0.5:
4;y=sin(x);
subplot(3,2,1);
feather(x,y);xlabel('(a)feather')
subplot(3,2,2);
bar(x,y);xlabel('(b)bar')
subplot(3,2,3);
comet(x,y);xlabel('(c)comet')
subplot(3,2,4);
polar(x,y);xlabel('(d)polar')
subplot(3,2,5);
fill(x,y,'r');xlabel('(e)fill')
subplot(3,2,6);
compass(x,y);xlabel('(f)compass')
点评:
Matlab提供了大量的函数来处理各种2维图形。
其中最常用的是plot。
plot函数的使用细节可以通过查帮助获得:
helpplot。
Matlab的绘图函数使用方便,绘图美观,精确,是其它软件不能比的。
此外,Matlab的绘图函数结合set和Text函数可对图形进行修饰和精确的标注。
Text函数中允许使用Tex语句,但遗憾的是只能使用部分Tex语句。
这方面的功能有待开发。
学习要点:
Matlab的绘图函数很多,功能不同。
但它们的格式通常是一致的:
函数名(坐标参数,函数,图形修饰参数)。
总结plot函数的用法
总结Text函数的用法
练习:
所有的示例演示分析一遍,并适当改变参数值,观察运算结果。
画出
在[0,2pi]的曲线,在图上用“小红圈”标出第一次使用y=0.6的那点位置,并要求在该点旁表出其坐标
对以下数据用y=ax+b模型进行最小二乘拟合,然后将原数据点和拟合直线进行可视化表现。
x0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
yo
123
130
141
155
169
171
183
190
205
210
二、三维图形
绘制三维曲线的最基本函数:
plot3函数与plot函数用法十分相似,其调用格式为:
plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)
例绘制空间曲线。
t=0:
pi/50:
2*pi;
x=8*cos(t);y=4*sqrt
(2)*sin(t);z=-4*sqrt
(2)*sin(t);
plot3(x,y,z,'p');
title('Linein3-DSpace');text(0,0,0,'origin');
xlabel('X'),ylabel('Y'),zlabel('Z');grid;
三维曲面:
1.平面网格坐标矩阵的生成
(1)利用矩阵运算生成。
x=a:
dx:
b;y=(c:
dy:
d)';
X=ones(size(y))*x;
Y=y*ones(size(x));
(2)利用meshgrid函数生成。
x=a:
dx:
b;y=c:
dy:
d;
[X,Y]=meshgrid(x,y);
例已知6 x=5: 29;y=14: 35; [x,y]=meshgrid(x,y);%在[5,29]×[14,35]区域生成网格坐标 z=2*x+5*y; k=find(z==126);%找出解的位置 x(k),y(k)%输出对应位置的x,y即方程的解 2.绘制三维曲面的函数 surf函数和mesh函数的调用格式为: mesh(x,y,z,c) surf(x,y,z,c) 例(*)用三维曲面图表现函数z=sin(y)cos(x)。 程序1: x=0: 0.1: 2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x); mesh(x,y,z);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('mesh'); 程序2: x=0: 0.1: 2*pi;[x,y]=meshgrid(x);z=sin(y).*cos(x); surf(x,y,z);xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');title('surf'); 程序3: x=0: 0.1: 2*pi;[x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab3