Гистограмма графика из вектора отсчетов

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

Например, данные векторов данных

edges = 0:10; % histogram edges for 9 bins
counts = round(normpdf(edges(1:end-1), 5, 2) * 1000) % Generate bin counts

counts =

     9    27    65   121   176   199   176   121    65    27

Я всегда могу генерировать данные искусственно, так как

data = [];
for i = 1:numel(counts)
  % This should be optimised by pre-allocating the data array,
  % but this is only provided as an example.
  data = [data (ones(1, counts(i)) * mean(edges(i:i+1)))];
end

так что numel(data) == sum(counts) и я могу затем построить гистограмму с использованием histogram(data, edges):

enter image description here

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

Я знаю, что я мог бы использовать функцию bar, но я бы предпочел использовать histogram потому что я предпочитаю, как это работает, и функциональность, которую он предлагает.

Редактирование: я использую MATLAB R2015a/R2015b, хотя я бы предпочел поддерживать обратную совместимость с R2015a, если это возможно (я знаю, что были существенные изменения в histogram в R2015b).

+2
источник поделиться
1 ответ

Я не думаю, что вы можете обходить подачу фактических данных объекту Histogram. Функциональность объекта Histogram включает возможность изменения бинов/ребер после факта, и для этого ему необходимо знать его исходные данные.

+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос