在2D矩阵中查找max及其列和行

时间:2015-02-05 09:23:23

标签: matlab

假设我有这样的矩阵:

a = [  2 5 4 7; 1 2 5 8; 2 3 4 5; 4 3 1 5]

返回最大值及其列和行索引的函数是什么?

例如,在我的情况下,函数应返回最大值为8,列索引为4,行索引为2

2 个答案:

答案 0 :(得分:1)

您可以使用max两次执行此操作:

[m irows]=max(a)
[mm icol]=max(m)
irow=irows(icol)
a(irow,icol)

另一种解决方案是将a展开为a(:)的向量,使用max,这将为您提供一个索引,然后您需要将其转换为行和列。例如,您可以通过b(:)打印b=[1,3;2,4]来轻松弄清楚其工作原理。

答案 1 :(得分:0)

从@ yoh.lej开始,您可以使用ind2subfind的输出转换为坐标:

m = magic(5);
[y, i] = max(m(:));
[r, c] = ind2sub(size(m), i)