matlab提取最大值如何提取数据的峰点或者局部最大值

查看: 20734|回复: 21|关注: 0
matlab图中如何提取多个峰值
<h1 style="color:# 麦片财富积分
新手, 积分 10, 距离下一级还需 40 积分
关注者: 1
请问在matlab中如何提取峰值,如下图:
QQ截图31.png (14.91 KB, 下载次数: 13)
14:51 上传
我需要循环提取峰值进行计算,每次用工具栏的data cursor很不方便,请问有没有什么命令可以直接写在命令里直接运行的,谢谢~
<h1 style="color:# 麦片财富积分
写个小代码,应该可以求解吧。看起来像是在曲线斜率正负交替的时候出现峰值。
<h1 style="color:# 麦片财富积分
关注者: 1
写个小代码,应该可以求解吧。看起来像是在曲线斜率正负交替的时候出现峰值。 ...
请问代码要怎么写呢
<h1 style="color:# 麦片财富积分
搜搜关于曲线取包络的
数据不多的话,遍历,设定max=min=data(1),从data(2)开始,比较data(2)与data(1)的大小,若data(2)&data(1),则max=data(2),再比较data(3)与data(2)的大小,若data(3)&data(2),说明数据还在上升区间,继续置换;若data(3)&data(2),说明数据开始下降data(2)就是该区间的峰值;令min=data(3),继续进行大小判断,不过紧接的就是看是不是data(4)&data(3)了
这是最简单直接的方法,就是效率不高,不知道能否解决你的问题
<h1 style="color:# 麦片财富积分
关注者: 1
自己编个m文件,下面是我自己用的,我的数据是离散的。
function B=jd(M)
double(M);double(B);
l=length(M);
for i=2:l-1
& & if (M(i)&M(i+1)&&M(i)&M(i-1))
& && &&&B=[B,M(i)];
MATLAB 基础讨论版块优秀回答者
<h1 style="color:#1 麦片财富积分
关注者: 9
有没有试过 findpeaks
MATLAB 基础讨论版块优秀回答者
<h1 style="color:# 麦片财富积分
findpeaks& &寻找极值
<h1 style="color:# 麦片财富积分
关注者: 1
findpeaks只能找到极大值
<h1 style="color:# 麦片财富积分
关注者: 1
本帖最后由 qingningleyun 于
11:10 编辑
x = 0:.1:4*
y = @(x) sin(x)./cos(x);
y0 = y(x);
yy1 = diff(y0);
yy1 = sign(yy1);
yy1 = diff(yy1);
f = find(yy1&0)+1; % 峰
g = find(yy1&0)+1; % 谷
plot(x,y0);
plot(x(f),y(x(f)),'ro');
plot(x(g),y(x(g)),'go');
<h1 style="color:# 麦片财富积分
关注者: 1
d:\00.bmp& &是多余的
站长推荐 /2
机器视觉和人工智能在医疗设备中的应用及实现
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区查看: 118538|回复: 16|关注: 0
Matlab如何找到一个数组中的最大值以及它所在的位置
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
请问一下,如何找到一个数组中最大值所处的位置呢?
有这个函数嘛?
[ 本帖最后由 ultrafrost 于
10:21 编辑 ]
<h1 style="color:#0 麦片财富积分
关注者: 10
a=[1 4 9 21 4 5 17];
[ma,I]=max(a)
<h1 style="color:# 麦片财富积分
谢谢楼上的兄弟。。。。。。。。
<h1 style="color:# 麦片财富积分
今天用到了O(∩_∩)O谢谢:loveliness:
<h1 style="color:# 麦片财富积分
2楼只解决了一维的问题,如果是数组呢?用max(max())?
论坛优秀回答者
<h1 style="color:#6 麦片财富积分
关注者: 357
xiaohuiluck 发表于
2楼只解决了一维的问题,如果是数组呢?用max(max())?
你说的是2维矩阵的形式吧,可以使用max(max())A=magic(3)
value=max(max(A))
[row col]=find(value==A)复制代码
<h1 style="color:# 麦片财富积分
yinhefeng 发表于
你说的是2维矩阵的形式吧,可以使用max(max())
嗯,谢谢,:)
论坛优秀回答者
<h1 style="color:#6 麦片财富积分
关注者: 357
xiaohuiluck 发表于
嗯,谢谢,
不用客气,共同学习~
<h1 style="color:# 麦片财富积分
如果数组中最值有多个呢?求高手解答,不胜感谢
<h1 style="color:# 麦片财富积分
真心很方便的一个函数。
站长推荐 /2
机器视觉和人工智能在医疗设备中的应用及实现
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区matlab 怎么提取最大值附近的一段数据? - 知乎2被浏览278分享邀请回答0添加评论分享收藏感谢收起}

我要回帖

更多关于 matlab 矩阵最大值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信