如何在MATLAB中找到数组中的最大值及其索引?

时间:2012-11-23 14:24:42

标签: matlab max matrix-indexing

假设我有一个数组a = [2 5 4 7]。返回最大值及其索引的函数是什么?

例如,在我的情况下,函数应该返回7作为最大值,4作为索引。

7 个答案:

答案 0 :(得分:67)

该功能为max。要获得第一个最大值,你应该做

[val, idx] = max(a);

val是最大值,idx是其索引。

答案 1 :(得分:10)

对于矩阵,您可以使用:

[M,I] = max(A(:))

我是包含最大元素的A(:)的索引。

现在,使用ind2sub函数提取对应于最大元素的A的行索引和列索引。

[I_row, I_col] = ind2sub(size(A),I)

来源:https://www.mathworks.com/help/matlab/ref/max.html

答案 2 :(得分:6)

如果是2D数组(矩阵),您可以使用:

[val, idx] = max(A, [], 2);

idx部分将包含包含每行最大元素的列号。

答案 3 :(得分:4)

您可以使用max()来获取最大值。 max函数还可以返回向量中最大值的索引。为此,将调用的结果分配给两个元素向量而不是单个变量。

e.g。 z是你的数组,

>> [x, y] = max(z)

x =

7

y =

4

这里,7是第4位(指数)的最大数字。

答案 4 :(得分:4)

3D案例

修改Mohsen对3D阵列的回答:

[M,I] = max (A(:));
[ind1, ind2, ind3] = ind2sub(size(A),I)

答案 5 :(得分:0)

这将返回矩阵中的最大值

max(M1(:))

这将返回该值的行和列

[x,y]=ind2sub(size(M1),max(M1(:)))

对于最小值,只需将单词max与min互换即可。

答案 6 :(得分:0)

例如:

  const saveSettings = async (settings) => {
      setSettings(settings);
  }