mode

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

Описание

пример

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

Найдите наиболее частые значения этого трехмерные массивы по второму измерению.

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

     2


M(:,:,2) =

     1


M(:,:,3) =

     3


M(:,:,4) =

    10

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

Вычислите режим по первой размерности A.

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

Это возвращает тот же массив, что и A потому что размер первой размерности 1.

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

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 или массивом длительности.

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

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

Размерность dim указывает размерность, длина которого уменьшается до 1. The 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 функция не подходит для нахождения peaks в распределениях, имеющих несколько режимов.

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

.

См. также

| | | |

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