Как найти наибольший элемент матрицы матлаб

Maximum elements of array

Syntax

Description

example

M = max(A)
returns the maximum elements of an array.

  • If A is a vector, then
    max(A) returns the maximum of
    A.

  • If A is a matrix, then
    max(A) is a row vector containing the maximum
    value of each column of A.

  • If A is a multidimensional array, then
    max(A) operates along the first dimension of
    A whose size is greater than
    1, treating the elements as vectors. The size
    of M in this dimension becomes
    1, while the sizes of all other dimensions
    remain the same as in A. If A
    is an empty array whose first dimension has zero length, then
    M is an empty array with the same size as
    A.

  • If A is a
    table or timetable, then max(A) returns a one-row
    table containing the maximum of each variable. (since R2023a)

example

M = max(A,[],"all")
finds the maximum over all elements of A.

example

M = max(A,[],dim)
returns the maximum element along dimension dim. For example,
if A is a matrix, then max(A,[],2) returns
a column vector containing the maximum value of each row.

example

M = max(A,[],vecdim)
returns the maximum over the dimensions specified in the vector
vecdim. For example, if A is a matrix,
then max(A,[],[1 2]) returns the maximum over all elements in
A because every element of a matrix is contained in the
array slice defined by dimensions 1 and 2.

example

M = max(A,[],___,missingflag)
specifies whether to omit or include missing values in A for
any of the previous syntaxes. For example,
max(A,[],"includemissing") includes all missing values
when computing the maximum. By default, max omits missing
values.

example

[M,I] =
max(___)

also returns the index into the operating dimension that corresponds to the
first occurrence of the maximum value of A.

example

[M,I] =
max(A,[],___,"linear")

also returns the linear index into A that corresponds to the
maximum value in A.

example

C = max(A,B)
returns an array with the largest elements taken from A or
B.

C = max(A,B,missingflag)
also specifies how to treat missing values.

___ = max(___,"ComparisonMethod",method)
optionally specifies how to compare elements for any of the previous syntaxes.
For example, for a vector A = [-1 2 -9], the syntax
max(A,[],"ComparisonMethod","abs") compares the elements
of A according to their absolute values and returns a maximum
value of -9.

Examples

collapse all

Largest Vector Element

Create a vector and compute its largest element.

A = [23 42 37 18 52];
M = max(A)

Largest Complex Element

Create a complex vector and compute its largest element, that is, the element with the largest magnitude.

A = [-2+2i 4+i -1-3i];
max(A)

Largest Element in Each Matrix Column

Create a matrix and compute the largest element in each column.

Largest Element in Each Matrix Row

Create a matrix and compute the largest element in each row.

A = [1.7 1.2 1.5; 1.3 1.6 1.99]
A = 2×3

    1.7000    1.2000    1.5000
    1.3000    1.6000    1.9900

Maximum of Array Page

Create a 3-D array and compute the maximum over each page of data (rows and columns).

A(:,:,1) = [2 4; -2 1];
A(:,:,2) = [9 13; -5 7];
A(:,:,3) = [4 4; 8 -3];
M1 = max(A,[],[1 2])
M1 = 
M1(:,:,1) =

     4


M1(:,:,2) =

    13


M1(:,:,3) =

     8

To compute the maximum over all dimensions of an array, you can either specify each dimension in the vector dimension argument or use the "all" option.

Largest Element Including Missing Values

Create a matrix containing NaN values.

A = [1.77 -0.005 NaN -2.95; NaN 0.34 NaN 0.19]
A = 2×4

    1.7700   -0.0050       NaN   -2.9500
       NaN    0.3400       NaN    0.1900

Compute the maximum value of the matrix, including missing values. For matrix columns that contain any NaN value, the maximum is NaN.

M = max(A,[],"includemissing")
M = 1×4

       NaN    0.3400       NaN    0.1900

Largest Element Indices

Create a matrix A and compute the largest elements in each column, as well as the row indices of A in which they appear.

Return Linear Indices

Create a matrix A and return the maximum value of each row in the matrix M. Use the "linear" option to also return the linear indices I such that M = A(I).

[M,I] = max(A,[],2,"linear")

Largest Element Comparison

Create a matrix and return the largest value between each of its elements compared to a scalar.

Input Arguments

collapse all

AInput array
scalar | vector | matrix | multidimensional array | table | timetable

Input array, specified as a scalar, vector, matrix, multidimensional array, table, or
timetable.

  • If A is complex, then max(A) returns
    the complex number with the largest magnitude. If magnitudes are
    equal, then max(A) returns the value with the largest
    magnitude and the largest phase angle.

  • If A is a scalar, then max(A) returns A.

  • If A is a 0-by-0 empty array, then max(A) is
    as well.

If A has type categorical, then it
must be ordinal.

