nullnull第四章
Matlab 绘图Matlab绘图Matlab绘图二维曲线
空间曲线
空间曲面一、Matlab 二维曲线绘图一、Matlab 二维曲线绘图1、基本绘图指令
命令形式1:plot(y)
功能:画一条或多条折线图。将(i,y(i)) 画出,x 取的是自然数null命令形式2:plot(x,y)
功能:画一条或多条折线图。其中,x,y 可以是向量或矩阵。
说明:1、当x,y都是向量时,元素个数必须相等,
plot(x,y) 按顺序连接各点(x(i),y(i))成一
条曲线或折线。null例:x=[1 2 3];
y=[3 2 5];
plot(x,y)null说明:2、当x为n维向量,y为n * m矩阵时,plot(x,y)
按向量x分别与矩阵y的每一列匹配,画出m
条曲线或折线。例 x=[ 3 4 7];
y=[4 5 6 5
4 7 9 5
1 4 2 5];
plot (x,y)null思考:
1、当x为n维向量,y为m x n 矩阵时,
plot(x,y)怎么画?
2、当x为n维向量,y为m x w 矩阵时,
plot(x,y)怎么画?
3、当x为n维向量,y为n x n 矩阵时,
plot(x,y)怎么画?null例1 画出函数y = sin x2 在-5 x 5 的图形。grid on作用是:在图形中标出网格线解: Matlab 命令:
x=-5:0.1:5;↙
y=sin(x.^2); ↙
plot(x,y),grid onX=a:h:b; 步长h可以任意选取,
步长越小,曲线越光滑。null曲线y=sinx^2null 命令形式3 :plot(x1,y1,x2,y2,x3,y3…)
功能:在同一图形窗口画出多条曲线 。
null例2 :在同一图形窗口画出三个函数y = cos 2x ,
y = x2 , y = x的图形,自变量范围为:-2 x 2
解 Matlab命令:
x=-2:0.1:2; ↙
plot(x,cos(2*x),x,x.^2,x,x) ↙
legend('cos(2x)','x^2','x')legend作用是:对图形进行图例标注null例2的绘图结果null2.基本绘图控制参数
控制分隔线grid
grid 在grid on与 grid off之间进行切换
grid on 在图中使用分隔线
grid off 在图中消隐分隔线 图形的重叠绘制hold
hold 在hold on与 hold off之间进行切换
hold on 保留当前图形和它的轴,使此后图形叠放在当前图形上
hold off 返回Matlab的缺省状态。此后图形指令运作将抹掉
当前窗中的旧图形,然后画上新图形。
null3.线型、定点标记、颜色
二维绘图指令还提供一组控制曲线线型、标记类型、颜色的开关。该开关总跟在一元或二元对的后面,具体如下:
plot(x,y,’ String’)
plot(x1,y1,’ String1’,x2,y2,’ String2’,…)
其中,string是字符串,该字符串由
4-1、表4-2表4-3(见课本P44)中的字符组成。null例6 利用hold指令在同一坐标系中画出如下两条参数曲线,参数曲线方程为:
t满足解 Matlab 命令为
t=0:pi/50:2*pi;
plot(cos(t),sin(t),’b*’) ,grid on,
hold on,plot(sin(t),sin(2*t),’r.’)
nullnull4.图形的标注
图名标注title
title(‘String’) 在图形的顶端加注文字作为图名
坐标轴标注xlabel,ylabel,zlabel(‘String’)
xlabel(‘String’) 在当前图形的x轴旁边加入文字内容
ylabel(‘String’) 在当前图形的y轴旁边加入文字内容
zlabel(‘String’) 在当前图形的z轴旁边加入文字内容null图形标注gtext
gtext(‘String’) 在鼠标指定位置上标注
说明:使用gtext指令后,会在当前图形上出现一个十字叉,等待用户选定位置进行标注。移动鼠标到所需位置按下鼠标左键,Matlab就在选定位置标上文字。
图例标注legend
legend(‘String1’,’ String2’,’ String3’,…)
当在一幅图中出现多种曲线时,结合在绘制时的不同线性与颜色等特点,用户可以用legend命令进行说明。
null5.一个图形窗口多个子图的绘制
subplot指令它不仅适用于二维图形而且也适用于三维图形。其本质是将窗口分为几个区域,再在每个小曲域中画图形。
subplot(m,n,i) 把图形窗口分为mn个子图,并在第i个子图中画图。
null例7 在同一坐标系中画出两个函数y = cos 2x ,y = x的图形,自变量范围为:-2 x 2,函数y = cos 2x为红色实线, 函数y = x 为蓝色点划线。并加注标
,坐标轴。
解: Matlab命令为
clf
x=-2:.1:2;
y1=cos(2*x);y2=x;
subplot(1,2,1)
plot(x,y1,'r-',x,y2,'b-.'),grid on
title('曲线y1=cos(2x)与y2=x')
xlabel('x轴'),ylabel('y轴')
gtext('y1=cos(2x)'),gtext('y2=x')
legend('y1=cos(2x)','y2=x')
subplot(1,2,2)
plot (x,y1,x,y2)null二.Matlab空间曲线绘图二.Matlab空间曲线绘图三维空间曲线命令plot3
plot3(x,y)
plot3(x,y,z,’String’)
plot3(x1,y1,z1,’String1’,x2,y2,z2, ’String2’,……)
plot3与plot的用法相同三.Matlab空间曲面绘图三.Matlab空间曲面绘图 Meshgrid命令:
meshgrid的调用形式是:
[X,Y]=meshgrid(x,y) 绘制二维图形时生成小矩形的格点
[X,Y]=meshgrid(x) 等价于[X,Y]=meshgrid(x,x)
[X,Y,Z]=meshgrid(x,y,z)绘制三维图形时生成空间曲面的格点
[X,Y,Z]=meshgrid(x) 等价于[X,Y,Z]=meshgrid(x,x,x)null
例:x=[1,2,3];y=[1,2,3,4]; [X,Y]=meshgrid(x,y)
X = 1 2 3 Y =1 1 1
1 2 3 2 2 2
1 2 3 3 3 3
1 2 3 4 4 4
例:x=[1,2,3] [X,Y]=meshgrid(x)
X = 1 2 3 Y =1 1 1
1 2 3 2 2 2
1 2 3 3 3 3
三维网格图命令Mesh命令三维网格图命令Mesh命令Mesh命令介绍
利用函数meshgrid生成格点矩阵后,然后求出各格点对应的函数值,就可以利用三维网格命令mesh画出空间曲面。
函数mesh用来生成函数的网格曲面,即各网格线段组成的曲面。null例:x=[1,2,3] y=[1,2,3,4] [X,Y]=meshgrid(x,y)
X = 1 2 3 Y =1 1 1
1 2 3 2 2 2
1 2 3 3 3 3
1 2 3 4 4 4
Z=ones(size(X));mesh(X,Y,Z)
null例: x=1:.1:3; y=1:.1:4;
[X,Y]=meshgrid(x,y);
Z=ones(size(X)); mesh(X,Y,Z) null例6 用平行截面法讨论由方程构成的马鞍面形状。p73
解:Matlab命令为
t=-10:0.1:10;
[x,y]=meshgrid(t);
z1=(x.^2-2*y.^2)+eps;
subplot(1,3,1),mesh(x,y,z1),title('马鞍面')
a=input('a=(-50