mooc刘卫国老师matlab第十二版学习笔记 (专题四)

目录

专题四     MATLAB绘图

4.1 二维曲线 

4.1.1 plot函数

        (1)plot函数的基本用法

         (2)最简单的plot函数调用格式

        (3)plot(x,y)函数参数的变化形式

        (4)含多个输入参数的plot函数

4.1.2 fplot函数 

(1)fplot函数的基本用法

​编辑 (2)双输入函数参数用法

4.2 绘制图形的辅助操作

4.2.1 给图形添加标注

(1)title函数

​编辑         (2)xlabel函数和ylabel函数

         (3)text函数和gtext函数

        (4)legend函数

4.2.2 坐标控制

        (1)axis函数

        (2)给坐标系加网格、边框

4.2.3 图形保持

4.2.4 图形窗口的分割 

 4.3 其他形式的二维曲线

4.3.1 其他坐标下的二维曲线图

(1)对数坐标图

(2)级坐标图

4.3.2 统计图

(1)条形类图

(2)面积类图形

        (3) 散点类图形

4.3.3 矢量图形

 4.4 三维曲线

4.4.1 plot3函数

(1)plot3函数的基本用法

​编辑 (2)plot3(x,y,z)函数参数的变化形式

(3)含多组输入参数的plot3函数

​编辑 (4)含选项的plot3函数

4.4.2 fplot3函数

4.5 三维曲面

4.5.1 平面网格数据的生成

(1)利用矩阵运算生成

(2)利用meshgrid函数生成

4.5.2 绘制三维曲面的函数

4.5.3 标准三维曲面

(1)sphere函数

(2)cylinder函数

(3)peaks函数

4.5.4 fmesh函数和fsurf函数

4.6 图形修饰处理

4.6.1 视点处理

(1)view函数的基本用法

 (2)view函数的其他用法

4.6.2 色彩处理

(1) 颜色的向量表示

(2)色图(Colormap) 

(3)三维图形表面的着色 

4.6.3 图形的裁剪处理   

4.7 交互式绘图工具 


专题四     MATLAB绘图

4.1 二维曲线 

4.1.1 plot函数

        (1)plot函数的基本用法

                plot(x,y)

        其中,x和y分别用于存储x坐标和y坐标数据。通常,x和y为长度相同的向量。

        例1        绘制一条折线。

         (2)最简单的plot函数调用格式

                        plot(x)

  • 当x为实向量时,以向量x的元素序号为横坐标,元素的值为纵坐标绘制曲线。

  •  当plot函数的参数x是复数向量时,则分别以该向量元素实部和虚部为横、纵坐标绘制曲线。

复型变量也可以用complex函数构建    cx=complex(x,y) 

        (3)plot(x,y)函数参数的变化形式
  • 当x是向量,y是矩阵时

        如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制曲线,曲线的条数等于y的行数。

        如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制曲线,曲线的条数等于y的列数。

例2        绘制sin(x)、sin(2x)、sin(x/2)的函数曲线。

  • 当x、y是同型矩阵时

        以x、y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 

        (4)含多个输入参数的plot函数

                plot(x1,y1,x2,y2,x3,y3……,xn,yn) 

                其中,每一向量对构成一组数据点的横、纵坐标,绘制一条曲线。

例3        采用不同个数的数据点绘制正弦函数曲线,观察曲线形态。

        (5)含选项的plot函数

                plot(x,y,选项)

                其中,选项用于指定曲线的线型、颜色和数据点标记。

例4   

4.1.2 fplot函数 

         使用plot函数绘图时,先要取得x,y坐标,然后再绘制曲线,x往往采取等间隔采样。在实际应用中,函数随着自变量的变化趋势未知,或者在不同区间函数频率特性差别大,此时使用plot函数绘制图形,如果自变量的采样间隔设置不合理,则无法反映函数的变化趋势。

        实际问题中,函数随着自变量的变化趋势往往未知,而plot函数的x取值一般数等间隔的,会影响实际函数的变化趋势。如例5

例5        绘制函数sin(1/x)的图形(反例)。

        fplot函数可以解决这个问题 

