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

2 次查看(过去 30 天)
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.

采纳的回答

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

更多回答(3 个)

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

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

David
David 2012-5-22
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.

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by