C#实现局部峰值查找,功能对应Matlab中的findpeaks.m(转)
相关算法的原理参考Ronny,地址:图像分析:投影曲线的波峰查找,这里感谢下原作者。
参照C++的代码实现,我用C#翻译了下,其实原理也很简单的,下面放相关实现代码:
private double[] oneDiff(double[] data)
{
double[] result = new double[data.Length - ];
for (int i = ; i < result.Length; i++)
{
result[i] = data[i + ] - data[i];
}
return result;
}
private int[] trendSign(double[] data)
{
int[] sign = new int[data.Length];
for (int i = ; i < sign.Length; i++)
{
if (data[i] > ) sign[i] =;
else if (data[i] == ) sign[i] = ;
else sign[i] = -;
} for (int i = sign.Length - ; i >= ; i--)
{
if (sign[i] == && i ==sign.Length - )
{
sign[i] = ;
}
else if (sign[i] == )
{
if (sign[i+] >= )
{
sign[i] = ;
}
else
{
sign[i] = -;
}
}
}
return sign;
}
private int[] getPeaksIndex(int[] diff)
{
List<int> data = new List<int>();
for (int i = ; i != diff.Length - ; i++)
{
if (diff[i+] - diff[i] == -)
{
data.Add(i + );
}
}
int[] result = new int[data.Count];
for (int i = ; i < result.Length; i++)
{
result[i] = data[i];
}
return result;//相当于原数组的下标
}
调用方法:
double[] data = {, , , , , , , , , , };
int[] index = getPeaksIndex(trendSign(oneDiff(Constant.data)));
返回的int[]数组内容是对应原数组中峰值对应的索引(从0开始)
C#实现局部峰值查找,功能对应Matlab中的findpeaks.m(转)的更多相关文章
- C#实现局部峰值查找,功能对应Matlab中的findpeaks.m
相关算法的原理参考Ronny,地址:图像分析:投影曲线的波峰查找,这里感谢下原作者. 参照C++的代码实现,我用C#翻译了下,其实原理也很简单的,下面放相关实现代码: private double[] ...
- matlab中help所有函数功能的英文翻译
doc funname 在帮助浏览器中打开帮助文档 help funname 在命令窗口打开帮助文档 helpbrowser 直接打开帮助浏览器 lookfor funname 搜索某个关键字相关函数 ...
- matlab中hold指令、figure指令及subplot指令的使用
一.hold指令使用 正常情况下,plot指令显示figure时,以前的数据丢失了.使用hold on指令后,此后添加的一系列plot曲线将叠加在前一个图上当使用hold off后,恢复为默认状况,p ...
- [LeetCode] Find Peak Element 求数组的局部峰值
A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ ...
- 在你的ASP.NET MVC中使用查找功能
在程序中,使用查找功能是少之不了.今天在ASP.NET环境下演示一回. 在cshtml视图中,有三个文本框,让用户输入关键词,然后点击最右连的“搜索”铵钮,如果有结果将显示于下面. Html: 表格放 ...
- matlab中subplot函数的功能
转载自http://wenku.baidu.com/link?url=UkbSbQd3cxpT7sFrDw7_BO8zJDCUvPKrmsrbITk-7n7fP8g0Vhvq3QTC0DrwwrXfa ...
- 用matlab查找txt文档中的关键字,并把关键字后面的数据存到起来用matlab处理
用matlab查找txt文档中的关键字,并把关键字后面的数据存到起来用matlab处理 我测了一组数据存到txt文件中,是个WIFI信号强度文档,里面有我们需要得到的数据,有没用的数据,想用matla ...
- JS实现项目查找功能
又是好久没有更新文章了,技术差,人又懒是重罪啊!! 在工作中每天都要查找目前正在接手的项目,而如果项目一多起来怎么办呢? 最近主管突然说要找一下以前的项目改一点BUG,然后我就找了半天才找到对应的文件 ...
- 【原创】Matlab中plot函数全功能解析
[原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...
随机推荐
- JAVA常用工具类异常处理
1异常的定义 异常就是与我们编译相违背在过程中出现的逻辑或忘记一些赋值等等 分为编译时错误和运行时错误 运行时异常 我们一般处理的时Exception异常: 异常处理 异常处理可以通过关键字try,c ...
- C 栈实现队列节点的管理
栈预先存储节点,队列的malloc/free均有栈模拟,从而保证不频繁的开辟/是否节点内存. #include "com_is_buf.h" #include "com_ ...
- Flask--SQLAlchemy--基本查询备忘
SQLAlchemy查询过滤器: 查询所有用户数据 User.query.all() 查询有多少个用户 User.query.count() 查询第1个用户 User.query.first() 查询 ...
- Python Pycharm 专题
http://www.themesmap.com/theme.html?t=time&page=3 一些好的主题地址 直接导入import settings就可以使用了
- 理解Linux系统负荷load average
理解Linux系统负荷 一.查看系统负荷 如果你的电脑很慢,你或许想查看一下,它的工作量是否太大了. 在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行).(另外,它们在 ...
- import 搜索路径
来源 http://www.runoob.com/python/python-mysql.html 搜索路径 当你导入一个模块,Python 解析器对模块位置的搜索顺序是: 1.当前目录 2.如果不在 ...
- debug protractor
HTAir:protractor-cucumber-typescript kbladewht$ node --inspect-brk=0.0.0.0:1229 node_modules/protrac ...
- java.lang.NoClassDefFoundError: org/apache/tomcat/util/res/StringManager
一个比较老的web项目, IDEA 导入后不能用, 出现了各种问题, 但是, 别人用eclipse 导入就不会有问题, 我折腾了半天, 还是各种问题, 真是郁闷了. 哎, 承认很难配置吧, ...
- Java中通过Class的反射来获取方法
本文转自:http://z3sm2012.iteye.com/blog/1933227 今天在程序中用到java反射机制时,遇到的问题记录一下:我当时遇到的问题是,我用反射getMethod()调用类 ...
- BerOS File Suggestion(字符串匹配map)
BerOS File Suggestion(stl-map应用) Polycarp is working on a new operating system called BerOS. He asks ...