给定具有维度mxn的矩阵A并且矩阵中的条目位于[0,1]
例如
A = [0.5 0 0 0.5 0
0 0.5 0 0 0.5
1 0 0 0 0]
Run Code Online (Sandbox Code Playgroud)
我想计算sum(sum(a_ij log(a_ij))),其中a_ij是矩阵A中的第i行和第j个col条目.由于矩阵中存在0条目,因此我总是得到NAN.
我如何仅考虑非零项来计算和(sum(a_ij log(a_ij))) [矩阵的熵].
要仅考虑矩阵的特定元素,可以使用逻辑索引.例如,如果您只想选择A的非零条目,则可以使用A(A~=0).因此,对于您的问题,可以编写解决方案:
sum(A(A~=0).*log(A(A~=0)));
Run Code Online (Sandbox Code Playgroud)
编辑:哇,这是一种巧合,我刚刚发布这条评论后看到你的评论.嗯,很高兴你自己解决了这个问题.