在科研数据处理当中,往往会遇到许多不规则的散点数据,通过程序将这些数据的包络线(Envelope)进行描述可以更好地展现数据的取值范围。在进行数据统计当中,对于样本数据包络线的描述一般不可或缺。
这里采用MATLAB软件,自己编写了一段描述散点数据包络线的代码,也是我平时使用的代码,与大家交流协同改进。

程序当中变量定义如下:

X:散点数据的横坐标;
Y:散点数据的纵坐标;
n:需要将包络线进行多项式拟合的阶数;
x_min, x_max, x_int:需要进行多项式拟合的坐标下限、上限以及坐标步长;
window_n:散点数据窗大小(在正序散点当中的n个值里取极大(极小)值),若n不是散点数据个数的约数,则对数据尾端增加零点使其数量达到n的整数倍。

%  Find the boundary of data
%  X-input x coordinary
%  Y-input y coordinary
%  n-polyfit times
%  x_min,x_max,x_int-range of x and interval of x
function [Xup_fit,Yup_fit,Xdown_fit,Ydown_fit,X_up,Y_up,X_down,Y_down]=BD_poly(X,Y,n,x_min,x_max,x_int,window_n)
[X2,p]=sort(X);
Y2=Y(p);
while mod(length(Y2),window_n)~=0Y2(end+1)=0;X2(end+1)=0;
end
Y_up=max(reshape(Y2,window_n,length(Y2)/window_n));
for i = 1:length(Y_up)X_up(i)=X2(find(Y2==Y_up(i),1));
end
Y_down=min(reshape(Y2,window_n,length(Y2)/window_n));
for i = 1:length(Y_down)X_down(i)=X2(find(Y2==Y_down(i),1));
end
[Aup]=polyfit([X_up],[Y_up],n);
Xup_fit=x_min:x_int:x_max;
Yup_fit=polyval(Aup,Xup_fit);
[Adown]=polyfit([X_down],[Y_down],n);
Xdown_fit=x_min:x_int:x_max;
Ydown_fit=polyval(Adown,Xdown_fit);

算例说明

对于X,Y均为1-5随机均匀随机分布的散点来说,通过程序计算得到的包络线如图:
红线为包络线,蓝线为多项式拟合。

window_n=10,拟合多项式次数为5;

window_n=50,拟合多项式次数为5;

window_n=100,拟合多项式次数为5;

对于
x服从0-100随机分布,y服从公式:y=sin(x)∗xy=sin(x)*xy=sin(x)∗x的数据散点来说:
window_n=10,拟合多项式次数为5;

window_n=50,拟合多项式次数为5;

window_n=100,拟合多项式次数为5;

