我在Excel中有一个矩阵。我需要规范化行,然后计算每行的熵(将其视为概率分布)。
例如假设我的矩阵是:
2 0 3 5
0 1 0 0
1 0 3 2
在行标准化之后,矩阵变为:
0.2000 0 0.3000 0.5000
0 1.0000 0 0
0.1667 0 0.5000 0.3333
假设每一行都是概率分布,每行的熵是:
1.0297
0
1.0114
我想计算上面的熵值而不产生中间行标准化矩阵。
可以在Excel中执行此操作吗?
注意:概率分布的熵定义为:
H(X) = sum over all x {-p(x) * log(p(x))}
答案 0 :(得分:5)
如果A1中有原始矩阵:D3在F1中尝试此公式
=SUM(-A1:D1/SUM(A1:D1)*IF(A1:D1<>0,LN(A1:D1/SUM(A1:D1))))
使用CTRL + SHIFT + ENTER确认(以便在公式栏中的公式周围显示花括号)
复制到F3
答案 1 :(得分:1)
假设你的熵是由x ln x定义的,我建议如下: