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

1 Ansicht (letzte 30 Tage)
David
David am 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.

Akzeptierte Antwort

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

Weitere Antworten (3)

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

Daniel Shub
Daniel Shub am 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 am 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.

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by