[plain] view plain copy
  1. clc; close all; clear;
  2. % 节点信息
  3. data=[105.03 99.18 84.965 72.445 68.994 77.265...
  4. 91.052 100.61 98.215 86.363 74.439 71.625...
  5. 80.061 92.18 97.823 91.483 80.241 73.616...
  6. 78.547 89.084 94.924 89.689 79.898 75.485...
  7. 81.544 89.485 90.578 83.712 77.401 80.18...
  8. 86.904 88.721 83.468 78.971 81.983 86.25...
  9. 85.224 80.901 80.808 84.488];
  10. % 微分变号信息
  11. c=findpeaks(data);
  12. IndMin=find(diff(sign(diff(data)))>0)+1;   %获得局部最小值的位置
  13. IndMax=find(diff(sign(diff(data)))<0)+1;   %获得局部最大值的位置
  14. figure; hold on; box on;
  15. plot(1:length(data),data);
  16. plot(IndMin,data(IndMin),'r^')
  17. plot(IndMax,data(IndMax),'k*')
  18. legend('曲线','波谷点','波峰点')
  19. title('计算离散节点的波峰波谷信息', 'FontWeight', 'Bold');

初始化一段数据,寻找波峰波谷数据如下:

求极值的具体语句:

极值:
        data是你的数据,
        find(diff(sign(diff(data)))==-2)+1
        找到极大值的位置

find(diff(sign(diff(data)))==2)+1
        找到极小值的位置

data(find(diff(sign(diff(data)))==-2)+1)和
        data(find(diff(sign(diff(data)))==2)+1)
        返回的是极大值和极小值

要想diff(sign(diff))出现-2,只有是sign的结果为-1,1排列的时候,-1代表,前一次的diff运算前面的数值比后面大,1代表,后一次diff运算后面的数值比前面大,因而,x-a,x,x+b,a,b均为正数,则x为极小值。

同理判断极大值。

find查找到极值的索引后还要+1,是因为,差分运算(diff)后的数据的长度比原始数据少1,见help。

%方法一
x=0:0.01:20;
y=2*sin(x/2)+cos(2*x)/2;
% indmax=find(diff(sign(diff(y)))<0)+1;%极大值点
% indmin=find(diff(sign(diff(y)))>0)+1;%极小值点
ind=find(diff(sign(diff(y)))~=0)+1;%极值点
plot(x,y,x(ind),y(ind),'ro')

%方法二
x=0:0.01:20;
y=2*sin(x/2)+cos(2*x)/2;
indmax=intersect(find(diff(y)>0)+1,find(diff(y)<0));%极大值点
indmin=intersect(find(diff(y)<0)+1,find(diff(y)>0));%极小值点
plot(x,y,x(indmax),y(indmax),'ro',x(indmin),y(indmin),'go')

%方法三
x=0:0.01:20;
y=2*sin(x/2)+cos(2*x)/2;
yf=y(2:end-1)-y(1:end-2); %前向差分
yb=y(2:end-1)-y(3:end);   %后向差分
I=find(yf.*yb>=0)+1;      %寻找极值点(不考虑首尾两点)
plot(x,y,'b',x(I),y(I),'r*');

