声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2180|回复: 7

[综合讨论] 如何求离散数列的局部最值

[复制链接]
发表于 2007-10-16 16:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
上一个问题自己已经搞出来了,谢谢大家!

如果有一个数组A=[23,45,32,2,3,5,,75,45,665,343。。。。。。。。。。]
我用plot画出了连续的线
现在想求出数组局部的最大值和最小值,应该用什么思路呢,搜了一下,没有发现有类似的思路呢:@(

[ 本帖最后由 eight 于 2007-10-16 17:27 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-10-16 16:46 | 显示全部楼层
貌似精华帖子里就有一个例子,论坛里肯定讨论过请你再找找。用的好像是差分的求解办法,效果很好
发表于 2007-10-16 16:48 | 显示全部楼层
局部最值?你的意思是求极值吧!a(find(a(2:1:end-1)>=a(1:1:end-2)&a(2:1:end-1)>=a(3:1:end)+1)),大致思路。
发表于 2007-10-16 17:27 | 显示全部楼层
这个问题我至少回答过两次,自己搜索一下版面,其中一个方法楼上已经给出提示,我的方法也给出具体代码:就是一个 extr 函数,非 matlab 自带的函数

[ 本帖最后由 ChaChing 于 2009-12-7 22:00 编辑 ]
发表于 2007-10-16 20:21 | 显示全部楼层

回复 #4 eight 的帖子

我记得看过,但是我搜索不到了。eight,你最好给出有效的关键词,不然找不到。
发表于 2007-10-16 20:34 | 显示全部楼层

我真是服了, 搜索个帖子还得找版主。求什么就用什么关键词搜:极值点

第一个就可以看到这个帖子

http://www.chinavib.com/forum/viewthread.php?tid=46984

[ 本帖最后由 花如月 于 2007-10-16 20:35 编辑 ]
发表于 2007-10-16 20:49 | 显示全部楼层

回复 #6 花如月 的帖子

多谢。diff学到了呀。顺便创作个:
求a(i)>a(i-1)&a(i)>a(i+1)的很好弄:

a(find(diff(sign(diff(a)))<0)+1)

但如果求a(i)>=a(i-1)&a(i)>=a(i+1),我看非要for k=1:length(a)循环下不可.

[ 本帖最后由 donkeyxu 于 2007-10-16 20:52 编辑 ]
发表于 2007-10-16 23:24 | 显示全部楼层
原帖由 donkeyxu 于 2007-10-16 20:49 发表
a(find(diff(sign(diff(a)))=a(i-1)&a(i)>=a(i+1),我看非要for k=1:length(a)循环下不可.


请认真阅读我给出的 extr 函数。需要补充说明一点,这个函数不是我写的,但是基本上能处理所有的极值点情况
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-12 03:40 , Processed in 0.077184 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表