Domanda

Ok, ecco qualche codice in 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])

che emette il seguente:

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

La mia domanda è, perché MATLAB restituisce un inutile 0 quando si utilizza inf nella dimensione bin (per significare> = 5 in questo caso)?

Non Sarà sempre pari a zero? L'aiuto dice che l'uscita sarà sempre la stessa lunghezza del formato bin, ma non è che un cattivo spec in questo caso?

È stato utile?

Soluzione

Questo è in realtà il comportamento corretto di HISTC . Quando si utilizza la sintassi:

n = histc(x,edges);

dunque, dalla documentazione:

  

n (k) conta il valore x (i) se i bordi (k)   <= X (i)

Quindi, l'ultimo valore bordo si dà restituisce il conteggio di quante cose esattamente abbinarlo. Quando inf è l'ultimo valore bordo, che conta 0 (vale a dire non ci sono inf s nei dati). Quando 5 è l'ultimo valore bordo, che corrisponda esattamente 1 valore nei dati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top