Complex Number Support: Yes

dimDimension to operate along
positive integer scalar

Dimension
to operate along, specified as a positive integer scalar. If you do not specify the dimension,
then the default is the first array dimension of size greater than 1.

Dimension dim indicates the dimension whose
length reduces to 1. The size(M,dim) is 1,
while the sizes of all other dimensions remain the same, unless size(A,dim) is 0.
If size(A,dim) is 0, then max(A,dim) returns
an empty array with the same size as A.

Consider an m-by-n input matrix,
A:

  • max(A,[],1) computes the maximum of the
    elements in each column of A and returns a
    1-by-n row
    vector.

    max(A,[],1) column-wise operation

  • max(A,[],2) computes the maximum of the
    elements in each row of A and returns an
    m-by-1 column
    vector.

    max(A,[],2) row-wise operation

vecdimVector of dimensions
vector of positive integers

Vector of dimensions, specified as a vector of positive integers. Each
element represents a dimension of the input array. The lengths of the output
in the specified operating dimensions are 1, while the others remain the
same.

Consider a 2-by-3-by-3 input array, A. Then
max(A,[],[1 2]) returns a 1-by-1-by-3 array whose
elements are the maximums computed over each page of
A.

Mapping of a 2-by-3-by-3 input array to a 1-by-1-by-3 output array

BAdditional input array
scalar | vector | matrix | multidimensional array | table | timetable

Additional input array, specified as a scalar, vector, matrix, multidimensional array, table,
or timetable. Inputs A and B must
either be the same size or have sizes that are compatible (for example,
A is an M-by-N
matrix and B is a scalar or
1-by-N row vector). For more
information, see Compatible Array Sizes for Basic Operations.

  • If A and B are both arrays,
    then they must be the same data type unless one is a
    double. In that case, the data type of the
    other array can be single,
    duration, or any integer type.

  • If A and B are ordinal
    categorical arrays, they must have the same
    sets of categories with the same order.

  • If either A or B is a table
    or timetable, then the other input can be an array, table, or
    timetable.

Complex Number Support: Yes

missingflagMissing value condition
"omitmissing" (default) | "omitnan" | "omitnat" | "omitundefined" | "includemissing" | "includenan" | "includenat" | "includeundefined"

Missing value condition, specified as one of the values in this
table.

Value Input Data Type Description
"omitmissing" All supported data types Ignore missing values in the input arrays,
and compute the maximum over fewer points. If all elements
in the operating dimension are missing, then the
corresponding element in M is
missing.
"omitnan" double, single,
duration
"omitnat" datetime
"omitundefined" categorical
"includemissing" All supported data types

Include missing values in the input
arrays when computing the maximum. If any element in the
operating dimension is missing, then the corresponding
element in M is
missing.

"includenan" double, single,
duration
"includenat" datetime
"includeundefined" categorical

methodComparison method
"auto" (default) | "real" | "abs"

Comparison method for numeric input, specified as one of these values:

  • "auto" — For a numeric input array
    A, compare elements by
    real(A) when A is real,
    and by abs(A) when A is
    complex.

  • "real" — For a numeric input array
    A, compare elements by
    real(A) when A is real or
    complex. If A has elements with equal real parts,
    then use imag(A) to break ties.

  • "abs" — For a numeric input array
    A, compare elements by
    abs(A) when A is real or
    complex. If A has elements with equal magnitude,
    then use angle(A) in the interval (-π,π] to break
    ties.

Output Arguments

collapse all

M — Maximum values
scalar | vector | matrix | multidimensional array | table

Maximum values, returned as a scalar, vector, matrix, multidimensional array, or table.
size(M,dim) is 1, while the sizes
of all other dimensions match the size of the corresponding dimension in
A, unless size(A,dim) is
0. If size(A,dim) is
0, then M is an empty array with
the same size as A.

I — Index
scalar | vector | matrix | multidimensional array | table

Index, returned as a scalar, vector, matrix, multidimensional array, or
table. I is the same size as the first output.

When "linear" is not specified, I is
the index into the operating dimension. When "linear" is
specified, I contains the linear indices of
A corresponding to the maximum values.

If the largest element occurs more than once, then I
contains the index to the first occurrence of the value.

C — Maximum elements from A or B
scalar | vector | matrix | multidimensional array | table | timetable

Maximum elements from A or B, returned as a scalar,
vector, matrix, multidimensional array, table, or timetable. The size of
C is determined by implicit expansion of the
dimensions of A and B. For more
information, see Compatible Array Sizes for Basic Operations.

The data type of C depends on the data types
of A and B:

  • If A and B are
    the same data type, then C matches the data type
    of A and B.

  • If either A or B is single,
    then C is single.

  • If either A or B is
    an integer data type with the other a scalar double,
    then C assumes the integer data type.

  • If either A or B is a
    table or timetable, then C is a table or
    timetable.

Extended Capabilities

Tall Arrays
Calculate with arrays that have more rows than fit in memory.

This function fully supports tall arrays. For
more information, see Tall Arrays.

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Usage notes and limitations:

  • If you specify an empty array for the second argument in order to
    supply dim or missingflag, the
    second argument must be of fixed-size and of dimension
    0-by-0.

  • If you specify dim or
    missingflag, then they must be constants.

  • If the input is a variable-size array, the length of the dimension to
    operate along must not be zero at run-time.

  • See Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).

  • See Code Generation for Complex Data with Zero-Valued Imaginary Parts (MATLAB Coder).

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Usage notes and limitations:

  • If you specify an empty array for the second argument in order to
    supply dim or missingflag, the
    second argument must be of fixed-size and of dimension
    0-by-0.

  • If you specify dim or
    missingflag, then they must be constants.

  • See Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).

  • See Code Generation for Complex Data with Zero-Valued Imaginary Parts (MATLAB Coder).

HDL Code Generation
Generate Verilog and VHDL code for FPGA and ASIC designs using HDL Coder™.

Usage notes and limitations:

  • Inputs of 3-D matrices or greater are not supported.

  • Inputs that have complex data types are not supported.

  • Input matrices or vectors must be of equal size.

Thread-Based Environment
Run code in the background using MATLAB® backgroundPool or accelerate code with Parallel Computing Toolbox™ ThreadPool.

This function fully supports thread-based environments. For
more information, see Run MATLAB Functions in Thread-Based Environment.

GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.

This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.

This function fully supports distributed arrays. For more
information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).

Version History

Introduced before R2006a

expand all

R2023a: Specify missing value condition

Omit or include all missing values in the input arrays when computing the maximum
value by using the "omitmissing" or
"includemissing" options. Previously,
"omitnan", "includenan",
"omitnat", "includenat",
"omitundefined", and "includeundefined"
specified a missing value condition that was specific to the data type of the input
arrays.

R2023a: Perform calculations directly on tables and timetables

The max function can calculate on all variables within a table or
timetable without indexing to access those variables. All variables must have data types
that support the calculation. For more information, see Direct Calculations on Tables and Timetables.

R2021b: Specify comparison method

Specify the real or absolute value method for determining the maximum value of the
input by using the ComparisonMethod parameter.

R2018b: Operate on multiple dimensions

Operate on multiple dimensions of the input arrays at a time. Specify a vector of
operating dimensions, or specify the "all" option to operate on
all array dimensions.

Максимальные элементы массива

Синтаксис

Описание

пример

M = max(A) возвращает максимальные элементы массива.

  • Если A вектор, затем max(A) возвращает максимум A.

  • Если A матрица, затем max(A) вектор-строка, содержащий максимальное значение каждого столбца.

  • Если A многомерный массив, затем max(A) действует вдоль первого измерения массива, размер которого не равняется 1, обработка элементов как векторы. Размер этой размерности становится 1 в то время как размеры всех других размерностей остаются то же самое. Если A пустой массив, первая размерность которого имеет нулевую длину, затем max(A) возвращает пустой массив с тем же размером как A.

пример

M = max(A,[],dim) возвращает максимальный элемент по измерению dim. Например, если A матрица, затем max(A,[],2) вектор-столбец, содержащий максимальное значение каждой строки.

пример

M = max(A,[],nanflag) задает, включать ли или не использовать NaN значения в вычислении. Например, max(A,[],'includenan') включает весь NaN значения в A в то время как max(A,[],'omitnan') игнорирует их.

M = max(A,[],dim,nanflag) также задает размерность, которую задает направление расчета при использовании nanflag опция.

пример

[M,I] =
max(___)
также возвращает индекс в операционную размерность, которая соответствует максимальному значению A для любого из предыдущих синтаксисов.

пример

M = max(A,[],'all') находит максимум по всем элементам A. Этот синтаксис допустим для MATLAB® версии R2018b и позже.

пример

M = max(A,[],vecdim) вычисляет максимум по размерностям, заданным в векторном vecdim. Например, если A матрица, затем max(A,[],[1 2]) вычисляет максимум по всем элементам в A, поскольку каждый элемент матрицы содержится в срезе массивов, заданном размерностями 1 и 2.

M = max(A,[],'all',nanflag) вычисляет максимум по всем элементам A при использовании nanflag опция.

M = max(A,[],vecdim,nanflag) задает несколько размерностей, которых задают направление расчета при использовании nanflag опция.

[M,I] =
max(A,[],'all',___)
возвращает линейный индекс в A это соответствует максимальному значению в A при определении 'all'.

пример

