MATLAB Answers


how can we represent the histogram of a vector without using the hist function ?

Asked by jan
on 11 May 2013

hi every body how can I represent the histogram of a data vector without using the hist function ? thanks

  1 Comment

Yet another series of hints:

 doc accumarray

You could think of a solution where you generate the subs argument by using CEIL on the quotient of your dataset and a relevant factor (related to the size of bins); and you use a vector of ones (sized appropriately) as the val argument.



No products are associated with this question.

6 Answers

Answer by the cyclist
on 11 May 2013

You could use the bar() function.


Answer by jan
on 11 May 2013

no what i mean that i dont want to represent it with bars but only line that represent the distribution of my data(in vector)


Answer by Image Analyst
on 11 May 2013

You would essentially have to program up the internals of the histogram function yourself. Very, very easy to do, once you've decided on your bin edge locations. Just think it through in your head and I'm sure you'll know what the code needs to be. It's fairly trivial, so you probably won't need any help.


Answer by Andrei Bobrov
on 11 May 2013


X = randi(20,40,1);
ii = [-inf 0:4:20 inf]
out = sum(bsxfun(@lt,X,ii(2:end))&bsxfun(@ge,X,ii(1:end-1)))


Answer by jan
on 11 May 2013

THANKS andrei Bobrov for the response but i need not to use the histc function because i want to represent my data without bars only line


This should have been a comment to Andrei, rather than an "Answer" to your original question. So am I to assume that programming up your own histogram, like I suggested, is too challenging for you?

I deleted two less-than-constructive comments here.

@jan: It really makes it easier for other people to follow if, as Image Analyst suggests, you add your reply to an answer as a comment, rather than as a new answer.

Answer by Teja Muppirala
on 14 May 2013

Is it that you just don't want the bar graph that comes up with HIST? If you call it with output arguments, you can get the values without the bar graph.

Then you can just plot those as a line.

data = randn(1,10000);
[N,X] = hist(data,30);


Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!