Я пытаюсь вычислить энтропию вручную, и моя переменная для сохранения результата получает значение NaN на каждой итерации.У меня есть следующий фрагмент кода в функции Matlab -
entropy = 0.0;
%Calculating entropy...
for i = 1:size(freq_norm)
val = freq_norm(i);
val_log = log2(val);
mul = val * val_log;
entropy = entropy - mul;
disp(['VALUE: ',num2str(entropy)]);
end
Здесь freq_norm - это вектор, который состоит из значений, сумма которых равна 1 (например, PDF).У меня точно такой же фрагмент в другой части программы, которая имеет значения 1: 6 и работает отлично.Я также распечатал все значения val, val_log, mul
, и ни одно из них не является NaN и напечатано, как ожидалось.mul
содержит значения, которые приблизительно равны -0,05.
Любая помощь приветствуется.Спасибо!