数组中最大值和最小值的索引

我怎样才能find没有循环数组中的最大元素的索引?

例如,如果我有:

a = [1 2 999 3]; 

我想定义一个函数indexMax以便indexMax(a)将返回3

同样用于定义indexMin

3 Solutions collect form web for “数组中最大值和最小值的索引”

正如Evgeni指出的, maxmin可以返回argmaxargmax作为第二个参数。
值得注意的是,您可以沿着特定的维度使用这些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的情况下,同样的程序是适用的。

我希望这有帮助。

  • numpy dot()和inner()之间的区别
  • 如何迭代MATLAB中的n维matrix中的每个元素?
  • 与SSE有效的4x4matrix向量乘法:水平添加和点积 - 有什么意义?
  • 根据列中的公共值将大数据框分割成数据框列表
  • Scipy稀疏...数组?
  • 如何用R中的向量元素来划分matrix的每一行
  • 线性索引,逻辑索引等等
  • 查找matrix中最大值的行和列索引
  • 将matrix转换为1维数组
  • 如何在MATLAB中将不同长度的细胞堆积成matrix?
  • 我如何用从零开始的可读angular度来组合旋转matrix?