数组中最大值和最小值的索引
我怎样才能find没有循环数组中的最大元素的索引?
例如,如果我有:
a = [1 2 999 3];
我想定义一个函数indexMax
以便indexMax(a)
将返回3
。
同样用于定义indexMin
。
正如Evgeni指出的, max
和min
可以返回argmax
和argmax
作为第二个参数。
值得注意的是,您可以沿着特定的维度使用这些function:
A = rand(4); % 4x4 matrix [ row_max row_argmax ] = max( A, [], 2 ); % max for each row - 2nd dimension [ col_min col_argmin ] = min( A, [], 1 ); % min for each column - 1st dimension
注意空的[]
第二个参数 – 这是至关重要的max( A, [], 2 )
完全不等于max( A, 2 )
(我会留给你作为一个小练习,看什么max( A, 2 )
做)。
从这些“沿维度”调用返回的argmax / argmin是行/列索引。
当指定了两个输出参数时,内置的max
函数具有这个function:
a = [1 2 999 3]; [the_max, index_of_max] = max(a) the_max = 999 index_of_max = 3
同样的min
。
作为一种替代解决scheme,你可以试试这个:
a = rand(1,1000); min_idx = find(a == min(a));
显然,在max
的情况下,同样的程序是适用的。
我希望这有帮助。