exponenta event banner

способ

Наиболее частые значения в массиве

Описание

пример

M = mode(A) возвращает пример режима A, которое является наиболее часто встречающимся значением в A. Когда существует несколько значений, встречающихся одинаково часто, mode возвращает наименьшее из этих значений. Для комплексных входных данных наименьшее значение является первым значением в отсортированном списке.

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

  • Если A является непустой матрицей, то mode(A) возвращает вектор строки, содержащий режим каждого столбца A.

  • Если A является пустой матрицей 0 на 0, mode(A) прибыль NaN.

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

пример

M = mode(A,'all') вычисляет режим по всем элементам A. Этот синтаксис действителен для MATLAB ® версий R2018b и более поздних.

пример

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

пример

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

пример

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

пример

[M,F,C] = mode(___) также возвращает массив ячеек C того же размера, что и M и F. Каждый элемент C является отсортированным вектором всех значений, которые имеют ту же частоту, что и соответствующий элемент M.

Примеры

свернуть все

Определите матрицу 3 на 4.

A = [3 3 1 4; 0 0 1 1; 0 1 2 4]
A = 3×4

     3     3     1     4
     0     0     1     1
     0     1     2     4

Найдите наиболее частое значение каждого столбца.

M = mode(A)
M = 1×4

     0     0     1     4

Определите матрицу 3 на 4.

A = [3 3 1 4; 0 0 1 1; 0 1 2 4]
A = 3×4

     3     3     1     4
     0     0     1     1
     0     1     2     4

Найдите наиболее частое значение каждой строки.

M = mode(A,2)
M = 3×1

     3
     0
     0

Создание массива целых чисел 1 на 3 на 4 между 1 и 10.

rng('default')
A = randi(10,[1,3,4])
A = 
A(:,:,1) =

     9    10     2


A(:,:,2) =

    10     7     1


A(:,:,3) =

     3     6    10


A(:,:,4) =

    10     2    10

Найдите наиболее частые значения этого массива 3-D вдоль второго измерения.

M = mode(A)
M = 
M(:,:,1) =

     2


M(:,:,2) =

     1


M(:,:,3) =

     3


M(:,:,4) =

    10

Эта операция производит множество 1 на 1 на 4, находя самую частую стоимость вдоль второго измерения. Размер второго размера уменьшается до 1.

Вычислите режим вдоль первого размера A.

M = mode(A,1);
isequal(A,M)
ans = logical
   1

Возвращает тот же массив, что и A поскольку размер первого измерения равен 1.

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

A(:,:,1) = [2 4; 2 1];
A(:,:,2) = [6 2; 3 3];
A(:,:,3) = [4 4; 7 4];
M1 = mode(A,[1 2])
M1 = 
M1(:,:,1) =

     2


M1(:,:,2) =

     3


M1(:,:,3) =

     4

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

M2 = mode(A,[1 2 3])
M2 = 4
Mall = mode(A,'all')
Mall = 4

Определите матрицу 3 на 4.

A = [3 3 1 4; 0 0 1 1; 0 1 2 4]
A = 3×4

     3     3     1     4
     0     0     1     1
     0     1     2     4

Найдите наиболее частое значение каждого столбца, а также как часто оно встречается.

[M,F] = mode(A)
M = 1×4

     0     0     1     4

F = 1×4

     2     1     2     2

F(1) является 2 с тех пор M(1) встречается дважды в первом столбце.

Определите матрицу 3 на 4.

A = [3 3 1 4; 0 0 1 1; 0 1 2 4]
A = 3×4

     3     3     1     4
     0     0     1     1
     0     1     2     4

Найдите наиболее частое значение каждой строки, как часто оно встречается и какие значения в этой строке встречаются с одинаковой частотой.

[M,F,C] = mode(A,2)
M = 3×1

     3
     0
     0

F = 3×1

     2
     2
     1

C=3×1 cell array
    {[       3]}
    {2x1 double}
    {4x1 double}

C{2} - вектор 2 на 1 [0;1] так как значения 0 и 1 во втором ряду происходят с частотой F(2).

C{3} является вектором 4 на 1 [0;1;2;4] так как все значения в третьей строке встречаются с частотой F(3).

Определите вектор 1 на 4 из 16-битных беззнаковых целых чисел.

rng('default')
A = randi(10,[1,4],'uint16')
A = 1x4 uint16 row vector

    9   10    2   10

Найдите наиболее частое значение, а также количество его появления.

[M,F] = mode(A)
M = uint16
    10
F = 2
class(M)
ans = 
'uint16'

M является тем же классом, что и вход, A.

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

свернуть все

Входной массив, заданный как вектор, матрица или многомерный массив. A может быть числовым массивом, категориальным массивом, массивом datetime или массивом duration.

NaN или NaT (Не время) значения во входном массиве, A, игнорируются. Неопределенные значения в категориальных массивах аналогичны NaNs в числовых массивах.

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

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

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

  • Если dim = 1, то mode(A,1) возвращает вектор строки, содержащий наиболее частое значение в каждом столбце.

  • Если dim = 2, то mode(A,2) возвращает вектор столбца, содержащий наиболее частое значение в каждой строке.

mode прибыль A если dim больше, чем ndims(A).

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

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

Рассмотрите входное множество 2 на 3 на 3, A. Тогда mode(A,[1 2]) возвращает множество 1 на 1 на 3, элементы которого - способы каждой страницы A.

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

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

свернуть все

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

Класс M совпадает с классом входного массива, A.

Частотный массив, возвращаемый как скаляр, вектор, матрица или многомерный массив. Размер F совпадает с размером M, и каждый элемент F представляет количество вхождений соответствующего элемента M.

Класс F всегда double.

Наиболее частые значения с кратностью, возвращаемые в виде массива ячеек. Размер C совпадает с размером M и F, и каждый элемент C - сортированный вектор столбца всех значений, которые имеют ту же частоту, что и соответствующий элемент M.

Совет

  • mode наиболее полезна функция с дискретными или скругленными данными. Режим непрерывного распределения вероятности определяется как пик его функции плотности. Применение mode функция для выборки из этого распределения вряд ли даст хорошую оценку пика; было бы лучше вычислить гистограмму или оценку плотности и вычислить пик этой оценки. Также, mode функция не подходит для нахождения пиков в распределениях, имеющих несколько режимов.

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

.

См. также

| | | |

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