C#中读取.mat文件,然后实现寻峰算法
理论可以看我下面推荐的博客,我直接上代码
private double[] oneDiff(double[] data)//一阶差分{double[] result = new double[data.Length - 1];for (int i = 0; i < result.Length; i++){result[i] = data[i + 1] - data[i];}return result;}private int[] trendSign(double[] data){int[] sign = new int[data.Length];for (int i = 0; i < sign.Length; i++){if (data[i] > 0)sign[i] = 1;else if (data[i] == 0)sign[i] = 0;elsesign[i] = -1;}for (int i = sign.Length - 1; i >= 0; i--){if (sign[i] == 0 && i == sign.Length - 1){sign[i] = 1;}else if (sign[i] == 0){if (sign[i + 1] >= 0){sign[i] = 1;}else{sign[i] = -1;}}}return sign;}private int[] getPeaksIndex(int[] diff){List<int> data = new List<int>();for (int i = 0; i != diff.Length - 1; i++){if (diff[i + 1] - diff[i] == -2){data.Add(i + 1);}}int[] result = new int[data.Count];for (int i = 0; i < result.Length; i++){result[i] = data[i];}return result;//相当于原数组的下标} private void Form1_Load(object sender, EventArgs e){Matrix<double> m = MatlabReader.Read<double>(@"E:\RamanSpectrum_graduation\PeakSearching\PeakSearching\bin\Debug\yuanshuju.mat");//读取MATLAB中的数据,Array testArray = m.ToArray();double[] data = new double[testArray.Length];int j = 0;foreach(double GG in testArray){data[j] = GG;j++;}int[] index = getPeaksIndex(trendSign(oneDiff(data)));double[] data2 = new double[index.Length];for(int i=0;i< index.Length;i++){data2[i] = data[index[i]];//峰值点放在这里}}
测试数据可以在这里下载https://download.csdn.net/download/weixin_42974146/12503942
最后实现的效果可以看博客在zedGraph曲线上显示数据,显示波峰,寻峰算法的实现
上述算法思想转载至波峰波谷算法,感谢博主分享,同时参考了其它博主的分享
参考博客C# 使用Math.NET读取mat格式文件内容
参考博客C# 实现寻峰算法的简单优化(包含边峰,最小峰值,峰距)
C#中读取.mat文件,然后实现寻峰算法相关推荐
- matlab如何读取.mat文件,matlab中读取mat文件
Matlab 训练好的 BP 神经网络如何保存和读取方法 附实例说 (明)看到论坛里很多朋友都在提问如何存储和调用已经训练好的神经网络. 本人前几天也遇到了这样的问题,...... 2. 2 HDF ...
- golang通过RSA算法生成token,go从配置文件中注入密钥文件,go从文件中读取密钥文件,go RSA算法下token生成与解析;go java token共用
RSA算法 token生成与解析 本文演示两种方式,一种是把密钥文件放在配置文件中,一种是把密钥文件本身放入项目或者容器中. 下面两种的区别在于私钥公钥的初始化, init方法,需要哪种取哪种. 通过 ...
- python如何打开mat文件_python读取mat文件
一.mat文件 mat数据格式是Matlab的数据存储的标准格式.在Matlab中主要使用load()函数导入一个mat文件,使用save()函数保存一个mat文件.对于文件 load('data.m ...
- python打开mat图像文件格式_如何读取mat文件 python
展开全部 一.mat文件 mat数据格32313133353236313431303231363533e58685e5aeb931333363393664式是Matlab的数据存储的标准格式.在Mat ...
- python读取 .mat 文件(matlab文件)
python读取 .mat 文件(matlab文件)和 scipy库包的使用(4-20181224) 一.python调勇scipy库读取.mat文件 1.使用例子1 2. 使用例子2 二.scipy ...
- python 笔记:读取mat文件
1 mat文件介绍 mat文件是matlab的数据存储的标准格式. mat文件是标准的二进制文件,还可以ASCII码形式保存和加载,在MATLAB中打开显示类似于单行EXCEL表格. --from 百 ...
- QT Creator使用matlab库文件读取.mat文件数据
QT Creator使用matlab库文件读取.mat文件数据 一.环境配置 二.关于编程介绍 三.关于使用函数的介绍 1:关于假设数据类型介绍 2:关于使用函数介绍 一.环境配置 第一步先点开我的电 ...
- C | 使用C语言读取.mat文件
目录 前言 一.使用matio读取.mat文件 1. matio_user_guide章节设置 2. 下载地址 二.利用库文件在其他工程实现读取.mat 1.导入库和头文件 2. 打开mat文件 3. ...
- python使用h5py读取mat文件数据
目录 一.matlab生成.mat文件 二.读取mat文件数据 一.matlab生成.mat文件 a=[]; List =dir('C:\Users\Administrator\Desktop\cod ...
最新文章
- Day 02 你最爱的交通方式
- 再学 GDI+[68]: 路径画刷(8) - SetBlendTriangularShaped、SetBlendBellShape
- Android 用户信息管理程序【SQLite数据库、多选框、单选按钮】
- c 语言 可变参数前要加形参,C/C++中可变参数的用法详细解析
- Linux6.5图形模式安装,CentOS 6.5弹性云服务器如何安装图形化界面
- 实用小技巧(一):UIScrollView中上下左右滚动方向的判断
- Spring基于状态机squirrel-foundation简单使用
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 4丨游戏玩法分析 I【难度简单】
- 苹果手机咋截屏_才知道,苹果手机轻点2下就能截屏,还支持长截图厉害了
- UVA960 Gaussian Primes【数学】
- php 警告和错误屏蔽
- [转载] python中*args 和 **kwargs区别
- cmd 获取ftp没反应_python笔记13-执行cmd指令
- 编译原理考试知识点总结
- 给群联PS3111/inic6081量产工具添加闪存颗粒支持
- 幸运大转盘抽奖逻辑实现
- 读懂这三本书,才算真懂大数据!(套装共3册) (如何读懂大数据主题系列) - 电子书下载(高清版PDF格式+EPUB格式)...
- 实验1前篇——BIOS编程空间
- 全球与中国光学光源市场现状及未来发展趋势
- [NSSCTF][SCTF 2021]WEB复现
热门文章
- Android 监听软键盘的高度并解决其覆盖输入框的问题
- 她是好莱坞巨星,Wi-Fi之母!没有她,可能我们刷不了手机!
- Django-登陆验证
- IDEA添加快捷键(快捷放大、缩小字体)
- Ubuntu使用Remastersys封装制作系统ISO镜像
- 莱斯特大学计算机科学,莱斯特大学计算机科学本科.pdf
- 设置环境变量永久生效和临时生效 export PS1
- 来了!8M/S+速度,Pdown复活!
- 2019山西职业技能大赛计算机,山西警官职业学院代表队在2019年山西省职业院校技能大赛高职学生组“云计算技术与应用”比赛项目中再创佳绩...
- 《我看不懂但我大受震撼》李安表情包