matlab图形绘制

   博客分类: 笔记

matlab图形绘制

图形绘制对象 MATLAB绘图的对象为数据,包括离散数据和连续函数两种。 离散数据 MATLAB中数据以矩阵的方式存储,因此所有的数据都是离散的,是MATLAB绘图的基本对象。 连续函数 连续函数是指以表达式方式表达的一种数据件的映射关系。要对连续函数进行绘制,需要将自变量进行离散化,最后得到离散数据进行绘图。

二维绘图

plot命令

  1. plot(Y) Y 可以是实向量、实矩阵、复向量。
    • 当Y为实向量,将以向量索引为横坐标,向量值为纵坐标
    • 当Y为实矩阵,则每个列向量绘一个曲线
    • 当Y为复向量,向量实部为横坐标,虚部为纵坐标
  2. plot(x1, y1, ……, xn, yn) 对每一对x,y:
    • 均为n维向量,则x为横坐标,y为纵坐标
    • x为n维向量,y 为m×n或n×m矩阵,则将以x为横坐标对y的每行或每列分别绘制
    • x,y均为m×n矩阵,则将对每组列向量分别绘制
  3. plot(x1, y1, LineSpec, ……, xn, yn, LineSpec) 同第二种,LineSpec设置曲线属性。常用属性如下:

    属性 说明
    ’-‘、’–‘、’:’、’-.’ 实线、虚线、点线、点划线
    ’+’、’*‘、’.’、 加号、星号、点号
    ‘x’、’o’、’s’、’d’、’p’、’h’ 叉形、圆圈、方形、菱形、五角星、六芒星
    ’^’、’v’、’<’、’>’ 上下左右三角
    ‘r/g/b/k/w/y’ 红绿蓝黑白黄

    设置属性时,可以在线型、标识、颜色中各取一种。

plotyy命令

plotyy()用来实现双坐标绘图。常用形式如下:

plotyy(x1,y1,x2,y2)
plotyy(x1,y1,x2,y2,'function')	//function指定绘图函数
plotyy(x1,y1,x2,y2,'function1','function2')
plotyy(x,y1,x,y2,'plot','semilogy')

特殊坐标绘图

  1. semilogx()、semilogy()、loglog(),分别对x轴、y轴、x和y轴刻度求常用对数。调用方式基本同plot()。

  2. polar()函数用来绘制极坐标图

    polar(theta,rho) //thetatho为极角和极径
    polar(theta,rho,LineSpec)
    

函数绘图

  1. fplot() 典型调用格式:
    fplot(fun,limits)	// limits表示自变量上下限
    fplot(fun,limits,LineSpec)
    fplot(fun,limits,tol)	// tol表示容许误差
    fplot(fun,limits,tolLineSpec)
    fplot(fun,limits,n)	// n表示最少分段数
    
  2. ezplot() ezplot()可以绘制普通函数、隐函数、参数函数的曲线
    ezplot(fun)	// 默认自变量范围为-2pi~2pi
    ezplot(fun,[xmin,xmax])
       
    ezplot(fun2)	//fun2(x,y)为隐函数,即含x,y的表达式
    ezplot(fun2,[xymin,xymax])
    ezplot(fun2,[xmin,xmax,ymin,ymax])
       
    ezplot(funx,funy)	// funx,funy为对变量t的函数
    ezplot(funx,funy,[tmin,tmax])
    

叠绘与子图

  1. 图形叠绘 默认情况下,绘制图形会将上一张图形覆盖,当需要将不同数据绘制到同一张图上时,可以使用hold on打开图形叠绘功能,不需要时使用hold off关闭。单独的hold语句可以切换hold on与hold off状态。

  2. 子图绘制 使用subplot来实现子图绘制。

    //(m,n)幅子图中的第p幅设置为当前绘制图。
    subplot(m,n,p)/subplot(mnp)
       
    //绘制非对称子图
    subplot(2,2,[1 3])
    subplot(2,2,2)
    subplot(2,2,2)
    

三维绘图

  1. plot3() 用于绘制三维曲线图,用法基本同plot()函数,多了一维参数

  2. mesh() 用于绘制三维网格图,常用调用格式:
    mesh(X, Y, Z)	//X,Y是长度分别为mn的向量,Zm×n矩阵
    mesh(Z)
    mesh(..., C)	// C用于定义颜色
    

    给定X,Y时,网格线的顶点为(X(j), Y(i), Z(i,j)),否则,将索引(i, j)作为Z(i, j)的X、Y轴坐标值。

    [X,Y]=meshgrid(-8:.5:8);
    R=sqrt(X.^2+Y.^2)+eps;
    Z=sin(R)./R;
    C=gradient(Z);
    subplot(131);mesh(Z);
    subplot(132);mesh(X,Y,Z);axis([-8 8 -8 8 -0.5 1]);
    subplot(133);mesh(X,Y,Z,C);axis([-8 8 -8 8 -0.5 1]);
    
  3. surf() 用于绘制三维曲面图。用法可参考mesh()。二者区别在于着色方式不同。

  4. 符号绘图 和二维类似,ezplot3()、ezmesh()、ezsurf()可以实现符号函数绘图。