# How do I find the indices of the maximum (or minimum) value of my matrix?

6,929 次查看（过去 30 天）
MathWorks Support Team 2009-10-7

The 'find' command only returns the indices of all the non-zero elements of a matrix. I would like to know how to find the indices of just the maximum (or minimum) value.

### 采纳的回答

The "min" and "max" functions in MATLAB return the index of the minimum and maximum values, respectively, as an optional second output argument.
For example, the following code produces a row vector 'M' that contains the maximum value of each column of 'A', which is 3 for the first column and 4 for the second column. Additionally, 'I' is a row vector containing the row positions of 3 and 4, which are 2 and 2, since the maximums for both columns lie in the second row.
A = [1 2; 3 4];
[M,I] = max(A)
For more information on the 'min' and 'max' functions, see the documentation pages listed below:
To find the indices of all the locations where the maximum value (of the whole matrix) appears, you can use the "find" function.
maximum = max(max(A));
[x,y]=find(A==maximum)

### 更多回答（5 个）

Shakir Kapra 2015-4-20

[M,I] = min(A)
where M - is the min value
and I - is index of the minimum value
Similarly it works for the max
##### 0 个评论显示 -1更早的评论隐藏 -1更早的评论

indrajit das 2016-8-3
find(arr == max(arr));
##### 0 个评论显示 -1更早的评论隐藏 -1更早的评论

Andrew Teixeira 2019-10-1
A = magic(5);
[Amins, idx] = min(A);
[Amin, Aj] = min(Amins);
Ai = idx(Aj);
where your final matrix minima is located at [Ai, Aj]
##### 0 个评论显示 -1更早的评论隐藏 -1更早的评论

Juanith HL 2019-10-8
A = [8 2 4; 7 3 9]
[M,I] = max(A(:)) %I is the index maximun Here tu can change the function to max or min
[I_row, I_col] = ind2sub(size(A),I) %I_row is the row index and I_col is the column index
##### 1 个评论显示 无隐藏 无
Steven Lord 2022-8-18
If you can use linear indices, instead I would recommend:
A = [8 2 4; 7 3 9];
[X, ind] = max(A, [], 'all', 'linear')
X = 9
ind = 6
This will tell us the maximum value in A is 9 and it is located in element 6 of A.

ANKUR KUMAR 2017-9-19
Use this as a function and type [x,y]=minmat(A) to get the location of the minimum of matrix. for example:
>> A=magic(5)
>> [a,b]=minmat(A)
a =
1
b =
3
Save this as a function in your base folder and use it.
function [ a,b ] = minmat( c )
as=size(c);
total_ele=numel(c);
[~,I]=min(c(:));
r=rem(I,as(1));
a=r;
b=((I-a)/as(1))+1;
if a==0
a=as(1);
b=b-1;
else
a=r;
b=b;
end
end
##### 1 个评论显示 无隐藏 无
Steven Lord 2020-9-6
Once you've stored this code in a file named minmat.m (see this documentation page for the basics of defining a function) you can call this like any other MATLAB function (as shown on this other documentation page.)

### 类别

Find more on Operators and Elementary Operations in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by