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

1 vue (au cours des 30 derniers jours)
David
David le 22 Mai 2012
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.

Réponse acceptée

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

Plus de réponses (3)

David
David le 22 Mai 2012
Thanks - I would not have intuited this from MatLab's limited documentation.

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

David
David le 22 Mai 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.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by