(1)fplot函数的基本用法

                fplot(f,lims,选项)

        其中,f代表一个函数,通常采用函数句柄的形式。lims为x轴的取值范围,用二元向量[xmin,xmax]描述,默认值为[-5,5]。选项定义与plot函数相同。

例6        采用fplot函数绘制函数sin(1/x)。

 (2)双输入函数参数用法

        fplot(funx,funy,tlims,选项)

        其中,funx、funy代表函数,通常采用函数句柄形式。tlims为参考函数funx和funy的自变量的取值范围,用二元向量[tmin,tmax]描述。

例7

 


4.2 绘制图形的辅助操作

4.2.1 给图形添加标注

(1)title函数
  • title函数的基本用法

        title(图形标题)

例1        绘制[-2Π,2Π]区间的正弦函数并给图形添加标题。

  • 在图形标题中使用LaTeX格式控制符

        受LaTeX格式控制的部分要用大括号括起来。

  •  含属性设置的title函数

        title(图形标准,属性名,属性值)

        Color属性:用于设置图形标题文本的颜色。

        FontSize属性:用于设置标题文字的字号。

         (2)xlabel函数和ylabel函数

                xlabel(x轴说明)

                ylabel(y轴说明)

       绘制[-2Π,2Π]区间的正弦曲线并给x轴添加标签。

         (3)text函数和gtext函数

                text(x,y,说明)

                gtext(说明):随着鼠标十字光标的移动确定说明位置

        在前面的图形中添加文字说明。

        (4)legend函数

                legend(图例1,图例2,……)

例2        绘制不同频率的正弦曲线并用图例标注曲线。

4.2.2 坐标控制

        (1)axis函数
  • axis函数的基本用法

                axis([xmin,xmax,ymin,ymax,zmin,zmax])

  •  axis的其他用法

                axis  equal:纵、横坐标轴采用等长刻度

                axis  square:产生正方形坐标系(默认为矩形)

                axis  auto:使用默认设置

                axis  off:取消坐标轴

                axis  on:显示坐标轴

         

        (2)给坐标系加网格、边框

        grid on:控制显示网格线

        grid off:控制不显示网格线

        grid:用于在两种状态之间进行切换

        程序中没有grid命令,默认是无网格线

        box on:x控制显示边框线

        box off:控制不显示边框线

        box:用于在两种状态之间进行切换

        程序中没有box命令,默认是无边框 

例3        绘制sinX、sin(2x)、sin(x/2)的函数曲线并添加图形标注。

4.2.3 图形保持

        hold on:控制保持原有图形

        hold off:控制刷新图形窗口

        hold:用于在两种状态下切换

例子        用图形保持功能绘制两个同心圆

4.2.4 图形窗口的分割 

  • 子图:同一图形窗口中的不同坐标系下的图形称为子图。
  • subplot函数

                subplot(m,n,p)

                其中,m和n指定将图形窗口分成m×n个绘图区,p指定当前活动区。

例1 

例2


 4.3 其他形式的二维曲线

4.3.1 其他坐标下的二维曲线图

(1)对数坐标图

        semilogx(x1,y1,选项1,x2,y2,选项2,……)

        semilogy(x1,y1,选项1,x2,y2,选项2,……)

        loglog(x1,y1,选项1,x2,y2,选项2,……)

        其中,semilogx函数x轴为常用对数刻度,y轴为线性刻度;semilogy函数x轴为线性刻度,y轴为常用对数刻度;loglog函数x轴和y轴均采用常用对数刻度。

例1        绘制1/x的直角线性坐标图和三种对数坐标图。

(2)级坐标图

                polar(theta,rho,选项)

        其中,theta为级角,rho为级径,选项的内容与plot函数相同。 

例2        按极坐标方程\rho =1-sin\theta绘制心型曲线。

4.3.2 统计图

(1)条形类图

        ①条形图

  •         bar函数

                bar(y,style)  

                其中,参数y是数据,选项style用于指定分组排列模式,style分为grouped(簇状分组,          默认为簇状分组)、stacked(推积分组)。

例3        绘制分组条形图。

  •                 bar(x,y,style)

        其中,x存储横坐标,y存储纵坐标,y的行数必须与向量x的长度相同。选项style用于指定分组排列模式。

