histcounts2

Количества интервала двумерной гистограммы

Синтаксис

[N,Xedges,Yedges] = histcounts2(X,Y)
[N,Xedges,Yedges] = histcounts2(X,Y,nbins)
[N,Xedges,Yedges] = histcounts2(X,Y,Xedges,Yedges)
[N,Xedges,Yedges] = histcounts2(___,Name,Value)
[N,Xedges,Yedges,binX,binY] = histcounts2(___)

Описание

пример

[N,Xedges,Yedges] = histcounts2(X,Y) делит значения в X и Y в 2D интервалы, и возвращает количества интервала, а также края интервала в каждой размерности. Функция histcounts2 использует автоматический алгоритм раскладывания, который возвращает универсальные интервалы, выбранные, чтобы покрыть область значений значений в X и Y и показать базовую форму распределения.

пример

[N,Xedges,Yedges] = histcounts2(X,Y,nbins) задает количество интервалов, чтобы использовать в каждой размерности.

пример

Разделы [N,Xedges,Yedges] = histcounts2(X,Y,Xedges,Yedges) X и Y в интервалы с краями интервала, заданными Xedges и Yedges.

N(i,j) считает значение [X(k),Y(k)] если Xedges(i)X(k) <Xedges(i+1) и Yedges(j)Y(k) <Yedges(j+1). Последние интервалы в каждой размерности также включают последний (внешний) край. Например, [X(k),Y(k)] попадает в i th интервал в последней строке если Xedges(end-1)X(k)Xedges(end) и Yedges(i)Y(k) <Yedges(i+1).

пример

[N,Xedges,Yedges] = histcounts2(___,Name,Value) использует дополнительные опции, заданные одним или несколькими аргументами пары Name,Value с помощью любого из входных параметров в предыдущих синтаксисах. Например, можно задать 'BinWidth' и двухэлементный вектор, чтобы настроить ширину интервалов в каждой размерности.

пример

[N,Xedges,Yedges,binX,binY] = histcounts2(___) также возвращает индексные массивы binX и binY, с помощью любого из предыдущих синтаксисов. binX и binY являются массивами, одного размера как X и Y, элементы которого являются индексами интервала для соответствующих элементов в X и Y. Число элементов в (i,j) th интервал равно nnz(binX==i & binY==j), который совпадает с N(i,j), если Normalization является 'count'.

Примеры

свернуть все

Распределите 100 пар случайных чисел в интервалы. histcounts2 автоматически выбирает соответствующую ширину интервала, чтобы показать базовое распределение данных.

x = randn(100,1);
y = randn(100,1);
[N,Xedges,Yedges] = histcounts2(x,y)
N = 7×6

     0     0     0     2     0     0
     1     2    10     4     0     0
     1     4     9     9     5     0
     1     4    10    11     5     1
     1     4     6     3     1     1
     0     0     1     2     0     0
     0     0     1     0     1     0

Xedges = 1×8

    -3    -2    -1     0     1     2     3     4

Yedges = 1×7

    -3    -2    -1     0     1     2     3

Распределите 10 пар чисел в 12 интервалов. Задайте 3 интервала в x-размерности и 4 интервала в y-размерности.

x = [1 1 2 3 2 2 1 1 2 3];
y = [5 6 3 8 9 1 2 7 5 1];
nbins = [3 4];
[N,Xedges,Yedges] = histcounts2(x,y,nbins)
N = 3×4

     1     0     2     1
     1     1     1     1
     1     0     0     1

Xedges = 1×4

    0.6000    1.4000    2.2000    3.0000

Yedges = 1×5

         0    2.3000    4.6000    6.9000    9.2000

Распределите 1 000 пар случайных чисел в интервалы. Задайте края интервала с двумя векторами: один каждый для размерностей x и y. Первый элемент в каждом векторе задает первый край первого интервала, и последний элемент является последним краем последнего интервала.

x = randn(1000,1);
y = randn(1000,1);
Xedges = -5:5;
Yedges = [-5 -4 -2 -1 -0.5 0 0.5 1 2 4 5];
N = histcounts2(x,y,Xedges,Yedges)
N = 10×10

     0     0     0     0     0     0     0     0     0     0
     0     0     0     0     1     1     1     0     0     0
     0     0     5     5     3     5     1     2     0     0
     0     2    19    23    29    25    26    20     5     0
     0    10    36    51    59    71    54    46    10     0
     0     7    43    46    79    64    60    46     9     0
     0     3    12    18    21    23    19     9     6     0
     0     0     5     3     2     8     2     2     0     0
     0     0     0     1     1     1     0     0     0     0
     0     0     0     0     0     0     0     0     0     0