[M,I] =
max(A,[],___,'linear')
возвращает линейный индекс в A это соответствует максимальному значению в A.

пример

C = max(A,B) возвращает массив с самыми большими элементами, взятыми из A или B.

C = max(A,B,nanflag) также задает, как обработать NaN значения.

___ = max(___,'ComparisonMethod',method) опционально задает, как сравнить элементы для любого из предыдущих синтаксисов. Например, для векторного A = [-1 2 -9], синтаксис max(A,[],'ComparisonMethod','abs') сравнивает элементы A согласно их абсолютным значениям и возвращает -9.

Примеры

свернуть все

Самый большой векторный элемент

Создайте вектор и вычислите его самый большой элемент.

A = [23 42 37 18 52];
M = max(A)

Самый большой комплексный элемент

Создайте комплексный вектор и вычислите его самый большой элемент, то есть, элемент с самой большой величиной.

A = [-2+2i 4+i -1-3i];
max(A)

Самый большой элемент в каждом столбце матрицы

Создайте матрицу и вычислите самый большой элемент в каждом столбце.

Самый большой элемент в каждой матричной строке

Создайте матрицу и вычислите самый большой элемент в каждой строке.

A = [1.7 1.2 1.5; 1.3 1.6 1.99]
A = 2×3

    1.7000    1.2000    1.5000
    1.3000    1.6000    1.9900

Самое большое включение элемента NaN

Создайте вектор и вычислите его максимум, исключая NaN значения.

A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];
M = max(A,[],'omitnan')

max(A) также приведет к этому результату начиная с 'omitnan' опция по умолчанию.

Используйте 'includenan' отметьте, чтобы возвратить NaN.

M = max(A,[],'includenan')

Самые большие индексы элемента

Создайте матричный A и вычислите самые большие элементы в каждом столбце, а также индексы строки A в котором они появляются.

Максимум страницы массивов

Создайте трехмерный массив и вычислите максимум по каждой странице данных (строки и столбцы).

A(:,:,1) = [2 4; -2 1];
A(:,:,2) = [9 13; -5 7];
A(:,:,3) = [4 4; 8 -3];
M1 = max(A,[],[1 2])
M1 = 
M1(:,:,1) =

     4


M1(:,:,2) =

    13


M1(:,:,3) =

     8

Начиная в R2018b, вычислять максимум по всем размерностям массива, можно или задать каждую размерность в векторном аргументе размерности или использовать 'all' опция.

Возвратите линейные индексы

Создайте матричный A и возвратите максимальное значение каждой строки в матричном M. Используйте 'linear' опция, чтобы также возвратить линейные индексы I таким образом, что M = A(I).

[M,I] = max(A,[],2,'linear')

Самое большое сравнение элемента

Создайте матрицу и возвратите самое большое значение между каждым из его элементов по сравнению со скаляром.

Входные параметры

свернуть все

AВходной массив
скаляр | вектор | матрица | многомерный массив

Входной массив, заданный как скалярный, векторный, матричный или многомерный массив.

  • Если A является комплексным, затем max(A) возвращает комплексное число с самой большой величиной. Если величины равны, то max(A) возвращает значение с самой большой величиной и самым большим углом фазы.

  • Если A скаляр, затем max(A) возвращает A.

  • Если A пустой массив 0 на 0, затем max(A) также.

Если A имеет вводят categorical, затем это должно быть порядковым.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | categorical | datetime | duration
Поддержка комплексного числа: Да

dimРазмерность, которая задает направление расчета
положительный целочисленный скаляр

Величина для работы, заданная как положительный целый скаляр. Если значение не задано, то по умолчанию это первый размер массива, не равный 1.

Размерность dim указывает на размерность, длина которой уменьшает до 1. size(M,dim) 1, в то время как размеры всех других размерностей остаются то же самое, если size(A,dim) 0. Если size(A,dim) 0, затем max(A,dim) возвращает пустой массив с тем же размером как A.

Рассмотрите двумерный входной массив, A:

  • Если dim = 1, затем max(A,[],1) возвращает вектор-строку, содержащий самый большой элемент в каждом столбце.

  • Если dim = 2, затем max(A,[],2) возвращает вектор-столбец, содержащий самый большой элемент в каждой строке.

max возвращает A если dim больше ndims(A).

vecdimВектор из размерностей
вектор из положительных целых чисел

Вектор из размерностей в виде вектора из положительных целых чисел. Каждый элемент представляет размерность входного массива. Продолжительности выхода в заданных операционных размерностях равняются 1, в то время как другие остаются то же самое.

Рассмотрите 2 3х3 входным массивом, A. Затем max(A,[],[1 2]) возвращает 1 1 3 массивами, элементами которых являются максимумы, вычисленные по каждой странице A.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

