如何用matlab找出一组离散数据中的峰值
如何用matlab找出一组离散数据中的峰值
对于一组离散数据,我们经常需要找出其中的峰值,如下一组离散数据:
x = [1 2 3 4 3 2 1 5 8 9 17 12 11 5 3 2 1 7 1]
为了更直观显示,画出数组x的图。可以看出共有三个峰值,有两个问题:
1、如何找出所有的峰值
这个比较简单,使用matlab中的函数
[num loc] = findpeaks(x)
便可以轻松搞定,其中num找出的所有峰值,loc为峰值对应的位置。
2、如何找出峰值里面最大的两个呢
我们已经找出的所有峰值点是一个二维数组,一维是峰值数据,另一维是峰值数据对应的位置。因此我们主要对这个二维数据进行操作。
简而言之,便是从找出的峰值数组中使用max函数找出第一组最大的峰值及其位置,这样便完成了最大的峰值寻找,包括其数据和位置。
然后在所有峰值点组成的二维数组中,将最大峰值覆盖为一个很小的数值,使得不影响对第二大峰值的寻找。
接下来,再次使用max函数在剩下的峰值中寻找最大值,找出第二大峰值数据,及其对应的位置。
总的代码如下
clear all
close all
clc
%%
x = [1 2 3 4 3 2 1 5 8 9 17 12 11 5 3 2 1 7 1] %需要找出两个最大峰值的数据,数据中共有三个峰值
plot(x)
[num loc] = findpeaks(x) %寻找出全部峰值
[a_num,a_loc] = max(num) %在全部峰值里面找出最大的一个a_num,包含其位置a_loc
location_in_x_1 = loc(a_loc) %最大的峰值对应的位置
num(a_loc) = 0 %在找出的全部峰值数组中,将最大的峰值赋值为0
num_del_max = num
[b_num,b_loc] = max(num) %找剩下的峰值中的最大值
location_in_x_2 = loc(b_loc) %找第二大的峰值对应的位置
仿真结果
x =
1 2 3 4 3 2 1 5 8 9 17 12 11 5 3 2 1 7 1
num =
4 17 7
loc =
4 11 18
a_num =
17
a_loc =
2
location_in_x_1 =
11
num =
4 0 7
num_del_max =
4 0 7
b_num =
7
b_loc =
3
location_in_x_2 =
18
拿着代码跑一下,你就什么都明白啦!
再送你一套写论文神器,让你 不再因为敲公式而烦恼!
神器
如何用matlab找出一组离散数据中的峰值相关推荐
- Excel表格中如何找出并替换数据中某一固定范围内的值(包括空值)
Excel表格中如何找出并替换数据中某一固定范围内的值(包括空值) 一.问题介绍 二.方法介绍 1.选中数据 2.按住Ctrl+H键,调出替换窗口 3.输入 " * ",并点击查找 ...
- Excel 中如何找出两列数据中不重复的记录
现在有两列数据,要在 A 列中找出 B 列中没有的记录,在 B 列中找出 A 列中没有的记录.现在和大家分享一下这个方法. 我们先用一个简单的例子看一下.现在有两列数据,可以是分别在不同的数据单(sh ...
- MATLAB找出二维数组中最接近某个数的n个数
clear;clc; % 找出数组A中最接近b的n个数,一维二维通用 A=round(100*rand(10)); % 要找的数组 AA=A(:); b=20; % 要接近的数 n=20; % 要找的 ...
- matlab找出二维矩阵中最大值的位置或者最小值的位置
matlab寻找最大值或者最小值是通过max和min命令 对应二维矩阵寻找最大元素就是max(max(A)),注意二维矩阵要写两个max 找对应位置用find函数 举个例子: >> A=[ ...
- 【正则表达式测试工具】使用正则表达式快速找出两列数据中不同的行
例如像下面的这样的一堆海量数据(已省略部分),可能有几千组,在不编程的情况下如何快速找到不同的行?可能excel有办法,但是处理起来应该没我这样方便的. b_start b_end 100790 10 ...
- Excel中如何找出两列数据中相同的数据,并且进行同行显示
使用VLOOKUP方法即可. =VLOOKUP(A2,Sheet1!B:C,1,0)的含义是: 在sheet1工作表的B:C区域的首列中查找等于a2的值,找到后,返回该区域的同行的值.最后的参数0表示 ...
- 如何用Python找出英语和汉语中特定词性的单词
在绘制词云图时,我们有时需要找到特定词性的单词,便云图显示更加精准,本文通过jieba(结巴)库中的posseg和nltk中pos_tag分别对汉英两种字符进行分词.标准,再利用列表表达式进行特定词性 ...
- 用matlab处理表格,matlab删除excel表格数据-如何用matlab处理多个excel表格中的数据...
如何用matlab处理多个excel表格中的数据 biao='D:\Program Files\matlab\bin\filename.xls'; A1=xlsread (biao,'Sheet1', ...
- matlab 中 t=0:t:(n-1)t;k=0:n-1,如何用matlab画出单位脉响应h(n)=sin(n
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:如何用matlab画出单位脉响应h(n)=sin(n回答:n=1:50;%可根据需求调整范围 h(n)=sin(n-10)/(n-1 ...
最新文章
- Python的库和资源
- 关键字提取_SEO怎么做?从排名和关键字优化入手
- python读取指定字节长度的文本
- AIX 下磁盘 I/O 性能分析
- 前端知识点总结---面试专用
- 单调栈 leetcode整理(一)
- 2019胡润女企业家榜公布:碧桂园杨惠妍继续领跑
- mysql 性能 索引怎么用_MySQL索引使用方法和性能優化
- 安全服务,从“被动应对”到“主动防范”
- Hive窗口函数经典案例(保姆级案例)
- PowerDesigner 逆向工程 Could not Initialize JavaVM!
- 计算机硬盘常用分区工具,三款好用的磁盘分区工具推荐
- hash函数(哈希表)
- 解决matlab2019b中文乱码问题
- 遗传算法(二 )——通用框架
- 电镀面积计算机公式,教你正确的计算电镀中施镀面积方法。
- LiveZilla 详细 配置 设置 (二) 安装 LiveZilla
- iDB-数据库自动化运维平台
- java delight 咖啡是什么意思_各种咖啡的含义是什么?
- 计算机硬件——显示器原理
热门文章
- 视频涂鸦怎么弄?视频涂鸦用什么软件?
- 【SA8295P 源码分析】14 - Passthrough配置文件 /mnt/vm/images/linux-la.config 内容分析
- Ubuntu18.04安装docker (阿里云镜像)
- ExtJS 动态设置Grid列是否可编辑
- redis分布式缓存应用—五大数据类型:key/String/Hash/List/Set/Zset,配置文件redis.conf解析
- pythonforandroid下载中文_通过python-for-android打包apk-Go语言中文社区
- 程序人生 - 猫吃鸡胸肉的好处?
- 杰里之播放 flash 音乐 bin 文件的制作方法篇
- 【MAXScript】3DMax批量修改贴图名及模型名
- JS控制 textarea多行文本框HTML标签根据内容自适应高度