如何在一个二维数组中寻找出所有的极大值点,并找到相应的坐标呢??matlab实现 ,

例如数组A=randn(100,100),求出A的所有极大值,不是最大值。并且确定坐标位置。

第1个回答  推荐于2016-09-14
A=rand(100,100)
find(diff(sign(diff(A)))==-2)+1 %极大值的位置
A(find(diff(sign(diff(A)))==-2)+1) %极大值

矩阵是按列来编号,下标的话可以用rem函数来分解出来。
a=rem(find(diff(sign(diff(A)))==-2)+1,100) %求出来的行,如果出现 0的话,代表的是6;
b=((find(diff(sign(diff(A)))==-2)+1)-a)/100+1 %求出来的列追问

我试了一个数据中只有一个极大值,却出来很多个点呢。

追答

极大点有好多的的,怎么会只有一个呢

追问

我的意思是为了验证,选择了一个二维数组,例如圆形的,那么极大值只有一个就是中心点,但却仍有很多点零散分部。这样吧,你能帮忙告诉我diff的用法吗?sign在这里的作用。

本回答被提问者采纳
相似回答