BДополнительный входной массив
скаляр | вектор | матрица | многомерный массив

Дополнительный входной массив в виде скаляра, вектора, матрицы или многомерного массива. Входные параметры A и B должен или быть одного размера или иметь размеры, которые совместимы (например, A MN матрица и B скаляр или 1N вектор-строка). Для получения дополнительной информации см. «Совместимые размеры массивов для основных операций».

  • A и B должен быть совпадающий тип данных, если каждый не double. В этом случае типом данных другого массива может быть singleдлительность, или любой целочисленный тип.

  • Если A и B порядковый categorical массивы, у них должны быть те же наборы категорий с тем же порядком.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | categorical | datetime | duration
Поддержка комплексного числа: Да

nanflag NaN условие
'omitnan' (значение по умолчанию) | 'includenan'

NaN условие в виде одного из этих значений:

  • 'omitnan' — Проигнорируйте весь NaN значения во входе. Если всеми элементами является NaN, затем max возвращает первый.

  • 'includenan' — Включайте NaN значения во входе для вычисления.

Для datetime массивы, можно также использовать 'omitnat' или 'includenat' не использовать и включать NaT значения, соответственно.

Для categorical массивы, можно также использовать 'omitundefined' или 'includeundefined' не использовать и включать неопределенные значения, соответственно.

Типы данных: char

method ‘ComparisonMethod’
'auto' (значение по умолчанию) | 'real' | 'abs'

Метод сравнения для числового входа в виде одного из этих значений:

  • 'auto' — Для числового входного массива A, сравните элементы real(A) когда A действительно, и abs(A) когда A является комплексным.

  • 'real' — Для числового входного массива A, сравните элементы real(A) когда A является действительным или комплексным. Если A имеет элементы с равными действительными частями, затем используйте imag(A) повредить связи.

  • 'abs' — Для числового входного массива A, сравните элементы abs(A) когда A является действительным или комплексным. Если A имеет элементы с равной величиной, затем используйте angle(A) в интервале (-π,π], чтобы повредить связи.

Выходные аргументы

свернуть все

M — Максимальные значения
скаляр | вектор | матрица | многомерный массив

Максимальные значения, возвращенные как скаляр, вектор, матрица или многомерный массив. size(M,dim) 1, в то время как размеры всех других размерностей совпадают с размером соответствующей размерности в A, если size(A,dim) 0. Если size(A,dim) 0, затем M пустой массив с тем же размером как A.

I — Индекс
скаляр | вектор | матрица | многомерный массив

Индексируйте, возвращенный как скаляр, вектор, матрица или многомерный массив. I одного размера с первым выходом.

Когда 'linear' не задан, I индекс в операционную размерность. Когда 'linear' задан, I содержит линейные индексы A соответствие максимальным значениям.

Если самый большой элемент происходит несколько раз, то I содержит индекс к первому вхождению значения.

C — Максимальные элементы от A или B
скаляр | вектор | матрица | многомерный массив

Максимальные элементы от A или B, возвращенный как скаляр, вектор, матрица или многомерный массив. Размер C определяется неявным расширением размерностей A и BДля получения дополнительной информации см. «Совместимые размеры массивов для основных операций».

Тип данных C зависит от типов данных A и B:

  • Если A и B совпадающий тип данных, затем C совпадает с типом данных A и B.

  • Если любой A или B single, затем C single.

  • Если любой A или B целочисленный тип данных с другим скалярный double, затем C принимает целочисленный тип данных.

Расширенные возможности

«Высокие» массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Указания и ограничения по применению:

  • Если вы задаете пустой массив для второго аргумента для того, чтобы предоставить dim или nanflag, второй аргумент должен иметь фиксированный размер и размерности 00.

  • Если вы задаете dim или nanflag, затем они должны быть константами.

  • Если вход является массивом переменного размера, длина размерности, которой задает направление расчета не должна быть нулем во времени выполнения.

  • «Смотрите информацию о генерации кода функций Toolbox (MATLAB Coder) в разделе «»Ограничения переменных размеров»».».

  • Смотрите генерацию кода для комплексных данных с мнимыми частями с нулевым знаком (MATLAB Coder).

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Указания и ограничения по применению:

  • Если вы задаете пустой массив для второго аргумента для того, чтобы предоставить dim или nanflag, второй аргумент должен иметь фиксированный размер и размерности 00.

  • Если вы задаете dim или nanflag, затем они должны быть константами.

  • «Смотрите информацию о генерации кода функций Toolbox (MATLAB Coder) в разделе «»Ограничения переменных размеров»».».

  • Смотрите генерацию кода для комплексных данных с мнимыми частями с нулевым знаком (MATLAB Coder).

