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

1 visualizzazione (ultimi 30 giorni)
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.

Risposta accettata

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

Più risposte (3)

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

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

David
David il 22 Mag 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.

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by