calcule un histogramme
[cf, ind] = histc(n, data [,normalization]) [cf, ind] = histc(x, data [,normalization])
entier positif (nombre de classes)
vecteur croissant définissant les classes (x doit avoir au moins 2 éléments)
vecteur (données à analyser)
vecteur représentant le nombre de valeurs de data
tombant dans les classes définies par n ou x
vecteur ou matrice de même taille que data,
représentant l'appartenance respective de chaque élément de data
aux classes définies par n ou x
scalaire booléen.
normalization=%f (par défaut): cf représente le nombre total de points dans chaque classe,
normalization=%t: cf représente le nombre de points dans chaque classe, relativement au nombre total de points
Cette fonction calcule un histogramme du vecteur data d'après les classes
x. Quand le nombre de classes n est fourni
au lieu de x, les classes sont choisies également espacées et
x(1) = min(data) < x(2) = x(1) + dx < ... < x(n+1) = max(data)
avec dx = (x(n+1)-x(1))/n.
Les classes sont définies par C1 = [x(1), x(2)] et Ci = ( x(i), x(i+1)] pour i >= 2.
Si l'on note Nmax le nombre total de data (Nmax = length(data))
et Ni le nombre d'éléments de data tombant dans
Ci, la valeur de l'histogramme pour x dans
Ci est égal à Ni/(Nmax (x(i+1)-x(i))) quand
"normalized" est séléctionné et sinon, simplement égal à Ni.
Quand la normalisation a lieu, l'histogramme vérifie:

quand x(1)<=min(data) et max(data) <= x(n+1)
// L'échantillon aléatoire gaussien d = rand(1, 10000, 'normal'); [cf, ind] = histc(20, d, normalization=%f) // On utilise histplot pour avoir une représentation graphique clf(); histplot(20, d, normalization=%f); [cf, ind] = histc(20, d) clf(); histplot(20, d); | ![]() | ![]() |

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") | ![]() | ![]() |

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"]); | ![]() | ![]() |

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"]); | ![]() | ![]() |

| Version | Description |
| 5.5.0 | Introduction |