我正在尝试手动计算熵,并且存储结果的变量在每次迭代时都获得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的值。
任何帮助表示赞赏。谢谢!