1.曲线图
PLOT(X,Y,S):
(命令行输入help plot可以看到用法,快捷方式f1选中也行)
X,Y是向量,分别表示点集的横坐标和纵坐标
PLOT(X,Y)//画实线
同一个图画多个曲线:
PLOT(X,Y1,S1(第一条曲线),X,Y2,S2,……,X,Yn,Sn)//将多条线画在一起
例:在[0,2*pi]用红线画sin(x),用绿圈画cos(x).
x=linspace(0,2*pi,30);//起点是0,终点是2pi,中间均匀取30个点
y=sin(x);
z=cos(x);
plot(x,y,'r',x,z,’go'(绿色的圈画出cosx曲线))
2.符号函数(显函数、隐函数和参数方程)画图
(1) ezplot
ezplot(‘f(x)’,[a,b])
表示在a 表示在区间xmin 表示在区间tmin 输入命令:ezplot(‘sin(x)’,[0,pi]) 输入命令:ezplot(‘cos(t)^3’,’sin(t)^3’,[0,2*pi]) 输入命令:ezplot('exp(x)+sin(x*y)'(右边等于0可以省略不写,'exp(x)=-sin(x*y)'也行),[-2,0.5,0,2]) 表示绘制字符串fun指定的函数在lims=[xmin,xmax]的图形. 注意: [1] fun必须是M文件的函数名或是独立变量为x的字符串. [2] fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形。 先建M文件myfun1.m: function y=myfun1(x) y=exp(2*x)+sin(3*x^2) 再输入命令: fplot(@(myfun1)myfun1,[-1,2]) 解 fplot(@(x) tanh(x),[-2,2]) 输入命令: fplot(@(x)[tanh(x),sin(x),cos(x)],2*pi*[-1,1]) loglog(Y) 表示 x、y坐标都是对数坐标系 semilogx(Y) 表示 x坐标轴是对数坐标系 semilogy(…) 表示y坐标轴是对数坐标系 plotyy 有两个y坐标轴,一个在左边,一个在右边 输入命令: x=logspace(-1,2);//默认取50个点 loglog(x,exp(x),'-s') grid on 输入命令: x=0:.1:10; semilogy(x,10.^x) //subplot(2,3,x)产生两行三列6个图,x代表第几个图 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) rotate3d %旋转,有501个点 x=-3:0.1:3;y=1:0.1:5; [X,Y]=meshgrid(x,y);//返回2个矩阵 Z=(X+Y).^2; plot3(X,Y,Z) (这里meshgrid(x,y)的作用是产生一个以向量x为行、向量y为列的矩阵) 数据矩阵。分别表示数据点的横坐标、纵坐标、函数值 解 x=-3:0.1:3; y=1:0.1:5; [X,Y]=meshgrid(x,y); Z=(X+Y).^2; surf(X,Y,Z) shading flat %将当前图形变得平滑 例 画出曲面Z=(X+Y).^2在不同视角的网格图. 解 x=-3:0.1:3; y=1:0.1:5; [X,Y]=meshgrid(x,y); Z=(X+Y).^2; mesh(X,Y,Z) 解 输入命令: [X,Y]=meshgrid(-3:.125:3);//步长为0.125 Z=peaks(X,Y); Meshz(X,Y,Z) (1)GRID ON: 加格栅在当前图上 GRID OFF: 删除格栅 (2)hh = xlabel(string): 在当前图形的x轴上加图例string hh = ylabel(string): 在当前图形的y轴上加图例string hh = zlabel(string): 在当前图形的z轴上加图例string hh = title(string): 在当前图形的顶端上加图例string 解 x=linspace(0,2*pi,30); y=sin(x); plot(x,y) xlabel('自变量X') ylabel('函数Y') title('示意图') grid on (3) hh = gtext(‘string’) 命令gtext(‘string’)用鼠标放置标注在现有的图上.运行命令gtext(‘string’)时,屏幕上出现当前图形,在 图形上出现一个交叉的十字,该十字随鼠标的移动移动,当按下鼠标左键时,该标注string放在当前十交叉的位置. 解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(‘sin(x)’);gtext(’cos(x)’) axis([xmin xmax ymin ymax zmin zmax]) axis auto 将坐标轴返回到自动缺省值 解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis([0.005 0.01 –1 1]) (1) hold on 保持当前图形, 以便继续画图到当前图上 hold off 释放当前图形窗口 解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x) plot(x,z,’:’) hold on plot(x,y) 解 x=linspace(0,2*pi,100); y=sin(x);z=cos(x); plot(x,y); title('sin(x)'); pause//暂停,新建一个窗口画图 figure(2); plot(x,z); title('cos(x)'); h=subplot(mrows,ncols,thisplot) 划分整个作图区域为mrows*ncols块(逐行对块访问)并激活第thisplot块,其后的作图语句将图形画在该块上。 subplot(mrows,ncols,thisplot) 激活已划分为mrows*ncols块的屏幕中的第thisplot块,其后的作图语句将图形画在该块上。 subplot(1,1,1) 命令subplot(1,1,1)返回非分割状态。 解x=linspace(0,2*pi,100); y=sin(x); z=cos(x); a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps) subplot(2,2,1);plot(x,y),title(‘sin(x)’) subplot(2,2,2);plot(x,z),title(‘cos(x)’) subplot(2,2,3);plot(x,a),title(‘sin(x)cos(x)’) subplot(2,2,4);plot(x,b),title(‘sin(x)/cos(x)’)ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax])
ezplot(‘x(t)’,’y(t)’,[tmin,tmax])
例:在[0,pi]上画y=cos(x)的图形
(2) fplot
教材上的fplot用在程序会有问题fplot(‘fun’,lims)
例:在[-2,2]范围内绘制函数tanh的图形
3. 对数坐标图
例:用方形标记创建一个简单的loglog
例:创建一个简单的半对数坐标图
4.空 间 曲 线
1、 一条曲线
PLOT3(x,y,z(xyz是n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值),s(指定颜色、线形等))
例 在区间[0,10*pi]画出参数曲线x=sin(t),y=cos(t),
z=t.
2、多条曲线
PLOT3(x,y,z)
其中x,y,z是都是m*n矩阵,其对应的每一列表示一条曲线.例 画多条曲线观察函数Z=(X+Y).^2.
5.空 间 曲 面
(1) surf(x,y,z) 画出数据点(x,y,z)表示的曲面
例:画函数Z=(X+Y).^2的图形.
(2) Mesh(x,y,z) 画网格曲面
(3)meshz(X,Y,Z) 在网格周围画一个curtain图(如,参考平面)
例 绘peaks的网格图
6.处理图形
1、在图形上加格栅、图例和标注
例 在区间[0,2*pi]画sin(x)的图形,并加注图例“自变量
X”、“函数Y”、“示意图”, 并加格栅.
例 在区间[0,2*pi]画sin(x),并分别标注“sin(x)”
”cos(x)”.
2、定制坐标
例 在区间[0.005,0.01]显示sin(1/x)的图形。
3、图形保持
例 将y=sin(x)、y=cos(x)分别用点和线画出在同一屏幕上。
(2) figure(h)新建h窗口,激活图形使其可见,并把它置于其它图形之上
例 区间[0,2*pi]新建两个窗口分别画出y=sin(x); z=cos(x)。
4、分割窗口
例 将屏幕分割为四块,并分别画出y=sin(x),z=cos(x),a=sin(x)*cos(x),b=sin(x)/cos(x)。