相关算法的原理参考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(转)的更多相关文章

  1. C#实现局部峰值查找,功能对应Matlab中的findpeaks.m

    相关算法的原理参考Ronny,地址:图像分析:投影曲线的波峰查找,这里感谢下原作者. 参照C++的代码实现,我用C#翻译了下,其实原理也很简单的,下面放相关实现代码: private double[] ...

  2. matlab中help所有函数功能的英文翻译

    doc funname 在帮助浏览器中打开帮助文档 help funname 在命令窗口打开帮助文档 helpbrowser 直接打开帮助浏览器 lookfor funname 搜索某个关键字相关函数 ...

  3. matlab中hold指令、figure指令及subplot指令的使用

    一.hold指令使用 正常情况下,plot指令显示figure时,以前的数据丢失了.使用hold on指令后,此后添加的一系列plot曲线将叠加在前一个图上当使用hold off后,恢复为默认状况,p ...

  4. [LeetCode] Find Peak Element 求数组的局部峰值

    A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ ...

  5. 在你的ASP.NET MVC中使用查找功能

    在程序中,使用查找功能是少之不了.今天在ASP.NET环境下演示一回. 在cshtml视图中,有三个文本框,让用户输入关键词,然后点击最右连的“搜索”铵钮,如果有结果将显示于下面. Html: 表格放 ...

  6. matlab中subplot函数的功能

    转载自http://wenku.baidu.com/link?url=UkbSbQd3cxpT7sFrDw7_BO8zJDCUvPKrmsrbITk-7n7fP8g0Vhvq3QTC0DrwwrXfa ...

  7. 用matlab查找txt文档中的关键字,并把关键字后面的数据存到起来用matlab处理

    用matlab查找txt文档中的关键字,并把关键字后面的数据存到起来用matlab处理 我测了一组数据存到txt文件中,是个WIFI信号强度文档,里面有我们需要得到的数据,有没用的数据,想用matla ...

  8. JS实现项目查找功能

    又是好久没有更新文章了,技术差,人又懒是重罪啊!! 在工作中每天都要查找目前正在接手的项目,而如果项目一多起来怎么办呢? 最近主管突然说要找一下以前的项目改一点BUG,然后我就找了半天才找到对应的文件 ...

  9. 【原创】Matlab中plot函数全功能解析

    [原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...

随机推荐

  1. 1T硬盘获3T体验 彻底解决NVR存储时间短的问题

    随着高清技术的进步,现在300W和400W的IPC越来越普及,但同时带来了更多的成本及存储便利问题.“硬盘存了7天就满了”.“同样大小的硬盘,存储时间越来越短”......为啥你的NVR不能存更长的时 ...

  2. Linux(CentOS-7) 下载 解压 安装 redis 操作的一些基本命令

    使用xshell 连接到虚拟机,并且创建 一个redis目录:创建文件命令:mkdir 文件名ls:查看当前文件里面的所有文件 使用xftp 将下载的linux版本 reids上传动新建的redis目 ...

  3. 涨姿势:Java 异常?尝试自定义异常

    1.异常 在Java中,每个异常都是一个名叫Throwable的类的一个实例 我们常用的try-catch-finally语句 try 尝试去执行try语句块里的内容,如果有异常,将其捕获,并执行ca ...

  4. 【待考察】Appium使用技巧,助你快速入门移动端自动化!

    Appium使用技巧,助你快速入门移动端自动化! 原创: 柠檬班superman 柠檬班软件测试 1月4日 关注并置顶[柠檬班]的小哥哥小姐姐 “猪”年行大运 说说最近研究移动端的自动化 移动端的自动 ...

  5. python3 json.dump乱码问题

    json.dumps(obj, ensure_ascii=False) ensure_ascii = True,会忽略掉non-ascii字符

  6. 三. html&JavaScript&ajax 部 分

    1. 判 断 第 二 个 日 期 比 第 一 个 日 期 大 如何用脚本判断用户输入的的字符串是下面的时间格式2004-11-21必须要保证用户 的输入是此格式,并且是时间,比如说月份不大于12等等, ...

  7. java Integer类以及拆箱和装箱

    package com.ilaw.boson.controller; public class Demo { public static void main(String[] args) { Inte ...

  8. 深度学习原理与框架-Tensorboard可视化展示(代码) 1.tf.reuse_default_graph(进行结构图的重置) 2.tf.summary.FileWriter(writer实例化) 3. write.add_graph(graph的写入) 4. tf.summary.merge_all(将summary进行合并) 5.write.add_summary(将所有summary)

    1. tf.reuse_default_graph() # 对graph结构图进行清除和重置操作 2.tf.summary.FileWriter(path)构造writer实例化,以便进行后续的gra ...

  9. win10 KMS命令激活步骤<转>

    三.win10 KMS命令激活步骤如下: 1.右键点击开始图标,弹出这个菜单,选择[windows powershell(管理员)],或者命令提示符管理员: 2.打开命令窗口,复制这个命令slmgr ...

  10. Oracle,cast函数

    cast(要转换的值 AS 转换的类型): 问题:'            ' as FSubBillNo 若用此法 oracle 默认字段类型为char型 且字段长度度为输入空格的长度,会导致字符串 ...