相关疑难解决方法(0)

给定R中的2D数字"高度图"矩阵,我如何找到所有局部最大值?

我有一个带有非负数值的R矩阵.矩阵实际上是2D高度图,我想找到该矩阵中的所有局部最大值.对于"平坦"峰值,其中相邻元素彼此相等(并且它们共同是局部最大值),只要在每个"平坦"区域内得到至少一个坐标,我不关心会发生什么.

有效地执行此操作是否有任何功能?显然,我可以手动编写循环来单独测试每个元素,但在R中执行此操作会非常慢.我需要为大约一百万个矩阵做这个,每个矩阵平均大约884个元素.

理想情况下,会有一个函数将矩阵作为输入并返回一个2列矩阵,其中第1列是行坐标,第2列是列坐标,矩阵中每个局部最大值有一行.

允许矩阵边缘的局部最大值.矩阵之外的区域可以被视为具有零高度.

要使用的可重现的示例矩阵:

set.seed(5)
msize <- 20 # Change this to whatever you like
x <- matrix(data=abs(rnorm(msize*2)), nrow=msize, ncol=msize)
Run Code Online (Sandbox Code Playgroud)

r max matrix

3
推荐指数
1
解决办法
3368
查看次数

标签 统计

matrix ×1

max ×1

r ×1