Распределите 1 000 пар случайных чисел в интервалы. Задайте Normalization, когда 'probability', чтобы нормализовать интервал считает таким образом, что sum(N(:)) является 1. Таким образом, каждое количество интервала представляет вероятность, что наблюдение находится в пределах того интервала.

x = randn(1000,1);
y = randn(1000,1);
[N,Xedges,Yedges] = histcounts2(x,y,6,'Normalization','probability')
N = 6×6

         0         0    0.0020    0.0020         0         0
         0    0.0110    0.0320    0.0260    0.0070    0.0010
    0.0010    0.0260    0.1410    0.1750    0.0430    0.0060
         0    0.0360    0.1620    0.1940    0.0370    0.0040
         0    0.0040    0.0300    0.0370    0.0100    0.0010
         0    0.0030    0.0040    0.0040    0.0010         0

Xedges = 1×7

   -4.0000   -2.7000   -1.4000   -0.1000    1.2000    2.5000    3.8000

Yedges = 1×7

   -4.0000   -2.7000   -1.4000   -0.1000    1.2000    2.5000    3.8000

Распределите 1 000 случайных целочисленных пар между-10 и 10 в интервалы и задайте BinMethod как 'integers', чтобы использовать интервалы модульной ширины, центрируемые на целых числах. Задайте пять выходных параметров для histcounts2, чтобы возвратить векторы, представляющие размещение интервала данных.

x = randi([-10,10],1000,1);
y = randi([-10,10],1000,1);
[N,Xedges,Yedges,binX,binY] = histcounts2(x,y,'BinMethod','integers');

Определите, в какой интервал значение (x(3),y(3)) падает.

[x(3),y(3)]
ans = 1×2

    -8    10

bin = [binX(3) binY(3)]
bin = 1×2

     3    21

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

свернуть все

Данные, чтобы распределить среди интервалов, заданных в качестве отдельных аргументов векторов, матриц или многомерных массивов. X и Y должны иметь тот же размер.

Соответствующие элементы в X и Y задают координаты x и y точек 2D данных, [X(k),Y(k)]. Типы данных X и Y могут отличаться.

histcounts2 игнорирует все значения NaN. Точно так же histcounts2 игнорирует Inf и значения -Inf, если края интервала явным образом не задают Inf или -Inf как край интервала.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Количество интервалов в каждой размерности, заданной как положительный скалярный целочисленный или двухэлементный вектор положительных целых чисел. Если вы не задаете nbins, то histcounts2 автоматически вычисляет сколько интервалов, чтобы использовать на основе значений в X и Y:

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

  • Если nbins является вектором, то nbins(1) задает количество интервалов в x-размерности, и nbins(2) задает количество интервалов в y-размерности.

Пример: [N, Xedges, Yedges] = histcounts2 (X, Y, [15 20]) использует 15 интервалов в x-размерности и 20 интервалов в y-размерности.

Края интервала в x-размерности, заданной как вектор. Xedges(1) является первым краем первого интервала в x-размерности, и Xedges(end) является внешним краем последнего интервала.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Края интервала в y-размерности, заданной как вектор. Yedges(1) является первым краем первого интервала в y-размерности, и Yedges(end) является внешним краем последнего интервала.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Имя должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: [N, Xedges, Yedges] = histcounts2 (X, Y, 'Нормализация', 'вероятность') нормализует количества интервала в N, таком, что сумма (N) равняется 1.

Алгоритм раскладывания, заданный как одно из значений в этой таблице.

ЗначениеОписание
'auto'

Алгоритм 'auto' по умолчанию выбирает, ширина интервала, чтобы покрыть данные располагаются и показывают форму базового распределения.

'scott'

Правило Скотта оптимально, если данные близко к тому, чтобы быть совместно нормально распределенным. Это правило подходит для большинства других дистрибутивов, также. Это использует размер интервала [3.5*std(X(:))*numel(X)^(-1/4), 3.5*std(Y(:))*numel(Y)^(-1/4)].

'fd'

Правило Фридмена—Диакониса менее чувствительно к выбросам в данных и может более подойти для данных с дистрибутивами с тяжелым хвостом. Это использует размер интервала [2*IQR(X(:))*numel(X)^(-1/4), 2*IQR(Y(:))*numel(Y)^(-1/4)], где IQR является межквартильным размахом.

Целые числа

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

Чтобы постараться не случайно создавать слишком много интервалов, можно использовать это правило, чтобы создать предел 1 024 интервалов (210). Если область значений данных для любой размерности больше, чем 1 024, то целочисленное правило использует более широкие интервалы вместо этого.

