42

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

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

4

7 回答 7

83

功能是max。要获得第一个最大值,您应该这样做

[val, idx] = max(a);

val是最大值,idx是它的索引。

于 2012-11-23T14:26:41.337 回答
15

对于矩阵,您可以使用:

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

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

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

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

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

于 2017-03-31T15:53:13.547 回答
11

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

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

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

于 2016-09-04T12:41:56.013 回答
5

3D案例

修改 Mohsen 对 3D 数组的回答:

[M,I] = max (A(:));
[ind1, ind2, ind3] = ind2sub(size(A),I)
于 2017-07-05T14:53:31.387 回答
4

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

例如 z 是你的数组,

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

x =

7

y =

4

这里,7 是第 4 个位置(索引)的最大数字。

于 2012-11-23T14:34:01.097 回答
0

这将返回矩阵中的最大值

max(M1(:))

这将返回该值的行和列

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

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

于 2019-05-21T11:27:28.467 回答
0

例如:

max_a = max(a)
a.index(max_a)
于 2021-03-14T18:20:39.607 回答