Гистограмма Matlab: соединение центров бина - PullRequest
0 голосов
/ 03 октября 2018

просто простой вопрос, но застрял на некоторое время.

Есть ли какие-нибудь подходы, чтобы соединить центр каждой ячейки в виде кривых?

например, enter image description here

Вместо того, чтобы снабдить его распределением, есть ли какой-нибудь более простой способ соединить центр каждой ячейки для формирования кривой?

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

В завершение этого вопроса есть мой последний подход, который в основном совпадает с ответом @ Adriaan.

Вместо работы с индексом и расчетом вручную можно использовать метод свертки, например, такой:

h=histgram(data); hold on;
plot(conv(h.BinEdges, [0.5,0.5],'valid'),h.BinCounts, 'Linewidth',2)
% h.BinCounts provides the data for y axies, while the previous is for x axies.

Документ для функции conv можно найти здесь .

Вот результат: enter image description here

0 голосов
/ 03 октября 2018

Если вы строите данные y, используя histogram(y), вы можете использовать объект histogram, который он может вернуть, чтобы делать то, что вы хотите;

h=histogram(y); hold on;
xvals = (h.BinEdges(2:end)+h.BinEdges(1:end-1))/2;
plot(xvals, h.Values, 'r');

Объект гистограммы содержит значения высоты (количество бинов), а также границы бинов.Поскольку граница на одну ячейку больше, чем на ячейках, и поскольку вы хотите построить каждую точку в центре ячейки, возьмите среднее значение двух ближайших краевых значений ячейки (как я делал при вычислении xvals).

...