散点数据的包络线获取(MATLAB)
在科研数据处理当中,往往会遇到许多不规则的散点数据,通过程序将这些数据的包络线(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)相关推荐
- matlab 三维点 边界曲面,不用matlab如何从散点数据绘制极坐标三维曲面图?
[ 在 OSN10 (老洪) 的大作中提到: ] : 标 题: Re: 不用matlab如何从散点数据绘制极坐标三维曲面图? : 发信站: 水木社区 (Sat Dec 15 20:47:17 201 ...
- griddata - 插入二维或三维散点数据(绘制等值线图,应力应变云图,像素点图)
在MATLAB 函数中, 使 v = f(x,y) 形式的曲面与向量 (x,y,v) 中的散点数据拟合 griddata 函数在 (xq,yq)指定的查询点对曲面进行插值并返回插入的值 vq.曲面始终 ...
- R语言ggplot2可视化绘制二维的密度图:在R中建立二维散点数据的连续密度热图、2D密度估计、MASS包中的kde2d函数实现2D密度估计、geom_density2d函数可视化二维密度图
R语言ggplot2可视化绘制二维的密度图:在R中建立二维散点数据的连续密度热图.2D密度估计.MASS包中的kde2d函数实现2D密度估计.geom_density2d函数可视化二维密度图 目录
- WPS表格如何对散点数据进行指数函数拟合
1 2 3 4 5 6 7 画出散点数据未能看出数据的趋势,而数据的趋势分析要用到函数的拟合.这篇经验先介绍如何使用WPS表格对散点数据进行指数函数的拟合,以及如何显示出拟合后的指数函数公式. 方法/ ...
- numpy实现K-means聚类算法(可选是否已知类别数)和VQ-LBG矢量量化算法以及散点数据生成(含完整实验报告)
numpy实现K-means聚类算法(可选是否已知类别数)和VQ-LBG矢量量化算法以及散点数据生成(含完整实验报告) 实验报告完整,质量不低,加上你学校的封面就能交,也可用来交流学习: (20条消息 ...
- 给定直线参数在二维散点数据上绘制直线(Python)
声明: 仅个人小记 前言:遇到在二维散点图上绘制指定的直线,直线不是通过直接给出两个断点而是只给了直线的必要参数,进而需要基于散点数据计算出直线的两个端点,然后绘制出直线.方便以后使用,计算端点过程记 ...
- matlab中求包络线函数,matlab包络线函数
的包络 解调方法 一直 是机 械故 障诊 线 ,只 需要经 过大 脑 的取舍 ,...(c )可 以看 出,经过 MATLAB 中的 Hilbert 函数 后也 出现 了皱 纹 ,...... yma ...
- MATLAB 散点数据拟合曲线
Matlab是一个很强大的数据处理软件,是人们进行数据分析的得力助手.一般我们做社会调研或科学研究时,会得到很多实验数据.当需要研究两个变量之间的关系时,经常要用到曲线拟合.曲线拟合不仅能给出拟合后的 ...
- 二值化轮廓图像轮廓点坐标顺时针获取matlab程序
由一副二值化轮廓图像,经过8邻域扫描,得到顺时针方向各个轮廓点的坐标. %由一幅2值化的汉字轮廓图像顺时针或逆时针获取轮廓坐标 edgeIm = imread('D:\EdgeIm.bmp'); %f ...
- Hilbert变换求信号的包络线及MATLAB代码
一.Hilbert变换表达式 Hilbert变换是信号与的卷积,表达式如下: 由于本质是卷积,因此可以从"线性系统","调幅-调频"等角度思考.进一步可参考如下 ...
最新文章
- 日本电信企业5G部署计划 限制了华为中兴设备的使用
- cocos2d-x 2.0启用HD高清图片支持
- wpf slider 控件模板
- python添加模块搜索路径
- mysql数字字符串教程_很全面的mysql字符串函数的教程
- 学长毕业日记 :本科毕业论文写成博士论文的神操作20160317
- 十个习惯让你精通新的开发技术
- 分布式团队中沟通引发的问题, itest 解决之道
- mysql无法连接locahost_完美解决MySQL通过localhost无法连接数据库的问题
- 西游记不单单讲的是故事(1) ------ 摘自 吴闲云的《煮酒探西游》
- 支付宝红包机器人不加好友解决思路
- 书单|阿里、百度大咖联合强推的2018年必读好书清单
- 史上最全APP推广渠道
- 如何把公司网址生成二维码
- 协方差意味着什么_微服务意味着我们可以使用所需的任何语言? 真?
- pycharm运行tensorflow报错
- python求绝对值得方法
- 【深度域自适应】一、DANN与梯度反转层(GRL)详解
- Direct Shot Correspondence Matching
- How to use template
热门文章
- android wifi分享文件下载,WiFi文件共享
- android设置wifi蓝牙共享文件,无需互联网或蓝牙即可通过WiFi通过android共享文件...
- SAP中会计凭证红蓝冲相关分析测试笔记
- 医学图像处理常用的看图软件介绍及使用(RadiAnt DICOM Viewer、ITK-Snap和3D Slicer)
- 自然常数e的由来以及计算机为什么是二进制
- 16张SIM卡,8路5g多卡聚合路由器5g多卡汇聚路由器,多网融合,弱网通信
- vivos9桌面字体样式怎样修改
- Java学多久可以接项目_自学Java,多久可以找到工作?
- linux服务器网卡极限速率,linux下简单限制网卡速度
- vue中使用市区(地区)联动 复制三步完成