Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
histc
computes an histogram
Syntax
[cf, ind] = histc(n, data [,normalization]) [cf, ind] = histc(x, data [,normalization])
Arguments
- n
positive integer (number of classes)
- x
increasing vector defining the classes (
x
may have at least 2 components)- data
vector (data to be analysed)
- cf
vector representing the number of values of
data
falling in the classes defined byn
orx
- ind
vector or matrix of same size as
data
, representing the respective belonging of each element of datadata
to the classes defined byn
orx
- normalization
scalar boolean.
normalization=%t (default)
:cf
represents the number of points in each class, relatively to the total number of points,normalization=%f
:cf
represents the total number of points in each class
Description
This function computes a histogram of the data
vector using the
classes x
. When the number n
of classes is provided
instead of x
, the classes are chosen equally spaced and
x(1) = min(data) < x(2) = x(1) + dx < ... < x(n+1) = max(data)
with dx = (x(n+1)-x(1))/n.
The classes are defined by C1 = [x(1), x(2)]
and Ci = ( x(i), x(i+1)]
for i >= 2.
Noting Nmax
the total number of data
(Nmax = length(data))
and Ni
the number of data
components falling in
Ci
, the value of the histogram for x
in
Ci
is equal to Ni/(Nmax (x(i+1)-x(i))) when
"normalized"
is selected and else, simply equal to Ni.
When normalization occurs the histogram verifies:
![](/docs/6.0.1/en_US/_LaTeX_histc.xml_1.png)
when x(1)<=min(data) and max(data) <= x(n+1)
Examples
- Example #1: variations around a histogram of a gaussian random sample
// The gaussian random sample d = rand(1, 10000, 'normal'); [cf, ind] = histc(20, d, normalization=%f) // We use histplot to show a graphic representation clf(); histplot(20, d, normalization=%f); [cf, ind] = histc(20, d) clf(); histplot(20, d);
- Example #2: histogram of a binomial (B(6,0.5)) random sample
d = grand(1000,1,"bin", 6, 0.5); c = linspace(-0.5,6.5,8); clf() subplot(2,1,1) [cf, ind] = histc(c, d) histplot(c, d, style=2); xtitle(_("Normalized histogram")) subplot(2,1,2) [cf, ind] = histc(c, d, normalization=%f) histplot(c, d, normalization=%f, style=5); xtitle(_("Non normalized histogram"))
- Example #3: histogram of an exponential random sample
lambda = 2; X = grand(100000,1,"exp", 1/lambda); Xmax = max(X); [cf, ind] = histc(40, X) clf() histplot(40, X, style=2); x = linspace(0, max(Xmax), 100)'; plot2d(x, lambda*exp(-lambda*x), strf="000", style=5) legend([_("exponential random sample histogram") _("exact density curve")]);
- Example #4: the frequency polygon chart and the histogram of a gaussian random sample
n = 10; data = rand(1, 1000, "normal"); [cf, ind] = histc(n, data) clf(); histplot(n, data, style=12, polygon=%t); legend([_("normalized histogram") _("frequency polygon chart")]);
See also
History
Version | Description |
5.5.0 | Introduction |
Report an issue | ||
<< covar | Descriptive Statistics | median >> |