Основанная на потоке среда
Запустите код в фоновом режиме с помощью MATLAB® backgroundPool или ускорьте код с Parallel Computing Toolbox™ ThreadPool.

Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.

Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.

Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).

Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.

Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox).

Представлено до R2006a

Suppose I have an array, a = [2 5 4 7]. What is the function returning the maximum value and its index?

For example, in my case that function should return 7 as the maximum value and 4 as the index.

gnovice's user avatar

gnovice

125k15 gold badges256 silver badges359 bronze badges

asked Nov 23, 2012 at 14:24

Yuseferi's user avatar

3

The function is max. To obtain the first maximum value you should do

[val, idx] = max(a);

val is the maximum value and idx is its index.

NKN's user avatar

NKN

6,4546 gold badges36 silver badges55 bronze badges

answered Nov 23, 2012 at 14:26

Acorbe's user avatar

AcorbeAcorbe

8,3355 gold badges37 silver badges66 bronze badges

2

For a matrix you can use this:

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

I is the index of A(:) containing the largest element.

Now, use the ind2sub function to extract the row and column indices of A corresponding to the largest element.

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

source: https://www.mathworks.com/help/matlab/ref/max.html

answered Mar 31, 2017 at 15:53

Mohsen's user avatar

MohsenMohsen

3141 gold badge4 silver badges14 bronze badges

In case of a 2D array (matrix), you can use:

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

The idx part will contain the column number of containing the max element of each row.

NKN's user avatar

NKN

6,4546 gold badges36 silver badges55 bronze badges

answered Sep 4, 2016 at 12:41

Rupal Sonawane's user avatar

You can use max() to get the max value. The max function can also return the index of the maximum value in the vector. To get this, assign the result of the call to max to a two element vector instead of just a single variable.

e.g.
z is your array,

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

x =

7

y =

4

Here, 7 is the largest number at the 4th position(index).

NKN's user avatar

NKN

6,4546 gold badges36 silver badges55 bronze badges

answered Nov 23, 2012 at 14:34

bonCodigo's user avatar

bonCodigobonCodigo

14.2k1 gold badge48 silver badges90 bronze badges

3D case

Modifying Mohsen’s answer for 3D array:

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

answered Jul 5, 2017 at 14:53

user3804598's user avatar

user3804598user3804598

3555 silver badges9 bronze badges

1

This will return the maximum value in a matrix

max(M1(:))

This will return the row and the column of that value

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

For minimum just swap the word max with min and that’s all.

Mojtaba Ahmadi's user avatar

answered May 21, 2019 at 11:27

oumarkh's user avatar

For example:

max_a = max(a)
a.index(max_a)

answered Mar 14, 2021 at 18:20

Pobaranchuk's user avatar

PobaranchukPobaranchuk

8399 silver badges13 bronze badges

Matrices in MATLAB are 2-dimensional arrays that store mostly numeric data at different indices. Now, to find the indices of maximum and minimum values of a given matrix, MATLAB does not provide any direct functionality however, we can do the same by using two other functionalities. Firstly, we will find the maximum or minimum value of a given matrix and then, we will find the indices of those two values. In this scenario, MATLAB does offer simple functions to perform the former tasks. In this article, we shall see how to do the same for a magic square.

Maximum and Minimum Values in a Matrix:

The max() and min() functions find the maximum and minimum values respectively in an array, along a given dimension. The output of these commands will be a row vector(default) which will have max/min values of each column in that array/matrix. Then we can apply the max()/min() function again to find the max/min values from that 1D vector. 

Syntax:

To get row vectors with extreme values

max-row = max(matrix)

min-row = min(matrix)

To get extreme value from a given row vector of extreme values

max(max-row)

min(min-row)

Now let us see the same in action.

Maximum Value:

We will create a 5×5 magic square and find its maximum value, which should be 25.

Example 1:

Matlab

matrix = magic(5)

max_val = max(max(matrix))

Output:

Minimum Value:

Similarly, we will now find the minimum value of the same magic square, which should be 1.

Example 2:

Matlab

matrix = magic(5)

min_val = min(min(matrix))

Output:

Finding Indices of Max/Min Values in the Same Magic Square:

Now we will use the find() function to get the indices of the max/min values.

Syntax:

max-index = find(matrix==max_val)

min-index = find(matrix==min_val)

Example 3:

Matlab

matrix = magic(5);

min_val = min(min(matrix));

max_val = max(max(matrix));

[minx,miny] = find(matrix==min_val);

[maxx,maxy] = find(matrix==max_val);

fprintf("minimum index")

disp([minx,miny])

fprintf("maximum index")

disp([maxx,maxy])

Output:

Finding Max/Min Values With Multiple Occurrences:

We can also find the indices of all occurrences of the max/min value of a matrix in a similar way. See the following code for understanding the same.

Example 4:

Matlab

