Посмотрите на функции min()
и max()
. Они могут возвращать как самое высокое / самое низкое значение, так и его индекс:
[B,I]=min(A(:)); %# note I fixed a bug on this line!
возвращает I=7
и B=A(7)=A(2,2)
. Выражение A(:)
говорит, что MATLAB пока что рассматривает A как одномерный массив, поэтому даже если A равен 5x5, он возвращает линейный индекс 7.
Если вам нужны 2D-координаты, то есть "2,2" в B=A(7)=A(2,2)
, вы можете использовать [I,J] = ind2sub(size(A),I)
, который возвращает I=2,J=2
, см. здесь .
Обновление
Если вам нужны все индексы записей, которые достигают минимального значения, вы можете использовать find :
I = find(A==min(A(:));
I
теперь является вектором их всех.