声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1199|回复: 7

[综合讨论] 怎么画出这些峰值的曲线

[复制链接]
发表于 2008-3-19 06:09 | 显示全部楼层 |阅读模式

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

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

x
D2.jpg
原图,Matcont得到的非线性解随时间的变化,现在关心的是振幅的变化规律,现得到下面的曲线。数据是一维的,matcont也没有提供极值显示。。。请问在matlab中怎么实现?找个好久。。。
d21.jpg

[ 本帖最后由 eight 于 2008-3-19 13:26 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-3-19 08:46 | 显示全部楼层
楼主起得好早啊……
可惜这个问题我不会
希望你能早日解决 呵呵
发表于 2008-3-19 09:59 | 显示全部楼层
diff(sign(diff())),对应1或者-1的元素即为上下包络线,注意下标的对应关系。

[ 本帖最后由 w89986581 于 2008-3-19 10:02 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2008-3-19 10:11 | 显示全部楼层
哈哈,我在的地方时差12
感谢,研究一下,等画好了上图。

[ 本帖最后由 ChaChing 于 2010-7-11 11:21 编辑 ]
 楼主| 发表于 2008-3-19 11:38 | 显示全部楼层
成了,哈哈,感谢领导!
untitled.jpg
附上部分代码:
index1=find(diff(sign(diff(x(1,:))))==-2)+1;
index2=find(diff(sign(diff(x(1,:))))==2)+1;
plot(t(index1),x(1,index1),t(index2),x(1,index2),t,x(1,:))

再附上,根据领导的提示查到的资料:

5)在Matlab中如何求最值点?如何求一维数组的极值?
:#FangQ(Qianqian.Fang@Dartmouth.Edu),2002/6/18, SMTH/MathTools#
最值:
一维或多维数组最值用max(data()
如果想返回最值所在的位置,用[Y,I]=max(data)
:#FangQ(Qianqian.Fang@Dartmouth.Edu), 2001/4/21,UESTC/Math#
极值:
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)
返回的是极大值和极小值

[ 本帖最后由 xiaobenxiong 于 2008-3-19 11:51 编辑 ]

评分

1

查看全部评分

发表于 2008-3-19 12:13 | 显示全部楼层
恭喜你会抢答了:victory: :lol

[ 本帖最后由 ChaChing 于 2010-7-11 11:24 编辑 ]
发表于 2008-3-19 16:53 | 显示全部楼层
提一个小建议,在origin中画图比较简单,快捷
 楼主| 发表于 2008-3-19 23:17 | 显示全部楼层

回复 9楼 的帖子

matlab的数据倒到origin里好像有点麻烦。。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-11 19:03 , Processed in 0.081458 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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