• Matlab学习-(3)


    1. 二维图


    绘制完图形以后,可能还需要对图形进行一些辅助操作,以使图形意义更加明确,可读性更强。

    1.1 图形标注


    title(’图形名称’) (都放在单引号内)
    xlabel(’x轴说明’)
    ylabel(’y轴说明’)
    text(x,y,’图形说明’)
    legend(’图例1’,’图例2’,…)

    1.2 坐标控制


    axis([xmin xmax ymin ymax zmin zmax])
    如果只给出前四个参数,则按照给出的x、y轴的最小值和最大值选择坐标系范围,绘制出合适的二维曲线。如果给出了全部参数,则绘制出三维图形。
    axis函数的功能丰富,其常用的用法有:
    axis equal :纵横坐标轴采用等长刻度
    axis square:产生正方形坐标系(默认为矩形)
    axis auto:使用默认设置
    axis off:取消坐标轴
    axis on :显示坐标轴
    还有:给坐标加网格线可以用grid命令来控制,grid on/off命令控制画还是不画网格线,不带参数的grid命令在两种之间进行切换。
    给坐标加边框用box命令控制。和grid一样用法

    1.3 图形保持


    一般情况下,每执行一次绘图命令,就刷新一次当前图形窗口,图形窗口原有图形将不复存在,如果希望在已经存在的图形上再继续添加新的图形,可以使用图形保持命令hold。hold on/off 命令是保持原有图形还是刷新原有图形,不带参数的hold命令在两者之间进行切换。

    1.4 图形窗口分割


    在实际应用中,经常需要在一个图形窗口中绘制若干个独立的图形,这就需要对图形窗口进行分割。分调用格式:
    subplot(m,n,p)
    该函数把当前窗口分成m×n个绘图区,m行,每行n个绘图区,区号按行优先编号。其中第p个区为当前活动区。每一个绘图区允许以不同的坐标系单独绘制图形。举例子subplot(2,3,6)

    2. 三维图

    2.1 三维曲线


    最基本的三维图形函数为plot3,它将二维绘图函数plot的有关功能扩展到三维空间,可以用来绘制三维曲线。其调用格式为:
    plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…)
    其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot的选项一样。当x,y,z是同维向量时,则x,y,z对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵的列数。
    可以联想数学中的**三维参数坐标** 这里类似。注意这个是画三维曲线。

    2.2 三维曲面


    (1)平面网格坐标的矩阵生成
    当绘制z=f(x,y)所代表的三维曲面图时,先要在xy平面选定一矩形区域,假定矩形区域为D=[a,b]×[c,d],然后将[a,b]在x方向分成m份,将[c,d]在y方向分成n份,由各划分点做平行轴的直线,把区域D分成m×n个小矩形。生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数绘图
    两种方法生成:
    **利用矩阵运算生成**
    x=a:dx:b;
    y=(c:dy:d)’;
    X=ones(size(y))*x;
    Y=y*ones(size(x));
    经过上述语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素个数,矩阵Y的每一列都是向量y,列数等于向量x的元素个数。
    **利用meshgrid函数生成**
    x=a:dx:b;
    y=c:dy:d;
    [X,Y]=meshgrid(x,y);
    语句执行后,所得到的网格坐标矩阵和上法,相同,当x=y时,可以写成meshgrid(x)

    2.3 绘制三维曲面的函数


    (1)Matlab提供了mesh函数和surf函数来绘制三维曲面图。mesh函数用来绘制三维网格图,而surf用来绘制三维曲面图,各线条之间的补面用颜色填充。其调用格式为:
    mesh(x,y,z,c)
    surf(x,y,z,c)
    一般情况下,x,y,z是维数相同的矩阵,x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。c省略时,Matlab认为c=z,也即颜色的设定是正比于图形的高度的。这样就可以得到层次分明的三维图形。当x,y省略时,把z矩阵的列下标当作x轴的坐标,把z矩阵的行下标当作y轴的坐标,然后绘制三维图形。当x,y是向量时,**要求x的长度必须等于z矩阵的列,y的长度必须等于必须等于z的**行,x,y向量元素的组合构成网格点的x,y坐标,z坐标则取自z矩阵,然后绘制三维曲线。
    (2)还有两个和mesh函数相似的函数,即带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz,其用法和mesh类似。不同的是,meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。
    surf函数也有两个类似的函数,即具有等高线的曲面函数surfc和具有光照效果的曲面函数surfl。

     2.4 标准三维曲面


    (1) Matlab提供了一些函数用于绘制标准三维曲面,这些函数可以产生相应的绘图数据,常用于三维图形的演示。如,sphere函数和cylinder函数分别用于绘制三维球面和柱面。sphere函数的调用格式为:
    [x,y,z]=sphere(n);
    该函数将产生(n+1)×(n+1)矩阵x,y,z 。采用这三个矩阵可以绘制出圆心位于原点、半径为1的单位球体。若在调用该函数时不带输出参数,则直接绘制所需球面。n决定了球面的圆滑程度,其默认值为20。若n值取的比较小,则绘制出多面体的表面图。
    cylinder函数的调用格式为:
    [x,y,z]=cylinder(R,n)
    其中R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。如:cylinder(3)生成一个圆柱,cylinder([10,1])生成一个圆锥。而t=0:pi/100:4*pi; R=sin(t); cylinder(R,30);生成一个正弦圆柱面。
    另外Matlab还提供了一个peaks函数,称为多峰函数,常用于三维曲面的演示。该函数可以用来生成绘图数据矩阵,矩阵元素由函数:
    在矩形区域[-3 3]×[-3 3]的等分网格点上的函数值确定。如:z=peaks(30)
    将生成一个30×30矩阵,

    3. 隐函数作图

    3.1 基本概念


    如果给定了函数的显式表达式,可以先设置自变量向量,然后根据表达式计算函数向量,从而用plot等函数绘制出图形。但是当函数采用隐函数形式时,如: ,则很难利用上述方法绘制图形。Matlab提供了一个ezplot函数绘制隐函数图形。用法如下:
    ① 对于函数f=f(x),ezplot的调用格式为:
    ezplot(f),在默认区间(-2pi,2pi)绘制图形。
    ezplot(f,[a,b]),在区间(a,b)绘制
    ② 对于隐函数f=f(x,y),ezplot的调用格式为;
    ezplot(f),在默认区间(-2pi,2pi),(-2pi,2pi)绘制f(x,y)=0的图形。
    ezplot(f,[xmin,xmax,ymin,ymax]);在区间 绘制图形。
    ezplot(f,[a,b]),在区间(a,b),(a,b)绘制
    ③ 对于参数方程x=x(t),y=y(t),ezplot函数的调用格式为:
    ezplot(x,y),在默认区间 绘制x=x(t),y=y(t)图形。
    ezplot(x,y,[tmin,tmax]),在区间(tmin,tmax)绘制x=x(t),y=y(t)图形。

  • 相关阅读:
    手把手教你利用create-nuxt-app脚手架创建NuxtJS应用
    初识NuxtJS
    webpack打包Vue应用程序流程
    用选择器代替表格列的筛选功能
    Element-UI
    Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
    Sparse Principal Component Analysis via Rotation and Truncation
    Generalized Power Method for Sparse Principal Component Analysis
    Sparse Principal Component Analysis via Regularized Low Rank Matrix Approximation(Adjusted Variance)
    Truncated Power Method for Sparse Eigenvalue Problems
  • 原文地址:https://www.cnblogs.com/hhwblogs/p/12703020.html
Copyright © 2020-2023  润新知