How does one plot a histogram from the histogram counts?

I have produced an array of counts, specifically produced with:
histcounts
the reason I do this is because storing the actual data is way to expensive in terms of storage. So on the fly I update my histcount. Now that I have them, how do I plot the histogram?
----
demo code:
W_hist_counts = zeros(1,D);
for i=2:iter+1
W = get_vector_we_want_stats(W)
%
W_hist_counts = W_hist_counts + histcounts(W,nbins);
end
----

답변 (2개)

the cyclist
the cyclist 2017년 3월 27일

0 개 추천

The most straightforward way is probably to use the bar command.

댓글 수: 4

there is a weird caveat what the number of hist_counts and edges dont agree when returned by hist_counts. Do you know how to fix this?
If the edges are regularly spaced, this is what I do to create a vector of centers for the bar plot:
e = 1:5 % ‘Edges’ Vector
xt = e(1:end-1)+mean(diff(e))/2 % ‘Midpoint’ Vector
e =
1 2 3 4 5
xt =
1.5 2.5 3.5 4.5
also, bar doesn't accept normalization options. I know histcounts does but that forces me to have all the data before I feed it to histcounts, which I don't have because I am in the real of big data. I can produce statistics (like counts) on the fly but not store the whole thing in matlab.
I assume you want to normalize to an overall sum of 1. You should just be able to plot
W_hist_counts/sum(W_hist_counts)
to normalize, right?

댓글을 달려면 로그인하십시오.

Image Analyst
Image Analyst 2017년 3월 27일

0 개 추천

histogram() can plot the histogram data (counts vs values) if you pass in the counts and values instead of the data. Otherwise you can do it manually with bar().

카테고리

도움말 센터File Exchange에서 Histograms에 대해 자세히 알아보기

제품

태그

질문:

2017년 3월 27일

댓글:

2017년 3월 28일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by