Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

[val, idx] = max(a);

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

Ответ 2

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

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

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

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

x =

7

y =

4

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

Ответ 5

3D-код

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

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

Ответ 6

Это вернет максимальное значение в матрице

max(M1(:))

Это вернет строку и столбец этого значения

[x,y]=ind2sub(size(M1),max(M1(:)))

Для минимума просто поменяйте слово max на min и все.