2013-11-09 3 views
3

Matlab entropy() 함수를 사용하여 표준 정규 확률 변수 벡터의 엔트로피를 계산하면 actual entropy0.5 * log(2*pi*e*sigma^2)이되어야하지만 4는 어딘가에서 답을 얻습니다. 대략 1.4와 같다.정규 RV에서 Matlab 'entropy()'

어디에서 불일치가 발생하는지 아는 사람이 있습니까?

참고 : 여기에 시간을 절약하기 위해이 MATLAB 코드

for i = 1:1000 
    X(i) = randn(); 
end 

'The entropy of X is' 

entropy(X) 
+1

당신은'X = randn (1000,1);'할 수 있습니다 :하지만 : "엔트로피는 논리 배열을 위해서 IMHIST에 2 개의 bin을 사용하고 uint8, double 또는 uint16 배열에 256 개의 bin을 사용합니다." – chappjc

+1

@Masi 256 부분은 난수 생성과 관련이 없습니다. horchler의 대답의 두 번째 단락을 참조하십시오. – chappjc

+0

@chappjc 여기에서 링크 된 대답을 시도하고 실험했습니다. http://stackoverflow.com/a/16529739/54964 –

답변

3

도움 (help entropy) 또는 entropy에 대한 documentation을 읽어 보시기 바랍니다있다. 이미지를 위해 설계되었으며 분석적으로 계산하지 않고 히스토그램 기법을 사용하는 것을 볼 수 있습니다. Wikipedia의 수식을 원하면 고유 한 함수를 만들어야하지만 수식은 너무 간단하므로 문제가되지 않습니다.

그와 같은 분기점적인 대답을 얻는 이유는 entropy은 히스토그램의 빈을 요소 수만큼 조정한다는 것입니다. 이러한 추정 기법을 사용하려면 hist을 사용하고 영역별로 저장 용량을 조정해야합니다. this StackOverflow question을 참조하십시오.

+1

@Masi : 질문의 정확한 성격이 분명하지 않습니다. 이 문제를 재현하는 코드 없이는 도움이되지 않습니다. 아마도 새로운 질문을 던지십시오. 어쨌든, ['hist'] (http://www.mathworks.com/help/matlab/ref/hist.html)는 이제 더 이상 사용되지 않으며 MathWorks는 ['histogram'] (http : // www 대신 .mathworks.com/help/matlab/ref/histogram.html)를 참조하십시오. 따라서 최신 버전의 Matlab을 사용하고 있다면 히스토그램을 사용하도록 코드를 다시 작성해야합니다. – horchler

+0

'가장자리 '를 사용하여 엔트로피를'센터 '와 비슷하게 계산할 수 있습니까? 나는 그것이 가능해야한다고 생각하지만 0.06 %의 차이를 유지. –