문제

좋아, 여기 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])

다음을 출력합니다.

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

내 질문은 왜 BIN 크기에서 INF를 사용할 때 Matlab이 쓸모없는 0을 반환합니까 (이 경우 평균> = 5)?

항상 0이되지 않습니까? 도움말에 따르면 출력은 항상 빈 크기와 같은 길이가 될 것이라고 말하지만이 경우 사양이 잘못 되었습니까?

도움이 되었습니까?

해결책

그것은 실제로 올바른 행동입니다 HISTC. 구문을 사용할 때 :

n = histc(x,edges);

그런 다음 문서에서 :

n (k)는 가장자리 (k) <= x (i) <edges (k+1)이면 x (i)를 계산합니다. 마지막 빈은 가장자리 (끝) 일치하는 X의 값을 계산합니다.

따라서, 당신이 제공하는 마지막 가장자리 값은 몇 가지의 수를 반환합니다. 바로 그거죠 일치합니다. 언제 inf 0을 계산하는 마지막 모서리 값입니다 (즉, inf데이터에서 s). 5가 마지막 에지 값이면 데이터의 1 값과 정확히 일치합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top