在Matlab中,我有矩阵,在我的代码的前一个阶段,选择了一个特定的元素。从矩阵的这一点开始,我想找到一个最大值,不仅仅是给定半径的所有周围邻居之间的最大值,而是给定方向角的最大值。让我用一个例子来解释一下:
这是矩阵 A:
一个=
0 1 1 1 0 0 9 1 0
0 2 2 4 3 2 8 1 0
0 2 2 3 3 2 2 1 0
0 1 1 3 2 2 2 1 0
0 8 2 3 3 2 7 2 1
0 1 1 2 3 2 3 2 1
第一阶段选择的元素是 A(2,4) 中的4,下一个元素应该是最大值,例如 315 度方向角,即A(5,7) 中的7 .
我所做的是,根据角度,将矩阵 A 细分为不同的象限,并仅使用该象限的值创建一个新矩阵(A 的子矩阵)。
所以,对于这个例子,子矩阵将是 A 的第四象限:
q_A =
4 3 2 8 1 0
3 3 2 2 1 0
3 2 2 2 1 0
3 3 2 7 2 1
2 3 2 3 2 1
现在,这是我的问题,我怎样才能提取7?
我唯一能做的(并且有效)是找到所有超过阈值的值,然后计算这些点的方向。然后,保存与给定方向(本例中为 315 度)具有相似方向的所有值,最后找到其中的最大值。它有效,但我想可能会有更快和“更清洁”的解决方案。