режим

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

Синтаксис

M = mode(A)
M = mode(A,'all')
M = mode(A,dim)
M = mode(A,vecdim)
[M,F] = mode(___)
[M,F,C] = 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.

A = gallery('integerdata',10,[1,3,4],1)
A = 
A(:,:,1) =

    10     8    10


A(:,:,2) =

     6     9     5


A(:,:,3) =

     9     6     1


A(:,:,4) =

     4     9     5

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

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

    10


M(:,:,2) =

     5


M(:,:,3) =

     1


M(:,:,4) =

     4

Эта операция производит 1 массивом 1 на 4 путем нахождения наиболее частого значения вдоль второго измерения. Размер второго измерения уменьшает до 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 = 3x1 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-битного беззнакового целого.

A = gallery('integerdata',10,[1,4],3,'uint16')
A = 1x4 uint16 row vector

   6   3   2   3

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

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

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

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

свернуть все

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

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

Величина для работы, заданная как положительный целый скаляр. Если значение не задано, то по умолчанию это первый размер массива, не равный 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 не подходит для нахождения peaks в дистрибутивах, имеющих несколько режимов.

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

Смотрите также

| | | |

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

Для просмотра документации необходимо авторизоваться на сайте