Bonjour
j'ai besoin de calculer l'entropy mais je n'arrive pas a comprendre pourquoi matlab me fournis un résulta different
exemple:
si je calcule l'entropie avecCode:soit une source discrète à 8 messages a1, a2, a3, a4, a5, a6, a7, a8 avec les probabilités d’apparition respectives {0.16; 0.15; 0.01; 0.05; 0.26; 0.11; 0.14; 0.12}j’obtiens 2.7358Code:somme(-pi*log2(pi))
en revanche si j'utilise matlab
j’obtiens 3Code:E=entropy([0.16 0.15 0.01 0.05 0.26 0.11 0.14 0.12])
j'ai essayé de comprendre ce que fait la fonction matlab mais je n'arrive pas a comprendre
code matlab étape par étape
Code:function E = entropy(varargin) I = ParseInputs(varargin{:}) if ~islogical(I) I = im2uint8(I) end p = imhist(I(:)) p(p==0) = [] p = p ./ numel(I) E = -sum(p.*log2(p))en gros je n'arrive pas a comprendre ce qu'il fait avec "I" et surtout pourquoiCode:function I = ParseInputs(varargin) narginchk(1,1); validateattributes(varargin{1},{'uint8','uint16', 'double', 'logical'},... {'real', 'nonempty', 'nonsparse'},mfilename, 'I',1); I = varargin{1};
-----