matrix = [1 2 3;

        1 23 4;

        2 23 5]

min_val = min(min(matrix));

max_val = max(max(matrix));

[minx,miny] = find(matrix==min_val);

[maxx,maxy] = find(matrix==max_val);

fprintf("minimum indexn")

disp([minx,miny])

fprintf("maximum indexn")

disp([maxx,maxy])

Output:

As can be seen, the minimum value 1 occurs at (1,1) and (2,1), and the maximum value 23 occurs at (2,2) and (3,2) indices. The same results are given by the above code.

Last Updated :
21 Nov, 2022

Like Article

Save Article

Progr4mist

0 / 0 / 0

Регистрация: 19.04.2011

Сообщений: 7

1

Нахождение наибольшего элементе в строке матрицы

19.04.2011, 14:24. Показов 11347. Ответов 10

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Всем доброго времени суток !
Прошу помочь решить задачу по matlab’у

Построить квадратную матрицу порядка 5 по правилу A(i,j)=sin(j+i/3). Найти наибольший элемент в каждой строке.

Первую половину задачи удалось осилить самому:

Matlab M
1
2
3
4
5
6
7
8
9
m=5; n=5
max=0.00001
A=zeros(m,n);
for i=1:m
    for j=1:n
        A(i,j)=sin(j+i/3);
    end
end
disp('Matrica A'); disp(A);

теперь, как я понимаю, необходимо задать два цикла: по строке и по элементу строки, в которых программа будет проводить сравнение и-того элемента с неким МАКСИМАЛЬНЫМ заранее заданным.

Заранее благодарен !



0



Галина Борисовн

2831 / 2128 / 86

Регистрация: 02.05.2010

Сообщений: 3,195

19.04.2011, 17:00

2

Лучший ответ Сообщение было отмечено как решение

Решение

Так будет проще

