【MATLAB】plot函数详解

2024-06-04 2502阅读

一、plot函数语法

plot(x,y,s)

二、用坐标绘制图形

        先看plot函数的基础部分:

plot(x,y)

        其中,x为横坐标,y为纵坐标。若要index.php/tags-602.html" class="superseo">使用plot函数绘制线段,首先需要给定x、y的值。

        给变量赋值的语法为:

变量名 = [值1 值2 ... 值n];

        因此,若要表示点A(1,1)和B(2,2),对应的语法为:

x = [1 2];
y = [1 2];

        注意:句尾分号的作用为不显示结果,不加分号则显示本行的结果。

        用plot函数绘制线段AB,语法为:

x = [1 2];
y = [1 2];
plot(x, y)

        效果如下:

【MATLAB】plot函数详解 第1张

        可以看到,通过使用plot函数,我们已经绘制了AB线段。但仔细观察我们发现,虽然线段在x、y轴上的长度都是1,可是实际的长度并不相同。为此,我们可以添加一条axis equal语句来使图像的x、y轴的比例相同:

x = [1 2];
y = [1 2];
plot(x, y)
axis equal;

【MATLAB】plot函数详解 第2张

        现在我们看到,添加axis equal语句后,x、y轴的刻度范围不一定相同,但比例是一定相同的。现在,若要画一条折线ABC,C的坐标为(3,1),可以分别给x、y添加一个新值:

x = [1 2 3];
y = [1 2 1];
plot(x, y)
axis equal;

        运行,结果为:

【MATLAB】plot函数详解 第3张

        现在,若要绘制一个三角形ABC,还需要将折线的首尾相连:

x = [1 2 3 1];
y = [1 2 1 1];
plot(x, y)
axis equal;

        运行,结果为:

【MATLAB】plot函数详解 第4张

        四边形、五边形、...  、n边形也是同理。现在尝试画一个五角星:

x = [3 5 7 2 8 3];
y = [3 9 3 7 7 3];
plot(x, y)
axis equal;

        结果为:

【MATLAB】plot函数详解 第5张

        图像的大概形状差不多,但还不是一个标准的五角星。下面介绍画图的第二种方法。

三、用函数绘制图形

        若想要用函数绘制图形,需要先设置自变量x的范围、y关于x的函数关系式或x、y的参数方程。

        方法一,使用y关于x的函数关系式:

        首先来看定义变量x的范围的语法:

x = 初始值:步长:最终值;

        初始值和最终值很好理解,步长的意思是从初始值到最终值的这条线上,每隔多长距离选取一个点。若步长为1,则代表,每隔1个单位长度选取一个点。在书写y关于x的关系式的时候,乘号不能省略。并且在matlab中,每个数都是一个矩阵,矩阵的幂运算用“^”运算符,涉及变量的幂运算时,要使用“.^”运算符。

        下面,我们来绘制一条x在[1,10]上,y=2x的直线:

x = 1:1:10;
y = 2*x;
plot(x, y)
axis equal;

         运行效果如下:

【MATLAB】plot函数详解 第6张

        学会如何绘制直线后,我们来学习如何绘制曲线。下面我们来尝试画一个圆:

        我们知道,圆的一般方程是(x-a)²+(y-b)²=r²,那么圆心在(2,2),半径为1的圆的一般方程为:(x-2)²+(y-2)²=1。整理得:y关于x的函数关系式为:y=√1-(x-2)² + 2。编写程序为:

x = 0:0.5:5;
y = sqrt(1-(x-2).^2)+2;
plot(x, y)
axis equal;

        运行结果为:

【MATLAB】plot函数详解 第7张

         为什么图像是这样呢?两侧是直线的原因是,圆心在(2,2),半径为1的圆,x的范围只能在[1,3]之间,因此其他位置是直线。不像圆的原因是,步长0.5对于这个图形来说太大了,应该缩短步长,才更接近于曲线。图像只有半个圆的原因是,根号下不能小于零,所以y的值只能大于等于零。现在我们来修改一下程序:

        (注:绘制多个图像直接在plot函数的括号中再加一对x、y即可)

x = 1:0.01:3;
y1 = sqrt(1-(x-2).^2)+2;
y2 = -sqrt(1-(x-2).^2)+2;
plot(x, y1, x, y2)
axis equal;

         运行结果为:

【MATLAB】plot函数详解 第8张

        很好!这样看起来就像一个圆了!由此我们可以得知,步长越短,图像越接近于曲线。我们再来尝试第二种方法——参数方程:

        我们知道,圆的参数方程为:

                x = a + rcosθ

                y = b + rsinθ

        这次,我们来绘制圆心为(1,1),半径为2的圆。这次我们要先设置一个变量theta,代码如下:

theta = 0:pi/100:2*pi;
x = 1+2*cos(theta);
y = 1+2*sin(theta);
plot(x, y)
axis equal;

        运行效果如下:

【MATLAB】plot函数详解 第9张

        和预期的完全一致!看来你已经学会了第二种方法!

        最后,我们来解决刚刚绘制五角星的问题。点围绕圆一共转了两圈,步长为4/5π。所以代码为:

theta = 0:4/5*pi:4*pi;
x = 1+2*cos(theta);
y = 1+2*sin(theta);
plot(x, y)
axis equal;

         运行效果为:

【MATLAB】plot函数详解 第10张

        已经是标准的五角星了!现在只需要旋转适当的角度就可以使五角星正过来:

theta = pi/10:4/5*pi:4*pi+pi/10;
x = 1+2*cos(theta);
y = 1+2*sin(theta);
plot(x, y)
axis equal;

        运行效果为:

【MATLAB】plot函数详解 第11张

        完美!接下来我们学习plot函数的更多用法:

四、绘制样式更丰富的图形

        plot(x,y,s)函数的s部分可以设置线的颜色、点的形式、线的形式。s部分要用单引号(' ')引起来。

        1、设置线的颜色:

                b(bule):蓝色

                g(green):绿色

                r(red):红色

                c(cyan):青色

                m(magenta):洋红色

                y(yellow):黄色

                k(black):黑色

                w(white):白色

        2、设置点的样式:

                .(点)

                o(圈)

                x(x标记)

                +(加号)

                *(星号)

                s(正方形)

                d(菱形)

                v(下三角)

                ^(上三角)

                (右三角)

                p(五角星)

                h(六角星)

        3、设置线的样式:

                -(实线)

                :(点线)

                -.(点虚线)

                --(虚线)

                (none)(隐藏线)

        例如,要绘制红色,点为五角星,线为点虚线的线,语法为:

x = [1 2];
y = [1 1];
plot(x, y, 'rp-.')
axis equal;

         运行结果为:

【MATLAB】plot函数详解 第12张

 

本章完。

感谢阅读!

 

 

 


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]