Как найти максимальное значение и его индекс в массиве в MATLAB?

Предположим у меня есть массив, a = [2 5 4 7]. Что такое функция, возвращающая максимальное значение и его индекс?

например, в моем случае эта функция должна возвращать 7 как максимальное значение и 4 как индекс.

5 ответов


функция max. Получить первое максимальное значение, вы должны сделать

[val, idx] = max(a);

val - максимальное значение и idx - это его индекс.


для матрицы вы можете использовать это:

[M,I] = max(A(:))

I-индекс A (:), содержащий наибольший элемент.

теперь используйте функцию ind2sub для извлечения индексов строк и столбцов, соответствующих наибольшему элементу.

[I_row, I_col] = ind2sub(size(A),I)

источник:https://www.mathworks.com/help/matlab/ref/max.html


в случае с 2D массива (матрицы), вы можете использовать:

[val, idx] = max(A, [], 2);

часть idx будет содержать номер столбца, содержащий максимальный элемент каждой строки.


вы можете использовать max () для получения максимального значения. Функция max также может возвращать индекс максимального значения в векторе. Чтобы получить это, назначьте результат вызова max вектору двух элементов вместо одной переменной.

например, z-Ваш массив,

>> [x, y] = max(z)

x =

7

y =

4

здесь 7-наибольшее число на 4-й позиции (индекс).


3D чехол

изменение ответа Мохсена для 3D-массива:

[M,I] = max (A(:));
[ind1, ind2, ind3] = ind2sub(size(A),I)