基于matlab的简单的寻找波峰波谷处理方法相关推荐

  1. PyQt5_寻找波峰波谷并可视化

    在K线图分析中经常需要查看波峰与波谷的情况,鉴别是否后续高点是否高于或低于前一个高点,后续低点是否高于或低于前一个低点:另一种情况是寻找曲线形态,诸如头肩顶(底).双重顶(底)等.在K线图中直接查找会 ...

  2. 基于MATLAB的简单手势识别

    匆匆在看完了MOOC的<数字图像处理>,为了巩固所学,做了一个简单的手势识别(只能识别手势1.2.3)! 0.安装硬件支持包软硬件安装 0.1.MATLAB R2021b安装 软件包下载地 ...

  3. matlab fdatool陷波器,基于MATLAB的简单50Hz数字陷波器.doc

    基于MATLAB的简单50Hz数字陷波器 摘要:陷波器是一个二阶滤波器,它的幅度特性在ω=±ω0处为零,在其他频率上接近常数,是一个滤波单频干扰的滤波器.一般仪器都用50Hz的交流电源供电,因而信号中 ...

  4. FLAC3D可视化后处理matlab,一种基于Matlab的由Midas导入Flac3D的模型识别方法与流程...

    本发明涉及岩土工程的仿真模拟研究领域,具体涉及一种基于Matlab的由Midas导入Flac3D的模型识别方法. 背景技术: 随着我国近几年经济的快速发展和基础设施等的大力投资,涉及复杂地质环境下的岩 ...

  5. MATLAB在温室中的应用,基于MATLAB的日光温室内气温的图形显示方法与流程

    本发明涉及日光温室温度检测 技术领域: ,具体涉及一种基于MATLAB的日光温室内气温的图形显示方法. 背景技术: :日光温室极大丰富了人们的菜篮子,丰富了人们的生活,各地日光温室的墙体材料不尽相同, ...

  6. matlab手写字母识别,一种基于MATLAB的手写字母的神经网络识别方法

    文章编号 :1009 - 671X(2001) 10 - 0028 - 03 一种基于 MATLAB 的手写字母的神经网络识别方法 邓铭辉 ,孙 枫 ,张 志(哈尔滨工程大学 自动化学院 ,黑龙江 哈 ...

  7. matlab 浮雕,基于MATLAB根据图片快速制作陶瓷浮雕的方法与流程

    本发明属于陶瓷制作技术领域,尤其涉及基于MATLAB根据图片快速制作陶瓷浮雕的方法. 背景技术: 印模成形是传统的陶艺成形工艺之一,它具有制作简便.省时省力.对制作者没有过多的技艺要求的优点,因而直到 ...

  8. Matlab测折射率,基于MATLAB辅助测量透明介质折射率的新方法

    - 44 - 基于 MATLAB 辅助测量透明介质折射率的新方法 肖伦刚 余 东 向文丽 (楚雄师范学院物理与电子科学学院,云南 楚雄 675000) [摘 要]利用迈克尔逊干涉仪和自制的旋转卡尺组装 ...

  9. 电动车动力性计算MATLAB程序,一种基于MATLAB的电动汽车经济性计算的模拟仿真方法与流程...

    技术领域 本发明属于电动汽车经济性计算的模拟仿真方法,具体涉及一种基于MATLAB的电动汽车经济性计算的模拟仿真方法. 背景技术: 电动汽车经济性(续驶里程)计算的传统方法分为两种,其一为使用exce ...

最新文章

  1. C 语言编程 — 输入/输出与文件操作
  2. Java Review - 使用Event Bus实现目录变化的监控
  3. 指哪分哪:交互式分割近期发展
  4. docker镜像制作(二)——构建企业镜像LAMP+BBS
  5. 双稳态继电器工作原理图_三招带你分清继电器与接触器
  6. django-debug-toolbar 工具
  7. 矿区无人机影像地物提取(语义分割)
  8. C#:重启后,AssemblyInfo中AssemblyTitle的描述内容显示正常.........
  9. 【运动学】基于matlab速度+加速度数值计算(匀速圆周运动) 【含Matlab源码 975期】
  10. html5 调用unity,Unity调用UniWebView打开H5界面脚本
  11. Android 刷机脚本工具箱
  12. php钱汇算成美元,PHP to USD
  13. 从空运物流到无人机物流,圆通将战火烧到了时效件
  14. 增强 扫描王 源码_camscanner(扫描全能王)功能解析与复现 - 页面增强
  15. linux获取pc指针地址,为什么pc可以看成使程序存储器的地址指针
  16. 偶数c语言中怎么写,偶数怎么写
  17. 将真分数分解为埃及分数
  18. 预后建模绕不开的lasso cox回归
  19. 总结JavaScript的数据类型转换
  20. Linux CentOS(常用命令)

热门文章

  1. abaqus 6.14有限元分析高级培训视频教程-接触 热力 疲劳分析
  2. python傅里叶变换,模拟光孤子脉冲传输
  3. 可以在家庭DVD影碟机上播放的HDVD光盘简易制作步骤
  4. 2015阿里安全峰会
  5. 运维java项目的技巧 (war包、jar包、docker环境)
  6. modelsim 仿真中出现Modele ~~~ is not defined
  7. Matlab 如何输入矩阵
  8. 白盒测试流程图及测试用例设计(软件测试实验报告)
  9. 通达信l2接口到底是什么原理?
  10. MIP影视模板泛站程序万能模板