例4

         ②直方图

  •        hist函数:绘制直角坐标系下的直方图。

             hist(y)

             hist(y,x)

        其中,y是要统计的数据,x用于指定区间的划分方式。若x是标量,则统计区间划分成x个小区间;若x是向量,则向量x中的每一个数指定分组中心值,元素的个数为数据分组数。x缺省时,默认按10个等分区进行统计。     

例5        绘制服从高斯分布的直方图。     

  •                 rose函数:绘制极坐标系下的直方图。

                                rose(theta,x)

               其中,参数theta用于确定每一区间与原点的角度,选项x用于指定区间的划分方式,x缺省时,默认按20个等分区间进行统计。

例6        绘制高斯分布数据在极坐标下的直方图。

(2)面积类图形

        ①扇形图

        pie函数

                pie(x,explode)

        其中,参数x存储待统计数据,选项explode控制图块的显示模式。

例7

        ②面积图

                area函数:方法与plot函数相同,只是将所得曲线下方区域填充颜色。

        (3) 散点类图形
  •         scatter函数

                scatter(x,y,选项,'filled')

                其中,x、y用于定位数据点,选项用于指定线型、颜色、数据点标记。如果数据点标记是封闭图形,可以用选项'filled'指定填充数据点标记。该选项省略时,数据点是空心的。

例8

 

  •         stairs函数:阶梯图

  •         stem函数:杆图

4.3.3 矢量图形

  • compass函数:罗盘图

        compass(U,V) 绘制从点 (0, 0) 发射出的箭头。使用笛卡尔坐标 U 和 V 指定箭头方向,其中 U 表示 x 坐标,V 表示 y 坐标。箭头数量与 U 中的元素数相匹配。

  •         feather函数:羽毛图 

        feather(U,V)绘制以 x 轴为起点的箭头。使用笛卡尔分量 U 和 V 指定箭头方向,其中 U 表示 x 分量,V 表示 y 分量。第 n 个箭头的起始点位于 x 轴上的 n。箭头的数量与 U 和 V 中的元素数相匹配。

  •          quiver函数:箭头图

                quiver函数调用格式:

                        quiver(x,y,u,v)

                其中,(x,y)指定矢量起点,(u,v)指定矢量终点。x、y、u、v是同样大小的向量或同型矩阵,若省略x、y,则在x-y平面上均匀取若干个点作为起点。

例9        已知向量A、B,求A+B,并用矢量图表示。


 4.4 三维曲线

4.4.1 plot3函数

(1)plot3函数的基本用法

                plot3(x,y,z)

        其中,参数x、y、z组成一组曲线的坐标。

 例2

 (2)plot3(x,y,z)函数参数的变化形式

                plot(x,y,z)

  • 参数X、Y、Z是同型矩阵时,以X、Y、Z对应列元素绘制曲线,曲线条数等于矩阵列数。
  • 参数X、Y、Z中有向量,也有矩阵时,向量的长度与矩阵相符。

例3        在空间不同位置绘制5条正弦曲线。

法一

法二

(3)含多组输入参数的plot3函数

        plot3(x1,y1,z1,x2,y2,z2,……,xn,yn,zn)

        每一组x、y、z向量构成一组数据点的坐标,绘制一条曲线。

例4        绘制三条不同长度的正弦曲线。

 (4)含选项的plot3函数

                plot3(x,y,z,选项)

        选项用于指定曲线的线型、颜色和数据点标记。

 

4.4.2 fplot3函数

        fplot3(funx,funy,funz,tlims)

        其中,funx、funy、funz代表定义曲线x、y、z坐标的函数,通常采用函数句柄的形式。tlims为参数函数自变量的取值范围,用二元向量[tmin,tmax]描述,默认为[-5,5]。

例6

         在fplot3函数中,可以指定曲线的线型、颜色或数据点标记。

        例如,用红色点划线绘制墨西哥帽顶曲线。


4.5 三维曲面

4.5.1 平面网格数据的生成

        用矩阵X、Y分布存储每一个小矩形顶点的x坐标与y坐标,矩阵X、Y就是该矩形区域的xy平面网格坐标矩阵。

         在MATLAB中,产生平面区域内的网格坐标矩阵有两种方法。

(1)利用矩阵运算生成

X和Y相同位置上的元素,如X_{32}Y_{32}是区域的第三行第二列网格点的坐标(3,5)。 

