假设我有一个数组,a = [2 5 4 7]
. 返回最大值及其索引的函数是什么?
例如,在我的情况下,该函数应返回 7 作为最大值和 4 作为索引。
假设我有一个数组,a = [2 5 4 7]
. 返回最大值及其索引的函数是什么?
例如,在我的情况下,该函数应返回 7 作为最大值和 4 作为索引。
功能是max
。要获得第一个最大值,您应该这样做
[val, idx] = max(a);
val
是最大值,idx
是它的索引。
对于矩阵,您可以使用:
[M,I] = max(A(:))
I 是包含最大元素的 A(:) 的索引。
现在,使用 ind2sub 函数提取 A 对应于最大元素的行和列索引。
[I_row, I_col] = ind2sub(size(A),I)
如果是二维数组(矩阵),您可以使用:
[val, idx] = max(A, [], 2);
idx 部分将包含包含每行的最大元素的列号。
3D案例
修改 Mohsen 对 3D 数组的回答:
[M,I] = max (A(:));
[ind1, ind2, ind3] = ind2sub(size(A),I)
您可以使用 max() 来获取最大值。max 函数还可以返回向量中最大值的索引。为此,请将调用 max 的结果分配给一个二元素向量,而不仅仅是一个变量。
例如 z 是你的数组,
>> [x, y] = max(z)
x =
7
y =
4
这里,7 是第 4 个位置(索引)的最大数字。
这将返回矩阵中的最大值
max(M1(:))
这将返回该值的行和列
[x,y]=ind2sub(size(M1),max(M1(:)))
对于最小值,只需将单词 max 与 min 交换即可。
例如:
max_a = max(a)
a.index(max_a)