C
1
2
3
4
n=5;
[i, j] = meshgrid(1:5);
A=sin(j+i/3)
Amax=max(A(1:n,:)')

Результат:
A =
0.9719 0.9954 0.9093 0.7231 0.4573
0.7231 0.4573 0.1411 -0.1906 -0.5013
-0.1906 -0.5013 -0.7568 -0.9290 -0.9990
-0.9290 -0.9990 -0.9589 -0.8133 -0.5782
-0.8133 -0.5782 -0.2794 0.0501 0.3742
Amax =
0.9954 0.7231 -0.1906 -0.5782 0.3742



3



536 / 523 / 38

Регистрация: 13.03.2011

Сообщений: 727

19.04.2011, 18:35

3

Отличное решение в духе MATLAB!
Только строку 4 я бы чуточку упростил, избавившись от операции транспонирования:



2



2831 / 2128 / 86

Регистрация: 02.05.2010

Сообщений: 3,195

19.04.2011, 18:40

4

Цитата
Сообщение от Sledge5
Посмотреть сообщение

Отличное решение в духе MATLAB!

Спасибо за похвалу. У Вас учусь краткости. Спасибо за науку.



0



0 / 0 / 0

Регистрация: 19.04.2011

Сообщений: 7

19.04.2011, 23:48

 [ТС]

5

Благодарю Вас за помощь!



0



0 / 0 / 0

Регистрация: 19.04.2011

Сообщений: 7

02.05.2011, 17:24

 [ТС]

6

Всех с прошедшим праздником!

У меня возникло несколько вопросов по предложенному ранее варианту решения данной задачи,
надеюсь у Вас найдутся время и силы помочь

1. Прежде всего, оператор meshgrid — не совсем понял, что означает единица в скобке (1,5), просто до этого всегда матрицы приходилось задавать в циклах.

2. И, конечно, в большей степени вызвала интерес вот эта строка
Amax = max(A, [], 2)
как я понимаю, здесь: А — матрица, в которой ищем максимум, [] — не совсем понял что , 2 поиск по строке вроде, но тоже не понял на чем основана такая символика обозначений.

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

Спасибо !



0



2831 / 2128 / 86

Регистрация: 02.05.2010

Сообщений: 3,195

02.05.2011, 18:01

7

Цитата
Сообщение от Progr4mist
Посмотреть сообщение

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

Предпочтительней потому, что Вам так понятней или от того, что так требует преподаватель?
[i, j] = meshgrid(1:5) Здесь задаются две матрицы вида. Значения элементов матрицы изменяются от 1 до 5 с шагом 1. Обе матрицы создают базу, на которой рассчитывается матрица-функция
A=sin(j+i/3) i =
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
j =
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
Amax = max(A, [], 2) Это другая форма функции max. Она ищет максимальный элемент в строках (по 2-му индексу матрицы). Было бы Amax = max(A, [],1) искала бы максимальный в столбцах.



2



536 / 523 / 38

Регистрация: 13.03.2011

Сообщений: 727

02.05.2011, 18:09

8

2. И, конечно, в большей степени вызвала интерес вот эта строка
Amax = max(A, [], 2)
как я понимаю, здесь: А — матрица, в которой ищем максимум, [] — не совсем понял что , 2 поиск по строке вроде, но тоже не понял на чем основана такая символика обозначений.

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

Если искать максимум только в одной переменной (векторе, матрице, массиве с любой размерностью), то проблем со вторым параметром нет:

Но беда в том, что в этом случае функция max находит максимальный элемент в первом измерении, т.е. по строкам в каждом столбце. Чтобы искать максимум в каждой строке по столбцам, нужно указать размерность массива, вдоль которой проводить поиск максимального значения. Легко догадаться, что номер размерности в этом случае равен 2.
Возникает новая проблема: как задействовать в вызове функции 3-й параметр, не указывая при этом 2-ой? Решается он явным указанием пустого значения ([]) в качестве 2-го параметра. Теперь получается, что 2-ой параметр ничего не изменил, но такое его указание дало нам возможность использовать 3-ий параметр вызываемой функции.

Такой приём можно использовать, если при вызове функции MATLAB нужно пропустить какой-нибудь параметр вызова этой функции. Кстати, параметр размерности (в справке обозначен везде переменной dim), вдоль которой ведется вычисление встречается в функциях MATLAB достаточно часто.

Добавлено через 5 минут
Использование циклов в MATLAB вместо встроенных функций и поэлементных операций как раз НЕ ЯВЛЯЕТСЯ предпочтительным.



2



0 / 0 / 0

Регистрация: 19.04.2011

Сообщений: 7

02.05.2011, 18:27

 [ТС]

9

Галина Борисовн,
Sledge5,

Спасибо за подробные ответы !
Галина Борисовн,
Что касается решения через циклы, если честно, мне так легче и сам преподаватель посоветовал пойти этим путем. Собственно потому то у меня и возникли вопрос на счет предложенного ранее решения.
Sledge5,
После прочтения Вашего подробного разъяснения работы оператора max в данной задаче, у меня остался лишь один вопрос:
За что отвечает 2-ой параметр (в нашем случае «пустышка» []) и почему мы не можем сразу вместо нее вписать 2, т.е. как мы решили что нам нужно задействовать именно 3-ий параметр, минуя 2-ой.

Прошу прощенья, если мои вопросы звучат крайне некомпетентно, буду рад Вашей помощи !

ps получается, что
2-ой параметр — это i
3 — j ?



0



536 / 523 / 38

Регистрация: 13.03.2011

Сообщений: 727

02.05.2011, 23:08

10

Цитата
Сообщение от Progr4mist
Посмотреть сообщение

За что отвечает 2-ой параметр (в нашем случае «пустышка» []) и почему мы не можем сразу вместо нее вписать 2, т.е. как мы решили что нам нужно задействовать именно 3-ий параметр, минуя 2-ой.

2-ой параметр — это имя второй матрицы (вектора или массива). У нас его нет, потому и пустое значение указываем.
Почему мы так решили? Это не мы решили, а программисты Mathworks. Это они так определили заголовок функции. И это логично! Почему это логично? Потому что максимум обычно ищется среди двух значений. Эти значения находятся в соответствующих позициях массивов, указанных в качестве первого и второго параметра.
Пример: допустим, у нас есть две матрицы 3х3 случайных чисел (переменные a и b)

В этом случае получаем матрицу 1х3, где каждое число — максимальное значение в соответствующем столбце. Про матрицу b не буду писать — там всё аналогично.

В этом случае получаем матрицу 3х3, где каждое число — максимальное значение в соответствующей позиции из двух матриц. Т.е.

Код

x(1,1) = max(a(1,1), b(1,1))
x(2,1) = max(a(2,1), b(2,1))
и т.д.

Второй параметр нельзя пропускать, потому что подразумевается, что там будет имя второго массива.

Все параметры встроенных функций описаны в справке:

или



1



0 / 0 / 0

Регистрация: 19.04.2011

Сообщений: 7

02.05.2011, 23:57

 [ТС]

11

Вот теперь для меня целиком прояснилась ситуация. Очень хорошо и доступно объяснили, за что превелико благодарен. Думаю теперь я в силах привести подробное обоснование решения задачи преподавателю.

Ещё раз спасибо за Вашу отзывчивость и терпение !



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

02.05.2011, 23:57

11

Понравилась статья? Поделить с друзьями:
  • Подклад как найти его в квартире
  • Yakuza 0 как найти макото
  • Как бесплатно составить свой гардероб онлайн
  • Как найти напряжение резистора в параллельном соединении
  • Как правильно найти подход к покупателю