精华内容
下载资源
问答
  • Matlab画图功能复习

    2020-10-14 12:39:20
    1、使用matlab绘图函数,绘制好图形以后,为了丰富图形的内涵,还必须对图形添加标题、坐标轴标签、文字说明、图例、辅助线、指示线等。详情见下: 2、视角与色彩控制 1)、视角控制 2)、色彩控制 ...

    一、知识点

    1、使用matlab绘图函数,绘制好图形以后,为了丰富图形的内涵,还必须对图形添加标题、坐标轴标签、文字说明、图例、辅助线、指示线等。详情见下:

     

    2、视角与色彩控制

    1)、视角控制

     

    2)、色彩控制

     

    二、实例演练

    1、

     

     

    2、

    1)绘制默认视角下的带有缺口的衰减正弦波

    2)将1)中图形的视角改变为10.5°和30°【提示:使用view命令】

     

    三、总结思考

    1、本章有大量的图形编辑和设置函数,是MATLAB的一个重点。要不断回顾,复习。

    2、MATLAB较C++的不同点是:MATLAB更方便一些,这在声明变量和引用函数时有很大的体现。

     

     

     

     

     

    展开全文
  • 经常用到matlab画图功能,最常用的是plot,其他一些图每次用到都要重新百度查询,这里做一个总结,方便查看。 1.plot plot(x,y)可以直接画线,散点图,其中x,y为长度相同的向量; plot(x,y,'bo-'),实线,蓝色...

    经常用到matlab的画图功能,最常用的是plot,其他一些图每次用到都要重新百度查询,这里做一个总结,方便查看。

    1.plot

    plot(x,y)可以直接画线,散点图,其中x,y为长度相同的向量;

    plot(x,y,'bo-'),实线,蓝色,点的标记为“o”;

    plot(x,y,'bo'),散点,蓝色,点的标记为“o”;

    2.scatter

    scatter(x,y),标记为蓝色圆圈的散点图;

    scatter(X,Y,S)S确定每个标记的面积。 S可以是与X和Y相同长度的矢量或标量。如果S为空,则使用默认大小,如果S是标量,则MATLAB绘制所有标记的大小相同。如果S是矢量,则分别对应为X、Y所确定圆的大小; 

    scatter(X,Y,S,C)C确定每个标记的颜色。当C是与X和Y相同长度的向量时,C中的值被线性映射到当前色彩映射中的颜色。当C是1×3矩阵时,它将标记的颜色指定为RGB值。 

    3.line

    line([x1 x2],[y1 y2])画直线,x1、x2分别为起点、终点的横坐标,y1、y2分别为起点、终点的纵坐标;

     

    除此之外的一些图像修饰

    1. 添加标题:

    title('标题')

    2. 添加图例

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

    3.添加标签

    xlabel('x轴标签')

    ylabel('y轴标签')

    4.添加文字描述

    text([x,y],'文字描述')在指定位置(x,y)添加描述

    5.颜色和线条

               b    blue   蓝              .     point               -     solid
               g    green  绿            o     circle              :     dotted
               r    red    红                x     x-mark            -.    dashdot 
               c    cyan   青             +     plus                --    dashed   
               m    magenta 品红   *     star             
               y    yellow 黄            s     square
               k    black  黑             d     diamond
               w    white  白            v     triangle (down)
                                                 ^     triangle (up)
                                                 <     triangle (left)
                                                 >     triangle (right)
                                                 p     pentagram 五角星
                                                 h     hexagram  六角星

     

    一张图上多条线用hold on

    一张图上多个子图用subplot

    subplot(2,2,1);plot(x,y)

    两行两列的子图,第一个位置plot画图
     

    展开全文
  • MATLAB画图

    2020-02-06 17:32:43
    有不少研究者都采用MATLAB进行绘图,因为MATLAB画图功能齐全又不失美观,接下来我将结合具体代码记录一下MATLAB画图的一些操作和心得。 第一段代码: %Fig1. close all clear syms w p c t d pe b we a c=1; d=1; b...

    有不少研究者都采用MATLAB进行绘图,因为MATLAB画图功能齐全又不失美观,接下来我将结合具体代码记录一下MATLAB画图的一些操作和心得。

    第一段代码:

    %Fig1.
    close all
    clear
    syms w p c t d pe b we a
    c=1; d=1; b=1;
    a1 = (4*d*(512*c*d^3*t - b^3*c*t^4 + 8*b^3*c*t^4*(d/(8*(4*d - b*t)))^(1/2) - 320*b*c*d^2*t^2 + 36*b^2*c*d*t^3 + 512*b*c*d^2*t^2*(d/(8*(4*d - b*t)))^(1/2) - 160*b^2*c*d*t^3*(d/(8*(4*d - b*t)))^(1/2)))/(- b^3*t^3 + 36*b^2*d*t^2 - 384*b*d^2*t + 512*d^3);%>0
    a0 = 4*c*d*t;
    f1 = ezplot(a1,[0 2]);
    axis([0 4 0 90])
    hold on
    f1 = ezplot(a0,[0 4]);
    axis([0 4 0 90])
    hold on
    legend('\it a_1','\it a_0')
    xlabel(['\fontsize{7.5} \it t'])
    ylabel(['\fontsize{7.5} \it a'])
    set(gca,'FontName','Times New Roman','FontSize',7.5)
    title(' ')
    set(findobj('Type','line'),'color','k') 
    set(findobj('Type','line'),'LineWidth',2) 
    

    首先如果不注意设置参数和图片大小比例的话,MATLAB也会画出很丑的图,如上面的代码跑出来的图片如下:
    0
    可以看到,图片的坐标的标注字体很小,字体类型不好看,图例很小,还有其他各种缺点,使得整张看起来很空旷,不紧凑,美观不足。这样的图片放在论文中,怕是初审在编辑那一关就把你枪毙了。因此,接下来我将对代码进行改善,对图片进行编辑,得到一张更好看的,适合放在文章中的图片。

    第二段代码:

    %Fig1.
    close all
    clear
    syms w p c t d pe b we a
    c=1; d=1; b=1; % 控制这些变量为定值,以便下面两个表达式只有两个变量,可以画出二维图
    % a1 = @(t)(4*d.*(512*c*d^3.*t - b^3*c.*t.^4 + 8*b^3*c.*t.^4.*(d./(8*(4*d - b.*t))).^(1/2) - 320*b*c*d^2.*t.^2 + 36*b^2*c*d.*t.^3 + 512*b*c*d^2.*t.^2.*(d./(8*(4*d - b.*t))).^(1/2) - 160*b^2*c*d.*t.^3.*(d./(8*(4*d - b.*t))).^(1/2)))./(- b^3.*t.^3 + 36*b^2*d.*t.^2 - 384*b*d^2.*t + 512*d^3);%>0
    % a0 = @(t)4*c*d.*t;
    a1 = (4*d*(512*c*d^3*t - b^3*c*t^4 + 8*b^3*c*t^4*(d/(8*(4*d - b*t)))^(1/2) - 320*b*c*d^2*t^2 + 36*b^2*c*d*t^3 + 512*b*c*d^2*t^2*(d/(8*(4*d - b*t)))^(1/2) - 160*b^2*c*d*t^3*(d/(8*(4*d - b*t)))^(1/2)))/(- b^3*t^3 + 36*b^2*d*t^2 - 384*b*d^2*t + 512*d^3);%>0
    a0 = 4*c*d*t;
    figure(1)
    f1 = ezplot(a1,[0 2]);  % 画隐函数,函数用字符串表示
    set(f1, 'LineStyle', '-', 'LineWidth', 3, 'color', 'k')
    axis([0 4 0 90])
    hold on
    f2 = ezplot(a0,[0 4]);
    set(f2, 'LineStyle', '--', 'LineWidth', 3, 'color', 'k')
    axis([0 4 0 90])
    % gcf是获取图片对象(figure),gca是获取图片内的对象(axe)
    % 'XTick'和'YTick'是在指定位置显示刻度,'position'内的四个参数,前两个是图片内对象起点坐标,后两个是图片内对象的宽和高
    set(gca,'XTick', 0:1:4, 'YTick', 0:20:80, 'position', [0.15, 0.15, 0.8, 0.7]) 
    % 'XTickLabel'和'YTickLabel'是显示刻度的具体字符
    set(gca,'XTickLabel',{'0','1','2','3','4'}, 'YTickLabel', {'0','20','40','60','80'})
    set(gca, 'FontSize', 14, 'Fontname', 'Times New Roman', 'FontWeight', 'bold') % 对刻度上的字符字体设置
    set(gcf,'position', [150, 100, 500, 500]) % 'position'内的四个参数,前两个是图片起点坐标,后两个是图片的宽和高
    [le, lg, ~, ~] = legend( {'a_1', 'a_0'}, 'FontName', 'Times New Roman', 'FontAngle', 'italic'); % 设置图例和它的字体, 并获得两个对象
    set(le, 'Box', 'off')
    p = get(le,'Position'); % 获得图例的坐标和宽高
    p1 = lg(1).Position; % 获得图例内第一个函数图像的坐标
    p2 = lg(2).Position; % 获得图例内第二个函数图像的坐标
    lg(1).Position = [p1(1)-0.1 p1(2) 0.2]; % 设置图例内第一个函数图像的坐标
    lg(2).Position = [p2(1)-0.1 p2(2) 0.2]; % 设置图例内第二个函数图像的坐标
    lg(3).XData = [0.1 0.5]; % 设置图例内第一个函数图像,第一个参数表示图像距离左边框的距离,第二个表示图像线的长度
    lg(5).XData = [0.1 0.5]; % 设置图例内第二个函数图像,第一个参数表示图像距离左边框的距离,第二个表示图像线的长度
    xlabel('t', 'FontName', 'Times New Roman', 'FontSize', 14, 'FontWeight', 'bold', 'FontAngle', 'italic')
    ylabel('a', 'FontName', 'Times New Roman', 'FontSize', 14, 'FontWeight', 'bold', 'FontAngle', 'italic')
    title(' ')
    

    呈现效果:

    1
    利用MATLAB自带的图片工具对上面的图片进行调整,使它更好看。点击上方“查看”–>“属性编辑器”,进入如下页面:
    2
    点击上方“插入”–>“文本框”,然后输入想附上的文本,我这里输入了“I: 3MR”和“II: 3R”,并且调节边框为无色,设置字体大小为16,加粗,新罗马体,得到下方的页面:
    3
    点击右上角的小箭头“取消停靠figure 1”,得到如下页面:
    4
    点击上方“工具”–>“编辑图形”,拉伸图例,得到如下页面:
    5
    点击上方“插入”–>“矩形”,画出矩形将图例套住,然后点击上方“查看”–>“属性编辑器”,将边框加粗,然后“取消停靠figure 1”,得到如下页面:
    6
    最终图片做完。点击上方“文件”–>“另存为”,存成png格式。

    最终呈现效果:

    7
    可以看到,最终呈现的图片在字体,清晰度,大小,紧凑性各方面都有了很大改进,整体还是很好看的,适合插入论文中。

    展开全文
  • MATLAB画图的ppt-MaTLAB画图.rar 分享:MATLAB画图基础讲义。 第一页介绍: matlab语言的绘图功能 • 不仅能绘制几乎所有的标准图形, 而且其表现形式也是丰富多样的。 • matlab语言不仅具有高层绘图能 ...
  • matlab画图

    千次阅读 2016-05-11 17:48:17
    Matlab画图 强大的画图功能是Matlab的特点之中的一个,Matlab提供了一系列的画图函数,用户不须要过多的考虑画图的细节,仅仅须要给出一些基本參数就能得到所需图形,这类函数称为高层画图函数。此外,Matlab还提供...

    Matlab画图

    强大的画图功能是Matlab的特点之中的一个,Matlab提供了一系列的画图函数,用户不须要过多的考虑画图的细节,仅仅须要给出一些基本參数就能得到所需图形,这类函数称为高层画图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层画图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,能够通过句柄对该图形元素进行操作,而不影响其它部分。

    本章介绍绘制二维和三维图形的高层画图函数以及其它图形控制函数的使用方法,在此基础上,再介绍能够操作和控制各种图形对象的低层画图操作。

    一.二维画图

    二维图形是将平面坐标上的数据点连接起来的平面图形。能够採用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其它画图操作的基础。

    一.绘制二维曲线的基本函数

    在Matlab中,最基本并且应用最为广泛的画图函数为plot,利用它能够在二维平面上绘制出不同的曲线。

    1. plot函数的基本使用方法

    plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和相应的y坐标,能够绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式

    plot(x,y)     当中x,y为长度同样的向量,存储x坐标和y坐标。

    例51 在[0 , 2pi]区间,绘制曲线

    程序例如以下:在命令窗体中输入以下命令  

    >> x=0:pi/100:2*pi;

    >> y=2*exp(-0.5*x).*sin(2*pi*x);

    >> plot(x,y)

    程序运行后,打开一个图形窗体,在当中绘制出例如以下曲线

    注意:指数函数和正弦函数之间要用点乘运算,由于二者是向量。

     

    例52 绘制曲线

    这是以參数形式给出的曲线方程,仅仅要给定參数向量,再分别求出x,y向量就可以输出曲线:

    >> t=-pi:pi/100:pi;

    >> x=t.*cos(3*t);

    >> y=t.*sin(t).*sin(t);

    >> plot(x,y)

    程序运行后,打开一个图形窗体,在当中绘制出例如以下曲线

     

    以上提到plot函数的自变量x,y为长度同样的向量,这是最常见、最主要的使用方法。实际应用中还有一些变化。分别说明:

    2. 含多个输入參数的plot函数

    plot函数能够包括若干组向量对,每一组能够绘制出一条曲线。含多个输入參数的plot函数调用格式为:plot(x1,y1,x2,y2,…,xn,yn)

    例如以下列命令能够在同一坐标中画出3条曲线。

    >> x=linspace(0,2*pi,100);

    >> plot(x,sin(x),x,2*sin(x),x,3*sin(x))

     

    当输入參数有矩阵形式时,配对的x,y按相应的列元素为横坐标和纵坐标绘制曲线,曲线条数等于矩阵的列数。

     

    >> x=linspace(0,2*pi,100);

    >> y1=sin(x);

    >> y2=2*sin(x);

    >> y3=3*sin(x);

    >> x=[x;x;x]';

    >> y=[y1;y2;y3]';

    >> plot(x,y,x,cos(x))

    x,y都是含有三列的矩阵,它们组成输入參数对,绘制三条曲线;x和cos(x)又组成一对,绘制一条余弦曲线。

    利用plot函数能够直接将矩阵的数据绘制在图形窗体中,此时plot函数将矩阵的每一列数据作为一条曲线绘制在窗体中。如

    >> A=pascal(5)

    A =

         1     1     1     1     1

         1     2     3     4     5

         1      3     6    10    15

         1     4    10    20    35

         1     5    15    35    70

    >> plot(A)

     

    3. 含选项的plot函数

    Matlab提供了一些画图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。这些选项如表所看到的:

    线型

    颜色

    标记符号

    - 实线

    b蓝色

    .   点

    s 方块

    : 虚线

    g绿色

    o 圆圈

    d 菱形

    -. 点划线

    r红色

    × 叉号

    ∨朝下三角符号

    -- 双划线

    c青色

    + 加号

    ∧朝上三角符号

     

    m品红

    * 星号

    <朝左三角符号

     

    y黄色

     

    >朝右三角符号

     

    k黑色

     

    p 五角星

     

    w白色

     

    h 六角星

     

    例 用不同的线型和颜色在同一坐标内绘制曲线 及其包络线。

    >> x=(0:pi/100:2*pi)';

    >> y1=2*exp(-0.5*x)*[1,-1];

    >> y2=2*exp(-0.5*x).*sin(2*pi*x);

    >> x1=(0:12)/2;

    >> y3=2*exp(-0.5*x1).*sin(2*pi*x1);

    >> plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');

     

    在该plot函数中包括了3组画图參数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y,第三组用红色五角星离散标出数据点。

    4. 双纵坐标函数plotyy

    在Matlab中,假设须要绘制出具有不同纵坐标标度的两个图形,能够使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对照分析。使用格式为:plotyy(x1,y1,x2,y2)

    x1,y1相应一条曲线,x2,y2相应还有一条曲线。横坐标的标度同样,纵坐标有两个,左边的相应x1,y1数据对,右边的相应x2,y2。

    例:(略)

    二.绘制图形的辅助操作

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

    1. 图形标注

    在绘制图形时,能够对图形加上一些说明,如图形的名称、坐标轴说明以及图形某一部分的含义等,这些操作称为增加图形标注。有关图形标注函数的调用格式为:

    title(’图形名称’) (都放在单引號内)

    xlabel(’x轴说明’)

    ylabel(’y轴说明’)

    text(x,y,’图形说明’)

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

    当中,title、xlabel和ylabel函数分别用于说明图形和坐标轴的名称。text函数是在坐标点(x,y)处增加图形说明。(P88 或用gtext命令)。legend函数用于绘制曲线所用线型、颜色或数据点标记图例,图例放置在空白处,用户还能够通过鼠标移动图例,将其放到所希望的位置。除legend函数外,其它函数同样适用于三维图形,在三维中z坐标轴说明用zlabel函数。

    上述函数中的说明文字,除了使用标准的ASCII字符外,还能够使用LaTex(一种流行的数学排版软件)格式的控制字符,这样就能够在图形上增加希腊字符,数学符号和公式等内容。在Matlab支持的LaTex字符串中,用/bf , /it , /rm控制字符分别定义黑体、斜体和正体字符,受LaTex字符串控制部分要加大括号{}括起来。比如,text(0.3,0.5,’the usful {/bf MATLAB}’),将使MATLAB一词黑体显示。一些常常使用的LaTex字符见表,各个字符能够单独使用也能够和其它字符及命令配合使用。如text(0.3 ,0.5 ,’sin({/omega}t+{/beta})’)

    将得到标注效果 。

    标识符

    符号

    标识符

    符号

    标识符

    符号

    /alpha

     

    /epsilon

     

    /infty

     

    /beta

     

    /eta

     

    /int

     

    /gamma

     

    /Gamma

     

    /partial

     

    /delta

     

    /Delta

     

    /leftarrow

     

    /theta

     

    /Theta

     

    /rightarrow

     

    /lambda

     

    /Lambda

     

    /downarrow

     

    /xi

     

    /Xi

     

    /uparrow

     

    /pi

     

    /Pi

     

    /div

     

    /omega

     

    /Omega

     

    /times

     

    /sigma

     

    /Sigma

     

    /pm

     

    /phi

     

    /Phi

     

    /leq

     

    /psi

     

    /Psi

     

    /geq

     

    /rho

     

    /tau

     

    /neq

     

    /mu

     

    /zeta

     

    /forall

     

    /nu

     

    /chi

     

    /exists

     

    2. 坐标控制

    在绘制图形时,Matlab能够自己主动依据要绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清楚的显示出来。所以,普通情况下用户不必选择坐标轴的刻度范围。可是,假设用户对坐标不惬意,能够利用axis函数对其又一次设定。其调用格式为

    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一样使用方法

    例 :绘制分段函数,并增加图形标注。(略)

    3. 图形保持

    普通情况下,每运行一次画图命令,就刷新一次当前图形窗体,图形窗体原有图形将不复存在,假设希望在已经存在的图形上再继续增加新的图形,能够使用图形保持命令hold。hold on/off 命令是保持原有图形还是刷新原有图形,不带參数的hold命令在两者之间进行切换。

    例:(略)

    4. 图形窗体切割

    在实际应用中,常常须要在一个图形窗体中绘制若干个独立的图形,这就须要对图形窗体进行切割。切割后的图形窗体由若干个画图区组成,每个画图区能够建立独立的坐标系并绘制图形。同一图形窗体下的不同图形称为子图。Matlab提供了subplot函数用来将当前窗体切割成若干个画图区,每个区域代表一个独立的子图,也是一个独立的坐标系,能够通过subplot函数激活某一区,该区为活动区,所发出的画图命令都是作用于该活动区域。调用格式:

    subplot(m,n,p)

    该函数把当前窗体分成m×n个画图区,m行,每行n个画图区,区号按行优先编号。当中第p个区为当前活动区。每个画图区同意以不同的坐标系单独绘制图形。

    例:(略)

    三.绘制二维图形的其它函数

    1. 其它形式的线性直角坐标图

    在线性直角坐标中,其它形式的图形有条形图、阶梯图、杆图和填充图等,所採用的函数分别为:

    bar(x,y,选项)      选项在单引號中

    stairs(x,y,选项)

    stem(x,y,选项)

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

    前三个函数和plot的使用方法类似,仅仅是沒有多输入变量形式。fill函数按向量元素下标渐增次序依次用直线段连接x,y相应元素定义的数据点。

    例5-8:分别以条形图、填充图、阶梯图和杆图形式绘制曲线

    x=0:0.35:7;

    y=2*exp(-0.5*x);

    subplot(2,2,1);bar(x,y,'g');

    title('bar(x,y,''g'')');axis([0, 7, 0 ,2]);

    subplot(2,2,2);fill(x,y,'r');

    title('fill(x,y,''r'')');axis([0, 7, 0 ,2]);

    subplot(2,2,3);stairs(x,y,'b');

    title('stairs(x,y,''b'')');axis([0, 7, 0 ,2]);

    subplot(2,2,4);stem(x,y,'k');

    title('stem(x,y,''k'')');axis([0, 7, 0 ,2]);

     

    2. 极坐标图

    polar函数用来绘制极坐标图,调用格式为:

    polar(theta,rho,选项)

    当中,theta为极坐标极角,rho为极径,选项的内容和plot函数类似。

    例5-9:绘制 的极坐标图

     

    theta=0:0.01:2*pi;

    rho=sin(3*theta).*cos(5*theta);

    polar(theta,rho,'r');

    3. 对数坐标图

    在实际应用中,常常常使用到对数坐标,Matlab提供了绘制对数和半对数坐标曲线的函数,其调用格式为:

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

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

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

    这些函数中选项的定义和plot函数全然一样,所不同的是坐标轴的选取。semilogx函数使用半对数坐标,x轴为常常使用对数刻度,而y轴仍保持线性刻度。semilogy恰好和semilogx相反。loglog函数使用全对数坐标,x、y轴均採用对数刻度。

    例:略

    4. 对函数自适应採样的画图函数

    5. 其它形式的二维图形

    二. 三维画图

    一.绘制三维曲线的基本函数

    最主要的三维图形函数为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相应列元素绘制三维曲线,曲线条数等于矩阵的列数。

    例513 绘制空间曲线

    该曲线相应的參数方程为

    t=0:pi/50:2*pi;

    x=8*cos(t);

    y=4*sqrt(2)*sin(t);

    z=-4*sqrt(2)*sin(t);

    plot3(x,y,z,'p');

    title('Line in 3-D Space');

    text(0,0,0,'origin');

    xlabel('X');ylabel('Y');zlabel('Z');grid;

     

    二.三维曲面

    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.绘制三维曲面的函数

    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矩阵,然后绘制三维曲线。

    例515 用三维曲面图表现函数 :

    为了便于分析三维曲面的各种特征,以下画出3种不同形式的曲面。

    %program 1

    x=0:0.1:2*pi;

    [x,y]=meshgrid(x);

    z=sin(y).*cos(x);

    mesh(x,y,z);

    xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

    title('mesh'); pause;

    %program 2

    x=0:0.1:2*pi;

    [x,y]=meshgrid(x);

    z=sin(y).*cos(x);

    surf(x,y,z);

    xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

    title('surf'); pause;

    %program 3

    x=0:0.1:2*pi;

    [x,y]=meshgrid(x);

    z=sin(y).*cos(x);

    plot3(x,y,z);

    xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

    title('plot3-1');grid;

     

     

     

    程序运行结果分别如上图所看到的。从图中能够发现,网格图(mesh)中线条有颜色,线条间补面无颜色。曲面图(surf)的线条都是黑色的,线条间补面有颜色。进一步观察,曲面图补面颜色和网格图线条颜色都是沿z轴变化的。用plot3 绘制的三维曲面实际上由三维曲线组合而成。能够分析plot(x’,y’,z’)所绘制的曲面的特征。

    例516 绘制两个直径相等的圆管相交的图形。

    m=30;

    z=1.2*(0:m)/m;

    r=ones(size(z));

    theta=(0:m)/m*2*pi;

    x1=r'*cos(theta);y1=r'*sin(theta);%生成第一个圆管的坐标矩阵

    z1=z'*ones(1,m+1);

    x=(-m:2:m)/m;

    x2=x'*ones(1,m+1);y2=r'*cos(theta);%生成第一个圆管的坐标矩阵

    z2=r'*sin(theta);

    surf(x1,y1,z1);          %绘制竖立的圆管

    axis equal ,axis off

    hold on

    surf(x2,y2,z2);          %绘制平放的圆管

    axis equal ,axis off

    title ('两个等直径圆管的交线');

    hold off

     

    例517 分析由函数 构成的曲面形状与平面z=a的交线。

    此外,还有两个和mesh函数类似的函数,即带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz,其使用方法和mesh类似。不同的是,meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。

    surf函数也有两个类似的函数,即具有等高线的曲面函数surfc和具有光照效果的曲面函数surfl。

    例518 在xy平面内选择[-8, 8]×[-8, 8]绘制函数,

    [x,y]=meshgrid(-8:0.5:8);

    z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);

    subplot(2,2,1);

    meshc(x,y,z);

    title('meshc');

    subplot(2,2,2);

    meshz(x,y,z);

    title('meshz');

    subplot(2,2,3);

    surfc(x,y,z);

    title('surfc');

    subplot(2,2,4);

    surfl(x,y,z);

    title('surfl');

    3.标准三维曲面

    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矩阵,

    例519 绘制标准三维曲面图形

    t=0:pi/20:2*pi;

    [x,y,z]=cylinder(2+sin(t),30);

    subplot(1,3,1);

    surf(x,y,z);

    subplot(1,3,2);

    [x,y,z]=sphere;

    surf(x,y,z);

    subplot(1,3,3);

    [x,y,z]=peaks(30);

    meshz(x,y,z);

     

    3.其它三维图形。

    在介绍二维图形时,以前提到条形图、杆图、饼图和填充图等特殊图形,它们还能够以三维形式出现,其函数分别为bar3,stem3,pie3和fill3。

    bar3绘制三维条形图,常常使用格式为:

    bar3(y);

    bar3(x,y)

    在第一种格式中,y的每个元素相应于一个条形。另外一种格式在x指定的位置上绘制y中元素的条形图。

    stem3函数绘制离散序列数据的三维杆图,常常使用格式为:

    stem3(z)

    stem3(x,y,z)

    第一种格式将数据序列z表示为从xy平面向上延伸的杆图,x和y自己主动生成。另外一种格式在x和y指定的位置上绘制数据序列z的杆图,x,y,z的维数要同样。

    pie3函数绘制三维饼图,常常使用格式为:

    pie3(x)

    x为向量,用x中的数据绘制一个三维饼图。

    fill3函数可在三维空间内绘制出填充过的多边形,常常使用格式为:

    fill3(x,y,z,c)

    用x,y,z做多边形的顶点,而c指定了填充的颜色。

    例520 绘制三维图形。

    1绘制魔方阵的三维条形图2以三维杆图形式绘制曲线y=2sinx 3已知x =[2347,1827,2043,3025] ,绘制三维饼图     4用随机的顶点坐标值画出5个黄色三角形

    subplot(2,2,1);

    bar3(magic(4));

    subplot(2,2,2);

    y=2*sin(0:pi/10:2*pi);

    stem3(y);

    subplot(2,2,3);

    pie3([2347,1827,2043,3025]);

    subplot(2,2,4);

    fill3(rand(3,5),rand(3,5),rand(3,5),'y');

    除了上面讨论的三维图形外,常常使用的图形还有瀑布图和三维曲面的等高线图。绘制瀑布图用waterfall函数,使用方法和meshz函数类似,仅仅是它的网格线在x轴方向出现,具有瀑布效果。等高线图分二维和三维两种形式,分别使用函数contour和contour3绘制。

    例521 绘制多峰函数的瀑布图和等高线图。

     

    subplot(1,2,1);

    [X,Y,Z]=peaks(30);

    waterfall(X,Y,Z);

    xlabel('XX');ylabel('YY');zlabel('ZZ');

    subplot(1,2,2);

    contour3(X,Y,Z,12,'k');%当中12代表高度的等级数

    xlabel('XX');ylabel('YY');zlabel('ZZ');

    三.三维图形的精细处理

    一.视点处理

    在日常生活中,从不同的角度观察物体,所看到的物体形状是不一样的。同样,从不同视点绘制的三维图形的形状也是不一样的。视点位置可由方位角和仰角表示。

    方位角

    Matlab提供了设置视点的函数view,其调用格式为:

    view(az,el)

    当中az为方位角,el为仰角,它们均以度为单位。系统默认的视点定义为方位角为-37.5度,仰角30度。

    例522 从不同视点绘制多峰函数曲面。

     

    subplot(2,2,1);mesh(peaks);

    view(-37.5,30);

    title('1');

    subplot(2,2,2);mesh(peaks);

    view(0,90);

    title('2');

    subplot(2,2,3);mesh(peaks);

    view(90,0);

    title('3');

    subplot(2,2,4);mesh(peaks);

    view(-7,-10);

    title('4');

    二.色彩处理

    三.图形的裁剪处理

    Matlab定义的NaN常数能够用于表示那些不可使用的数据,利用这些特性,能够将图形中须要裁剪部分相应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。比如,要削掉正弦波顶部或底部大于0.5的部分,可使用以下的程序。

    x=0:pi/10:4*pi;

    y=sin(x);

    i=find(abs(y)>0.5);

    x(i)=NaN;

    plot(x,y);

    例524 绘制两个球面,当中一个在还有一个里面,将外面的球裁掉一部分,以便能看到里面的球。

    [x,y,z]=sphere(25);

    %生成外面的大球

    z1=z;

    z1(:,1:4)=NaN;%将大球裁去一部分

    c1=ones(size(z1));

    surf(3*x,3*y,3*z1,c1);       %生成里面的小球

    hold on

    z2=z;

    c2=2*ones(size(z2));

    c2(:,1:4)=3*ones(size(c2(:,1:4)));

    surf(1.5*x,1.5*y,1.5*z2,c2);

    colormap([0 1 0;0.5 0 0;1 0 0]);

    grid on

    hold off

     

    色图中使用三种颜色,外面的球是绿色,里面的球採用深浅不同的两种红色。

    四.隐函数作图

    假设给定了函数的显式表达式,能够先设置自变量向量,然后依据表达式计算函数向量,从而用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)图形。

    例525 隐函数画图举例。

     

    subplot(2,2,1);

    ezplot('x^2+y^2-9');axis equal;

    subplot(2,2,2);

    ezplot('x^3+y^3-5*x*y+1/5')

    subplot(2,2,3);

    ezplot('cos(tan(pi*x))',[0,1]);

    subplot(2,2,4);

    ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi]);

    其它隐函数画图还有,ezpolar,ezcontour,ezplot3,ezmesh,ezmeshc,ezsurf,ezsurfc。

    展开全文
  • matlab 画图模块

    2012-02-28 21:55:16
    matlab画图程序包,功能强大简单易学
  • 求大神教教菜鸟,如何在VS2010 中导入matlab,...1.如何调入MATLAB 画图功能到VS 中。 2.如何将 VS 中计算出来的数据传值到MATLAB中, 或是直接由MATLAB 读取数据库中数据进行计算然后画图展示。这两种方式哪种更简单,
  • 但是许多人并没有发现他的最好用之处——相比于大部分语言,需要记住一堆API函数才能绘制出想要的曲线, matlab提供了可视化的界面进行傻瓜式的画图操作, 实现指哪打哪的功能而不需要任何代码。 可以这么说, 如果...
  • MATLAB具备强大的绘图功能,本专栏将把MATLAB...目录MATLAB画图技巧与实例(一):常用函数2. MATLAB画图技巧与实例(二):散点图scatter和scatter3函数3. MATLAB画图技巧与实例(三):误差条图errorbar函数4. M...
  • (建议阅读原文)预备知识 Matlab 的函数 Matlab 具有强大的画图功能, 这里仅介绍一些基础知识. 最常用的画图函数是 plot, 例如 结果如图 1 (左) 所示. 如果要在该坐标系继续画图, 要用 hold on 命令(on 是 ...
  • Matlab画图及生成exe文件 这两天做个演示用例,用到了Matlab的画图功能,总结一下,备查。 1.画图 写个简单的.m文件是很Easy的,罗列下几个常用函数的使用方法 [示例1]:plot(X,Y,'b-','linewidth',2)...
  • Matlab画图教程

    2017-09-25 11:41:15
    1、MATLAB简介:MATLAB语言丰富的图形表现...2、MATLAB的绘图功能: (1)单窗口单曲线绘图 x=[0,0.58,0.84,1,0.91,0.6,0.14] plot (x) (2)单窗口多曲线绘图 t=0:pi/100:2*pi; y=sin(t);y1=sin(t+0.25);y2
  • matlab画图指令

    千次阅读 2017-05-24 10:27:10
    强大的绘图功能Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行...
  • edge函数用来检测边缘 scatter与colorbar 结合起来用 colorbar 画颜色图 quiver画小箭头用的 还有一篇比较好的文章: subspace learning from image gradient orientation
  • Matlab是一款强大的软件,画图功能使用方便,只需要简单的一个指令即可完成其他软件几十行甚至上百行代码才能实现的功能。这里就给初学者介绍一下简单的画图功能
  • 自动化专业综合设计报告 自动化专业综合设计报告 设计题目 利用MATLAB编程实现动态画图功能 所在实验室 自动化系统仿真实验室 指导教师 学生姓名 班级 计082-2 班 学号 200825502210 撰写时间 2012-3-1 成绩评定 一...
  • 最新Matlab画图程序.pdf

    2020-09-11 13:50:38
    Matlab 二维绘图 2010-06-08 20:41 本节介绍 MATLAB 的两种基本绘图功能二维平面图形和三维立体图形 5.1 二维平面图形 5.1.1 基本图形函数 plot 是绘制二维图形的最基本函数它是针对向量或矩阵的列来绘制曲线的也...
  • Matlab画图 强大的画图功能是Matlab的特点之中的一个,Matlab提供了一系列的画图函数,用户不须要过多的考虑画图的细节,仅仅须要给出一些基本參数就能得到所需图形,这类函数称为高层画图函数。此外,Matlab还提供...
  • matlab简单画图功能用到的命令

    千次阅读 2018-03-14 20:31:32
    1、进入数据目录cd('F:\workspace\querytime')2、加载数据文件 a=load('result2018-03-14 15-05.csv')3、矩阵数据处理,下标从1开始a(:,1)表示第一列,a(1,:)表示第一行,a(1,1)表示第一个元素4、绘制图像plot(a(:,...
  • MATLAB画图,浙江大学授课资料。 不包括极坐标的三维画图! matlab语言的绘图功能 不仅能绘制几乎所有的标准图形, 而且其表现形式也是丰富多样的。
  • matlab画图命令

    千次阅读 2014-12-24 10:05:15
    功能 线性二维图。在线条多于一条时,若用户没有指定使用颜色,则plot循环使用由当前坐标轴颜色顺序属性(current axes ColorOrder property)定义的颜色,以区别不同的线条。在用完上述属性值后,plot又循环使用...
  • matlab 画图函数plot

    千次阅读 2017-10-27 09:34:31
    载:... Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y) plot(X1,Y1,...) plot(X1,Y1,LineSpec,...) plot(...,'PropertyNam
  • matlab画图去掉figure中的白边 imshow(strain_image,‘border’,‘tight’,‘initialmagnification’,‘fit’); %‘border’,'tight’的组合功能意思是去掉图像周边空白 %‘InitialMagnification’,'fit’组合的意思...
  • C++调用Matlab画图 V2.0

    千次阅读 2016-05-03 23:06:26
    实现功能通过C++调用Matlab的接口来实现plot的部分功能。程序依赖代码依赖:Matlab,Eigen,Boost 测试版本:Matlab2015B,Eigen3.2.8,Boost1.57.0 适合人群:代码发烧友程序代码代码1:matlab.hpp #ifndef __...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 346
精华内容 138
关键字:

matlab画图功能

matlab 订阅