locating the relative position of a value in a 2 x matrix

2 visualizaciones (últimos 30 días)
I have a 180 by 180 matrix and want to locate the position of the minimum value so I can subsequently reuse the source variables used in the creation of that matrix.
i.e. the minimum valur occurs at row 10 and column 130 but I have not been able to simply return those two numbers.

Respuesta aceptada

Daniel Shub
Daniel Shub el 22 de Mayo de 2012
x = randn(180);
[~, I] = min(x(:));
[I, J] = ind2sub(size(x), I);

Más respuestas (3)

David
David el 22 de Mayo de 2012
Thanks - I would not have intuited this from MatLab's limited documentation.

Daniel Shub
Daniel Shub el 22 de Mayo de 2012
From an understanding point, maybe this is better
x = randn(180);
[y, I] = min(x);
[~, J] = min(y);
[I(J), J]

David
David el 22 de Mayo de 2012
Thanks again - both example solutions extend well beyond the simple MatLab documentation.
My key takeaways from the first solution frame an understanding / confirmation regarding the second. The use of the wild card (:) unlocks some of my road blocks as does the realization that the first index is a linear index that must be converted into row and column designations.

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!

Translated by