散点数据的包络线获取(MATLAB)相关推荐

  1. matlab 三维点 边界曲面,不用matlab如何从散点数据绘制极坐标三维曲面图?

    [ 在 OSN10 (老洪) 的大作中提到: ] : 标  题: Re: 不用matlab如何从散点数据绘制极坐标三维曲面图? : 发信站: 水木社区 (Sat Dec 15 20:47:17 201 ...

  2. griddata - 插入二维或三维散点数据(绘制等值线图,应力应变云图,像素点图)

    在MATLAB 函数中, 使 v = f(x,y) 形式的曲面与向量 (x,y,v) 中的散点数据拟合 griddata 函数在 (xq,yq)指定的查询点对曲面进行插值并返回插入的值 vq.曲面始终 ...

  3. R语言ggplot2可视化绘制二维的密度图:在R中建立二维散点数据的连续密度热图、2D密度估计、MASS包中的kde2d函数实现2D密度估计、geom_density2d函数可视化二维密度图

    R语言ggplot2可视化绘制二维的密度图:在R中建立二维散点数据的连续密度热图.2D密度估计.MASS包中的kde2d函数实现2D密度估计.geom_density2d函数可视化二维密度图 目录

  4. WPS表格如何对散点数据进行指数函数拟合

    1 2 3 4 5 6 7 画出散点数据未能看出数据的趋势,而数据的趋势分析要用到函数的拟合.这篇经验先介绍如何使用WPS表格对散点数据进行指数函数的拟合,以及如何显示出拟合后的指数函数公式. 方法/ ...

  5. numpy实现K-means聚类算法(可选是否已知类别数)和VQ-LBG矢量量化算法以及散点数据生成(含完整实验报告)

    numpy实现K-means聚类算法(可选是否已知类别数)和VQ-LBG矢量量化算法以及散点数据生成(含完整实验报告) 实验报告完整,质量不低,加上你学校的封面就能交,也可用来交流学习: (20条消息 ...

  6. 给定直线参数在二维散点数据上绘制直线(Python)

    声明: 仅个人小记 前言:遇到在二维散点图上绘制指定的直线,直线不是通过直接给出两个断点而是只给了直线的必要参数,进而需要基于散点数据计算出直线的两个端点,然后绘制出直线.方便以后使用,计算端点过程记 ...

  7. matlab中求包络线函数,matlab包络线函数

    的包络 解调方法 一直 是机 械故 障诊 线 ,只 需要经 过大 脑 的取舍 ,...(c )可 以看 出,经过 MATLAB 中的 Hilbert 函数 后也 出现 了皱 纹 ,...... yma ...

  8. MATLAB 散点数据拟合曲线

    Matlab是一个很强大的数据处理软件,是人们进行数据分析的得力助手.一般我们做社会调研或科学研究时,会得到很多实验数据.当需要研究两个变量之间的关系时,经常要用到曲线拟合.曲线拟合不仅能给出拟合后的 ...

  9. 二值化轮廓图像轮廓点坐标顺时针获取matlab程序

    由一副二值化轮廓图像,经过8邻域扫描,得到顺时针方向各个轮廓点的坐标. %由一幅2值化的汉字轮廓图像顺时针或逆时针获取轮廓坐标 edgeIm = imread('D:\EdgeIm.bmp'); %f ...

  10. Hilbert变换求信号的包络线及MATLAB代码

    一.Hilbert变换表达式 Hilbert变换是信号与的卷积,表达式如下: 由于本质是卷积,因此可以从"线性系统","调幅-调频"等角度思考.进一步可参考如下 ...

最新文章

  1. 日本电信企业5G部署计划 限制了华为中兴设备的使用
  2. cocos2d-x 2.0启用HD高清图片支持
  3. wpf slider 控件模板
  4. python添加模块搜索路径
  5. mysql数字字符串教程_很全面的mysql字符串函数的教程
  6. 学长毕业日记 :本科毕业论文写成博士论文的神操作20160317
  7. 十个习惯让你精通新的开发技术
  8. 分布式团队中沟通引发的问题, itest 解决之道
  9. mysql无法连接locahost_完美解决MySQL通过localhost无法连接数据库的问题
  10. 西游记不单单讲的是故事(1) ------ 摘自 吴闲云的《煮酒探西游》
  11. 支付宝红包机器人不加好友解决思路
  12. 书单|阿里、百度大咖联合强推的2018年必读好书清单
  13. 史上最全APP推广渠道
  14. 如何把公司网址生成二维码
  15. 协方差意味着什么_微服务意味着我们可以使用所需的任何语言? 真?
  16. pycharm运行tensorflow报错
  17. python求绝对值得方法
  18. 【深度域自适应】一、DANN与梯度反转层(GRL)详解
  19. Direct Shot Correspondence Matching
  20. How to use template

热门文章

  1. android wifi分享文件下载,WiFi文件共享
  2. android设置wifi蓝牙共享文件,无需互联网或蓝牙即可通过WiFi通过android共享文件...
  3. SAP中会计凭证红蓝冲相关分析测试笔记
  4. 医学图像处理常用的看图软件介绍及使用(RadiAnt DICOM Viewer、ITK-Snap和3D Slicer)
  5. 自然常数e的由来以及计算机为什么是二进制
  6. 16张SIM卡,8路5g多卡聚合路由器5g多卡汇聚路由器,多网融合,弱网通信
  7. vivos9桌面字体样式怎样修改
  8. Java学多久可以接项目_自学Java,多久可以找到工作?
  9. linux服务器网卡极限速率,linux下简单限制网卡速度
  10. vue中使用市区(地区)联动 复制三步完成