Max()-function and multiple dimensions
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mauri
el 9 de Ag. de 2014
Comentada: Steven Lord
el 25 de Oct. de 2016
Hello,
I'm trying to maximize a matrix that is of several dimensions. I also need to know the locations of the maximized value, which is actually the problem. How do I go about doing this in the most simple way?
So, for example, x=rand(10,10,10,10,10); Of course, by simple max(max(max(max(x) I could get the maximal value of x. How about the location? (for example the maximum could be located in x(1,2,3,2,4))
Cheers,
M
1 comentario
Image Analyst
el 10 de Ag. de 2014
I think you're getting only answers on how to locate the max value because no one knows what you want to do to maximize the array. What is the array dependent on such that changing those parameters will maximize the array? And what does it mean to maximize an array, as opposed to a single value. Do you want to vary some parameter, say lambda or whatever you want to call it, such that the sum, or mean, of all the values in the array is maximized?
Respuesta aceptada
Ahmet Cecen
el 9 de Ag. de 2014
Editada: Ahmet Cecen
el 9 de Ag. de 2014
Do:
[C I]=max(x(:));
now C is the maximum value, I is the index of where it is, so that x(I) is C.
If you want the 5D coordinates explicitly, then read ind2sub.
3 comentarios
Shivanand Venkanna Sheshappanavar
el 25 de Oct. de 2016
what if the matrix is a 2D matrix ? We need maxval, rowindex and columnindex
Steven Lord
el 25 de Oct. de 2016
The solution Ahmet and Jan posted works fine for 2-D matrices, 5-D arrays, etc.
Más respuestas (1)
Azzi Abdelmalek
el 9 de Ag. de 2014
Editada: Azzi Abdelmalek
el 10 de Ag. de 2014
Edit
A=rand(10,10,10,10,10);
[max_value,idx]=max(A(:));
q=['[' sprintf('x%d,',1:ndims(A))];
q(end)=']';
eval([q '=ind2sub(size(A),idx)'])
eval(['x=' q])
1 comentario
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!