如何在大矩阵中找到最小值

时间:2013-11-08 20:23:01

标签: matlab matrix max min

我有一个矩阵Z,例如

Z = randi(6, 20)

我想从此矩阵中找到最小值,并使用x,y坐标显示它。 我尝试计算出最大值后得到了它,但随后将max替换为min以计算出最小值。 max有时会起作用,但min从来没有工作过,所以我猜错了。我需要分钟工作!

[x,y]=find(Z==max(max(Z)))
Z_max=Z(x,y))

[x,y]=find(Z==min(min(Z)))
Z_min=Z(x,y))

但我总是得到一个错误说Index exceeds matrix dimensions.当它工作时,它给了我这样的答案(这正是我想要的):

x =

     5


y =

     3


Z_max =

    6

任何建议都会非常有用。

1 个答案:

答案 0 :(得分:3)

您需要使用find的三输出版本。此外,这也返回最小值(不仅是指数):

[x y min_Z] = find(Z==min(Z(:)));

如果在几个条目中达到最小值,则会给出几个值。如果您只想要第一个,请使用:

[x y min_Z] = find(Z==min(Z(:)),1);

可能更快的替代方案,它只提供第一个:

[min_Z k] = min(Z(:));
[x y] = ind2sub(size(Z),k);