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

2 views (last 30 days)
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.

Accepted Answer

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

More Answers (3)

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

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

David
David on 22 May 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.

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!