HISTC를 잘못 사용하고 있습니까, 아니면 Matlab의 잘못입니까?
문제
좋아, 여기 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 값과 정확히 일치합니다.
제휴하지 않습니다 StackOverflow