首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特定落点算法- Matlab

特定落点算法- Matlab
EN

Stack Overflow用户
提问于 2016-07-27 22:58:45
回答 1查看 23关注 0票数 0

我已经开发了一个脚本,它基本上利用了一堆硬编码函数来减少我的数据,并以data_#min的形式绘制不同变量的曲线图,如图所示。变量是这样命名的,然后根据试验持续的分钟数进行更改。

我想要做的是识别出这些图的落点,我用箭头指向这些点。例如,点之间的变化很大,从第50,018行到第50,019行的变化约为-68%。这些丢弃似乎都发生在100,000行列号6(由蓝色绘制线标识)的行(49000:51000)内,发生在数据10列x 1000行阵列内。它们设置在变量中,例如名为data_10min的变量。

所以我想找到的是显示在

代码语言:javascript
复制
    data_10MIN(49000:51000,6) 

data_10min是变量,然后显示如何绘制图形的参数。

这将是很酷的东西硬编码的功能,自动化和只是很容易找到点使用硬代码,唯一的问题是,每个试验左右移动,他们不一致,所以不同的试验在不同的时间(行数)下降。

代码语言:javascript
复制
    findpeaks(data) 

此函数提供本地最小最大类型的分析,但我不认为它真的适用于我的特定场景。如果有人能帮我解决这个问题,并试着想出第一步,这真的会对我有帮助。谢谢!

Picture of data_10Min drop point

EN

回答 1

Stack Overflow用户

发布于 2016-07-28 00:57:16

如果我正确理解了您的描述,那么您对数据的curvature的最大值感兴趣。

为简单起见,我假设您的数据是等距离的,并且y由x参数化。

代码语言:javascript
复制
x=data_10MIN(49000:51000,1);
y=data_10MIN(49000:51000,6);

dx = diff(x);
dydx = diff(y)./dx;
ddyddx = diff(dydx)./dx(1:end-1);
kappa = ddyddx./(1+dydx(1:end-1).^2).^1.5;
[~,locs] = findpeaks(kappa);
locs = locs+1; % index shifted because of diff

plot(x,y,'.-')
plot(x(locs),y(locs),'ro')

findpeaks(kappa)将为您提供曲率向量上对应于图中水滴的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38616618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档