plot画分段函数_Matlab分段函数图像画法的几点注记「建议收藏」

plot画分段函数_Matlab分段函数图像画法的几点注记「建议收藏」摘要:本文指出《Matlab教程及实训》中关于分段函数画法的不妥,给出Matlab分段函数的最常用的几种画法。关键词:Matlab分段函数Matalb是三大数学软件之一,有强大的计算功能,图形处理功能,仿真功能,因此学好Matlab可以使我们事半功倍。我们在处理实际问题中经常遇到需要画函数图像,尤其分段函数,有时候会感到茫然,如何利用Matlab画分段函数的图像?我们都知道,画图也就是描点…

大家好,又见面了,我是你们的朋友全栈君。

摘要:本文指出《Matlab教程及实训》中关于分段函数画法的不妥,给出Matlab分段函数的最常用的几种画法。

关键词: Matlab   分段函数

Matalb是三大数学软件之一,有强大的计算功能,图形处理功能,仿真功能,因此学好Matlab可以使我们事半功倍。我们在处理实际问题中经常遇到需要画函数图像,尤其分段函数,有时候会感到茫然,如何利用Matlab画分段函数的图像?

我们都知道,画图也就是描点,描的点越多,画出的图像越光滑。二维空间画图是描平面上的点,三维空间画图是描空间中的点。

《Matlab教程及实训》这本书中,关于分段函数画图的程序本人认为有点不妥。现分析如下:

例5-1根据函数绘制一条曲线,使用if结构将曲线分成三段,绘制的曲线如图5-1所示,函数为

程序如下:  x=-5:0.1:5;

>> if x>=1

y=x.^2-1

elseif -1

y=0*x

else

y=-x.^2-1

end

plot(x,y)

很明显,程序本身不仅存在输入错误,还存在逻辑错误,我们从分段函数的表达式看,可以推测出该函数的图像不应该是一条抛物线,而是由两条抛物线和一段线段组成。我们来分析一下深层次的原因:①第一个if语句的条件判断x>=1,也就是x行向量里面的所有的元素全部大于或者等于1,条件的逻辑判断才会真,否则为假。②elseif的条件-1

我们简单归纳一下,分段函数的几种常见的画法这里以例5-1为例:

利用逻辑变量来画图

clear

x=-5:0.1:5;

y=(x>1).*(x.^2-1)+((-1

plot(x,y)

利用find函数找非零元素

clear

x=-5:0.1:5;

y=zeros(size(x));%预处理可加快运算速度

k1=find(x>=1);%k1返回符合x>=1的数组编址(单下标)

y(k1)=x(k1).^2-1;

k2=find(-1

y(k2)=0;

k3=find(x<=-1);%k3返回符合x=

y(k3)=- x(k3).^2+1;

plot(x,y)

各个函数拼接在一起

clear

x1=-5:0.1:-1;y1=-x1.^2+1;plot(x1,y1);hold on

x2=-1:0.1: 1;y2=0.*x2;plot(x2,y2);hold on

x3=1:0.1:5;y3=x3.^2-1; plot(x3,y3)

我们还可以使用for循环+if语句或者利用while循环+if语句,我就不再一一列举了,利用上述五种方法,都能得到上述正确的函数图像。

Matlab中分段函数画法也多种多样没有必要全部掌握,掌握常见的几种方法就可以顺利的画分段函数图像。

参考文献

[1] 曹弋.Matlab 教程及实训[M].北京:机械工业出版社,2005.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137527.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月1日 下午8:36
下一篇 2022年6月1日 下午8:46


相关推荐

  • 利用logstash的logstash-input-jdbc插件实现mysql增量导入ES的介绍

    利用logstash的logstash-input-jdbc插件实现mysql增量导入ES的介绍logstash-input-jdbc安装超痛苦,专门写了一篇文章发出来使大家安装的时候不用那么费劲。利用logstash的logstash-input-jdbc插件实现mysql增量导入ES的介绍

    2022年6月23日
    26
  • struts2核心控制器在哪里配置_intercontrol控制器

    struts2核心控制器在哪里配置_intercontrol控制器原文:http://mopishv0.blog.163.com/blog/static/54455932200981295843192/1.   在struts1.x系列中,所有的请求是通过一个servlet(ActionServlet)来管理控制的,在Struts2.X而是经过一个Filter来处理请求的。Struts2将核心控制器设计成Filter,而不是一个普通Servlet。struts1.x中actionorg.apache.struts.action.ActionServlet。。。St

    2022年8月16日
    9
  • QTcpSocket简单使用[通俗易懂]

    QTcpSocket简单使用[通俗易懂]QTcpServer类提供一个TCP基础服务类继承自QObject这个类用来接收到来的TCP连接,可以指定TCP端口或者用QTcpServer自己挑选一个端口,可以监听一个指定的地址或者所有的机器地址。调用listen()来监听所有的连接,每当一个新的客户端连接到服务端就会发射信号newConnection()调用nextPendingConnection()来接受待处理的连接。返回一个连接的QTcpSocket(),我们可以用这个返回的套接字和客户端进行连接如果有错误,serverErr.

    2025年10月11日
    11
  • 关于静态方法与非静态方法的执行效率

    关于静态方法与非静态方法的执行效率以前看到许多网友认为静态方法要比实例方法在执行效率上要快一些 当初不敢苟同 自己亲自试了一把 发现静态方法确实要快一些 想要比较静态方法与非静态方法的执行效率 需要对 CLR 在调用静态方法与非静态方法时的不同之处要有一个了解 静态方法是与类相关联的 CLR 在调用一个静态方法时需要做的事情就是找到定义该方法的类型即可实现调用 而在调用非静态方法时 为了保证运行安全 CLR 会对我们的源代码进行

    2026年1月23日
    2
  • Maven直接部署Web应用Tomcat

    Maven直接部署Web应用Tomcat

    2022年1月7日
    49
  • arcgis两张图层不能同时显示_arcgis怎么把两个图层合并成一个

    arcgis两张图层不能同时显示_arcgis怎么把两个图层合并成一个arcgis 怎么把两个图层合并成一个 1 Arcgis 中怎样将一个点图层和一个面图层合并为一个图层且属性都在呢 1 ARCGIS 如何将点图层的属性赋给面图层用 arctoolboxan gt overlay gt sptatialjoin 工具 可以把点属性赋值到面上 即可解决 2 在 ArcGIS 中可以对点 线 面数据进行 7afe78988e

    2026年3月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号