Info

此问题已关闭。 请重新打开它进行编辑或回答。

Question about 'histc' expression

1 次查看(过去 30 天)
Mary
Mary 2011-10-27
关闭: MATLAB Answer Bot 2021-8-20
hello, i have a general question about the histogram function ('hist'/'histc').
i use a histogram to plot my data. my data are basically vectors of different length and i need to know how many of the vectors will contribute a value to each bin (in the first bins all vectors will contribute, whereas in the later ones, hardly any will contribute). i found some code from someones which addresses this problem and the script runs, but i don't quite understand what it exactly does and if it really does what i want. if someone could 'translate' the expression, i'd be really grateful:
p = (histc (ts, edges))/(length(ts)*binsize))
thanks a lot in advance!
  1 个评论
Jan
Jan 2011-10-27
Without seeing the definition of "edges", "ts" and "binsize" we had to guess. This will not be very helpful. Please edit your question and insert the necessary details.

回答(2 个)

the cyclist
the cyclist 2011-10-27
As Jan mentions, we don't have all the details, so there is some guessing involved, but here is what I would conclude based on what you have told us.
As you can learn from reading "doc histc", the histc() command is going to give bin counts based on your data (your variable "ts") and the definition of the bin edges (your variable "edges".)
This code looks like might be trying to convert those counts into some kind of normalized count, or possibly the probability density function, by dividing by the expected. It's not possible to be certain, without knowing what "binsize" is. If "p" always sums to approximately "1", then it's probably the pdf.
  1 个评论
Jan
Jan 2011-10-27
I still hope that some of the posters can be motivated to add the necessary details. So I did not dare to guess. You did. +1

Mary
Mary 2011-10-28
i use a histogram to plot my data. my data are basically vectors of different length and i need to know how many of the vectors will contribute a value to each bin (in the first bins all vectors will contribute, whereas in the later ones, hardly any will contribute). i found some code from someones which addresses this problem and the script runs, but i don't quite understand what it exactly does and if it really does what i want. if someone could 'translate' the expression, i'd be really grateful:
p = (histc (ts, edges))/(length(ts)*binsize))
thanks a lot in advance!
--------------------------------------------------------
sorry for not giving enough information on my problem. but thank you already for your answers.
so here's a more complete excerpt from the code:
for u = 1:length (Class.Condition01)
ts = Class.Condition01(1,u).ts;
p = (histc (ts, edges))/(length(ts)*binsize);
end
binsize = 0.01
edges = [-0.5:0.01:7]
ts is a vector in which my data is stored.
In the structure "Class.Condition01" several vectors of different length are stored.
As you have guessed, I want to do a normalization. In every loop, I need to divide the count in every bin by the number of vectors which have contributed values to a bin. And I'm really not sure if the term "/(length(ts)*binsize)" is doing that, because I don't quite understand what the term does to the histc expression. If you could explain to me what it does, I'd be very grateful. And if you have a suggestion to how I do the normalization properly, I'd also be very grateful. :)
  2 个评论
Jan
Jan 2011-10-28
Please add details by adding the original question. This is a section for answers.

此问题已关闭。

Community Treasure Hunt

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

Start Hunting!

Translated by