Pregunta

Ok, aquí hay un código en MATLAB:

data = [1 1.5 2 3 4 4.5 5 6 7 7 7 0 0 0];

histc(data, [1:1:5])
histc(data, [1:1:5, inf])
histc(data, [-inf, 1:1:5])

que da salida a la siguiente:

ans = 2     1     1     2     1
ans = 2     1     1     2     5     0
ans = 3     2     1     1     2     1

Mi pregunta es, ¿por qué MATLAB devuelve un 0 inútil cuando se utiliza inf en el tamaño del cajón (en el sentido de> = 5 en este caso)?

No ¿Siempre será cero? La ayuda dice que la salida siempre será la misma longitud que el tamaño del cajón, pero no es que una mala especificación en este caso?

¿Fue útil?

Solución

Eso es en realidad el correcto comportamiento de HISTC . Cuando se utiliza la sintaxis:

n = histc(x,edges);

A continuación, a partir de la documentación:

  

n (k) cuenta el valor de x (i) si los bordes (k)   <= X (i)

Por lo tanto, el último valor ventaja que da devuelve el recuento de cuántas cosas exactamente que coincidan. Cuando inf es el último valor de borde, que cuenta 0 (es decir, no hay inf s en los datos). Cuando 5 es el último valor de borde, que coincide exactamente con el valor 1 en los datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top