查找矩阵最大值的坐标

时间:2013-06-06 22:19:52

标签: matlab

我试图找到一种方法来找到大小为[8,8]的矩阵中最大值/ s的坐标集,其中矩阵中的值从0到6不等(通过其余的生成)脚本/功能)。

即。零(8,8)的矩阵,其中值1在[3,3],[3,5]和[5,3]中。 我希望得到一些符合([3,3],[3,5],[5,3])的东西 我已经尝试过使用ind2sub之类的东西,但没有运气(我继续得到的东西像[I,J] = [[0,0,3,0,5,0,0,0],[1,1] ,1,1,1,1,1,1]])

有什么想法吗? 如果需要更多说明,请指出您需要的地方,我很乐意这样做。

1 个答案:

答案 0 :(得分:3)

到目前为止,您使用max时遇到的问题是因为它在一个维度上运行。如果在矩阵上调用它,使用其默认参数,它将为矩阵的每列返回单个最大元素(和索引)。在您的情况下,您需要所有最大值,以及此处的全局最大值。

试试这个:

[I,J] = find(M == max(M(:)))

首先,max(M(:))找到最大元素,然后我们构造一个逻辑矩阵M == max(M(:)),显示哪些元素是最大值。最后,您可以使用find来获取那些坐标(如有必要)。