Двухмерные количества интервалов гистограммы
[ разделяет значения на N,Xedges,Yedges]
= histcounts2(X,Y)X и Y в 2-D интервалы, и возвращает количества интервалов, а также границы интервала в каждой размерности. The histcounts2 функция использует алгоритм автоматического раскладывания, который возвращает равномерные интервалы, выбранные для покрытия области значений значений в X и Y и выявить базовую форму распределения.
[ разделы 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)] падает в ith bin в последней строке, если 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 bin равно 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
Распределите 1000 пар случайных чисел в интервалы. Задайте границы интервала с двумя векторами: по одному для размерностей 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
Распределите 1000 пар случайных чисел в интервалы. Задайте 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
Распределите 1000 случайных целочисленных пар между -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 задайте 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 | logical
nbins - Количество интервалов в каждой размерностиКоличество интервалов в каждом измерении, заданное как положительное скалярное целое число или двухэлементный вектор положительных целых чисел. Если вы не задаете 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-размерность.
Xedges - Границы интервала по x -размерностиГраницы интервала по x-размеру, заданные как вектор. Xedges(1) является первым ребром первого интервала по x-размеру и Xedges(end) является внешним краем последнего интервала.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Yedges - Границы интервала по y -размерностиГраницы интервала по y-размеру, заданные как вектор. Yedges(1) является первым ребром первого интервала по y-размеру и Yedges(end) является внешним краем последнего интервала.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
[N,Xedges,Yedges] = histcounts2(X,Y,'Normalization','probability') нормализует количества интервалов в N, таким образом sum(N) равен 1.'BinMethod' - Алгоритм раскладывания'auto' (по умолчанию) | 'scott' | 'fd' | 'integers'Алгоритм Биннинга, заданный как одно из значений в этой таблице.
| Значение | Описание |
|---|---|
'auto' | Значение по умолчанию |
'scott' | Правило Скотта оптимально, если данные близки к совместному нормальному распределению. Это правило подходит и для большинства других распределений. В нем используется интервал размером |
'fd' | Правило Фридмена—Диакониса менее чувствительно к выбросам в данных и может быть более подходящим для данных с тяжелохвостыми распределениями. В нем используется интервал размером |
'integers' | Целочисленное правило полезно с целочисленными данными, так как оно создает интервалы с центром на парах целых чисел. Он использует ширину интервала 1 для каждой размерности и помещает границы интервала между целыми числами. Чтобы избежать случайного создания слишком большого количества интервалов, можно использовать это правило для создания предела 1024 интервалов (210). Если область значений данных для любой размерности больше 1024, то целочисленное правило использует более широкие интервалы вместо этого. |
histcounts2 не всегда выбирает количество интервалов, используя эти точные формулы. Иногда количество интервалов немного регулируется так, что границы интервала падают на «приятные» числа.
Пример: [N,Xedges,Yedges] = histcounts2(X,Y,'BinMethod','integers') использует 2-D интервалы с центром на каждой паре целых чисел.
'BinWidth' - Ширина интервалов в каждой размерностиШирина интервалов в каждой размерности, заданная как двухэлементный вектор положительных целых чисел, [xWidth yWidth].
Если вы задаете BinWidth, затем histcounts2 может использовать максимум 1024 интервала (210) вдоль каждой размерности. Если заданная ширина интервала требует больше интервалов, то histcounts2 использует большую ширину интервала, соответствующую максимальному количеству интервалов.
Пример: [N,Xedges,Yedges] = histcounts2(X,Y,'BinWidth',[5 10]) использует интервалы с размером 5 в x-размерность и размер 10 в y-размерность.
'XBinLimits' - Пределы интервала в x -размерностиПределы интервала в x -размерности, заданные как двухэлементный вектор, [xbmin,xbmax]. Вектор указывает первые и последние границы интервала в x -размерности.
Эта опция включает только данные интервалов, которые входят в пределы интервала включительно X>=xbmin & X<=xbmax.
'YBinLimits' - Пределы интервала в y -размерностиПределы интервала в y -размерности, заданные как двухэлементный вектор, [ybmin,ybmax]. Вектор указывает первые и последние границы интервала в y -размерности.
Эта опция включает только данные интервалов, которые входят в пределы интервала включительно Y>=ybmin & Y<=ybmax.
'Normalization' - Тип нормализации'count' (по умолчанию) | 'probability' | 'countdensity' | 'pdf' | 'cumcount' | 'cdf'Тип нормализации, заданный как одно из значений в этой таблице. Для каждого интервала i:
- значение интервала.
количество элементов в интервале.
- площадь каждого интервала, вычисленная с помощью x и y интервалов.
количество элементов во входных данных. Это значение может быть больше, чем привязанные данные, если данные содержат NaN значения, или если некоторые данные находятся вне пределов интервала.
| Значение | Значения в интервале | Примечания |
|---|---|---|
'count' (по умолчанию) |
|
|
'countdensity' |
|
|
'cumcount' |
|
|
'probability' |
|
|
'pdf' |
|
|
'cdf' |
|
|
Пример: [N,Xedges,Yedges] = histcounts2(X,Y,'Normalization','pdf') отбрасывает данные, используя оценку функции плотности вероятностей для X и Y.
N - Количества интерваловБин отсчитывает, возвращается как числовой массив.
Схема включения интервала для различных пронумерованных интервалов в N, а также их относительная ориентация по отношению к x оси и y оси,

Для примера, (1,1) интервал включает значения, которые падают на первое ребро в каждой размерности, а последний интервал в правом нижнем углу включает значения, которые падают на любой из его ребер.
Xedges - Границы интервала по x -размерностиГраницы интервала по x-размеру, возвращенные как вектор. Xedges(1) - первая граница интервала в x -размерность и Xedges(end) - последняя граница интервала.
Yedges - Границы интервала по y -размерностиГраницы интервала по y-размеру, возвращенные как вектор. Yedges(1) - первая граница интервала в y -размерность и Yedges(end) - последняя граница интервала.
binX - Индекс интервала в x -размерностиИндекс интервала в x -размерности, возвращенный в виде числового массива того же размера, что и X. Соответствующие элементы в binX и binY описать нумерованный интервал, содержащее соответствующие значения в X и Y. Значение 0 в binX или binY указывает элемент, который не принадлежит ни одному из интервалов (например, NaN значение).
Для примера, binX(1) и binY(1) опишите размещение интервала для значения [X(1),Y(1)].
binY - Индекс интервала в y -размерностиИндекс интервала в y -размерности, возвращенный в виде числового массива того же размера, что и Y. Соответствующие элементы в binX и binY описать нумерованный интервал, содержащее соответствующие значения в X и Y. Значение 0 в binX или binY указывает элемент, который не принадлежит ни одному из интервалов (например, NaN значение).
Для примера, binX(1) и binY(1) опишите размещение интервала для значения [X(1),Y(1)].
Указания и ограничения по применению:
Генерация кода не поддерживает разреженные матричные входы для этой функции.
Если вы не поставляете границ интервала, то генерация кода может потребовать массивов переменного размера и динамического выделения памяти.
discretize | fewerbins | histcounts | histogram | histogram2 | morebins
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.