Пример: [N, Xedges, Yedges] = histcounts2 (X, Y, 'BinMethod', 'целые числа') использует 2D интервалы, центрируемые на каждой паре целых чисел.

Ширина интервалов в каждой размерности, заданной как двухэлементный вектор положительных целых чисел, [xWidth yWidth].

Если вы задаете BinWidth, то histcounts2 может использовать максимум 1 024 интервалов (210) по каждому измерению. Если заданная ширина интервала требует большего количества интервалов, то histcounts2 использует большую ширину интервала, соответствующую максимальному количеству интервалов.

Пример: [N, Xedges, Yedges] = histcounts2 (X, Y, 'BinWidth', [5 10]) использует интервалы с размером 5 в x-размерности и размере 10 в y-размерности.

Интервал ограничивает в x-размерности, заданной как двухэлементный вектор, [xbmin,xbmax]. Вектор указывает на первые и последние края интервала в x-размерности.

Эта опция только данные интервалов, который находится в пределах пределов интервала включительно, X>=xbmin & X<=xbmax.

Интервал ограничивает в y-размерности, заданной как двухэлементный вектор, [ybmin,ybmax]. Вектор указывает на первые и последние края интервала в y-размерности.

Эта опция только данные интервалов, который находится в пределах пределов интервала включительно, Y>=ybmin & Y<=ybmax.

Тип нормализации, заданной как одно из значений в этой таблице. Для каждого интервала i:

  • vi является значением интервала.

  • ci является числом элементов в интервале.

  • Ai=wxi⋅wyi является областью каждого интервала, вычисленное использование ширин интервала x и y.

  • N является числом элементов во входных данных. Это значение может быть больше, чем сгруппированные данные, если данные содержат значения NaN, или если некоторые данные находятся вне пределов интервала.

ЗначениеЗначения интервалаПримечания
'count' (значение по умолчанию)

vi=ci

  • Количество или частота наблюдений.

  • Сумма значений интервала меньше чем или равна numel(X) и numel(y). Сумма является меньше, чем numel(X) только, когда некоторые входные данные не включены в интервалы.

'countdensity'

vi=ciAi

  • Количество или частота, масштабируемая областью интервала.

  • Сумма объемов интервала, (N значение * область интервала), меньше чем или равна numel(X) и numel(Y).

'cumcount'

vi = j=1icj

  • Совокупное количество. Каждое значение интервала является совокупным числом наблюдений в каждом интервале и всех предыдущих интервалах в обоих размерности x и y.

  • N(end,end) меньше чем или равен numel(X) и numel(Y).

'probability'

vi=ciN

  • Относительная вероятность.

  • sum(N(:)) меньше чем или равен 1.

'pdf'

vi=ciN⋅Ai

  • Оценка функции плотности вероятности.

  • Сумма объемов интервала, (N значение * область интервала), меньше чем или равна 1.

'cdf'

vi =  j=1icjN

  • Совокупная оценка функции плотности.

  • N(end,end) меньше чем или равен 1.

Пример: [N, Xedges, Yedges] = histcounts2 (X, Y, 'Нормализация', 'PDF') интервалы данные с помощью функции плотности вероятности оценивают для X и y.

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

свернуть все

Количества интервала, возвращенные как числовой массив.

Схема включения интервала различных пронумерованных интервалов в N, а также их относительная ориентация к оси X и оси Y,

Например, интервал (1,1) включает значения, которые падают на первый край в каждой размерности, и последний интервал в правом нижнем включает значения, которые падают на любой из его краев.

Края интервала в x-размерности, возвращенной как вектор. Xedges(1) является первым краем интервала в x-размерности, и Xedges(end) является последним краем интервала.

Края интервала в y-размерности, возвращенной как вектор. Yedges(1) является первым краем интервала в y-размерности, и Yedges(end) является последним краем интервала.

Индекс интервала в x-размерности, возвращенной как числовой массив, одного размера как X. Соответствующие элементы в binX и binY описывают, который пронумеровал интервал, содержит соответствующие значения в X и Y. Значение 0 в binX или binY указывает на элемент, который не принадлежит ни одному из интервалов (таких как значение NaN).

Например, binX(1) и binY(1) описывают размещение интервала для значения [X(1),Y(1)].

Индекс интервала в y-размерности, возвращенной как числовой массив, одного размера как Y. Соответствующие элементы в binX и binY описывают, который пронумеровал интервал, содержит соответствующие значения в X и Y. Значение 0 в binX или binY указывает на элемент, который не принадлежит ни одному из интервалов (таких как значение NaN).

Например, binX(1) и binY(1) описывают размещение интервала для значения [X(1),Y(1)].

Введенный в R2015b

Была ли эта тема полезной?