(2)利用meshgrid函数生成

                [X,Y]=meshgrid(x,y);

其中,参数x,y是向量,存储网格点坐标的X、Y为矩阵。

第三行命令生成的网格矩阵X、Y与方法(1)相同。

        若根据每一个网格点上的x、y坐标求函数值z,则得到函数值矩阵Z。矩阵X、Y、Z中的各个列向量,对应于一条曲线数据点的坐标。

例1        绘制空间曲线。

4.5.2 绘制三维曲面的函数

  • mesh函数和surf函数的调用格式

        mesh(x,y,z,c)

        surf(x,y,z,c)

        其中,x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。c省略时,颜色的设定正比于图形的高度。

例2

 

  • mesh函数和surf函数的其他调用格式:

                mesh(z,c)

                surf(z,c)

        当x、y省略时, z矩阵的第2维下标当作x轴,z矩阵的第一维下标当作y轴坐标。

  • 带等高线的三维网格曲面函数meshc
  • 带底座的三维网格曲面函数meshz
  • 具有等高线的曲面函数surfc
  • 具有光照效果的曲面函数surfl

例3        

4.5.3 标准三维曲面

(1)sphere函数

        [x,y,z]=sphere(n)

        产生3个(n+1)阶的方阵,采用这3个矩阵可以绘制出圆心位于原点、半径为1的单位球体。

(2)cylinder函数

        [x,y,z]=cylinder(R,n)

        其中,参数R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。

例4        用cylinder函数分别绘制柱面、花瓶和圆锥面。

例5        用cylinder函数绘制两个相互垂直且半径相等的圆柱面的相交图形。

(3)peaks函数

        peaks函数的调用格式:

        peaks(n)

        peaks(V)

        peaks(x,y)

        peaks

 

4.5.4 fmesh函数和fsurf函数

        用于绘制参数方程定义的曲面

        fsurf(funx,funy,funz,uvlims) 

        fmesh(funx,funy,funz,uvlims) 

        其中,funx,funy,funz代表定义曲面x,y,z坐标的常数,通常采用函数句柄的形式。uvlims为funx,funy和funz的自变量取值范围,用四元向量[umin,umax,vmin,vmax]描述,默认为[-5,5.-5,5]。

例6


4.6 图形修饰处理

4.6.1 视点处理

  • 方位角:视点与原点连线在xy平面上的投影与y轴负方向形成的角度,正值表示逆时针,负值表示顺时针。
  • 仰角:视点与原点连线与xy平面的夹角,正值表示视点在xy平面上方,负值表示视点在xy平面下方。

(1)view函数的基本用法

        view(az,e1)

        其中,az为方位角,e1为仰角。系统默认的视点定义为方位角-37.5°,仰角30°。 

 

 (2)view函数的其他用法

        view(x,y,z):接受三个参数,它们分别表示方位角、仰角和旋转角度。这些角度决定了你所看到的三维图形的方向和角度。

        view(2):指从二维平面观察图形,,即方位角为0°,仰角为90°

        view(3)

4.6.2 色彩处理

(1) 颜色的向量表示

(2)色图(Colormap) 
  • 色图矩阵

  • 内建色图 

        是64行3列的矩阵

  •  指定当前图形使用的色图

        colormap  cmapname

        将当前图窗的颜色映射设置为指定的颜色映射名称,例如 'parula''jet''hsv' 等。可以从 MATLAB 提供的预定义颜色映射中选择一个来应用于图形中。

        colormap(cmap)

       将当前图窗的颜色映射设置为自己定义的颜色映射矩阵 cmap。这意味着可以完全自定义图形中使用的颜色。

  • 创建色图矩阵

        色图矩阵的每一行是RGB三元组。可以自定义色图矩阵,也可以调用MATLAB提供的函数来定义色图矩阵。 

例2        创建一个灰色系列色图矩阵。

(3)三维图形表面的着色 

        可以用shading函数来改变着色方式。

 例3        使用同一色图,以不同着色方式来绘制圆锥体。

4.6.3 图形的裁剪处理   

        将图形中需要裁剪部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。

例4        绘制3/4圆。

例5        绘制3/4球面。


4.7 交互式绘图工具 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值