How do I find the indices of the maximum (or minimum) value of my matrix?
5.315 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 7 de Oct. de 2009
Editada: MathWorks Support Team
el 26 de Nov. de 2024 a las 5:47
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.
Respuesta aceptada
MathWorks Support Team
el 26 de Nov. de 2024 a las 0:00
Editada: MathWorks Support Team
el 26 de Nov. de 2024 a las 5:47
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)
0 comentarios
Más respuestas (5)
Shakir Kapra
el 20 de Abr. de 2015
Editada: Shakir Kapra
el 20 de Abr. de 2015
[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 comentarios
Andrew Teixeira
el 1 de Oct. de 2019
How about just:
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 comentarios
Juanith HL
el 8 de Oct. de 2019
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 comentario
Steven Lord
el 18 de Ag. de 2022
If you can use linear indices, instead I would recommend:
A = [8 2 4; 7 3 9];
[X, ind] = max(A, [], 'all', 'linear')
This will tell us the maximum value in A is 9 and it is located in element 6 of A.
ANKUR KUMAR
el 19 de Sept. de 2017
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 comentario
Steven Lord
el 6 de Sept. de 2020
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.)
Ver también
Categorías
Más información sobre Manage Products en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!