エラー発生について
8 views (last 30 days)
Show older comments
A = [0.15 0.14 0 0.1 0.19 0.1 0.23 0.09];
SCE = sum(-1.*A.*log2(A))
このような計算をするとSCE部分がNaNというのが出てきてエラーになってしまいます。
Aの合計を1にするようにしていて
A = [0.15 0.14 0.1 0.1 0.19 0.1 0.13 0.09];
SCE = sum(-1.*A.*log2(A))
にすると普通に計算出来るのでAに0があるとエラーが出るのだと思うのですが、
どのようにすればエラーが起きず普通に計算出来るかが分からない為、教えていただきたいです。
0 Comments
Accepted Answer
Hernia Baby
on 28 Oct 2021
-1*0*log2(0)が不定形のため、NaNが返されます。
-1*0*log2(0)
オプションでNaNがある部分を無視する方法が解決案として挙げられます。
A=[0.15, 0.14, 0, 0.1, 0.19, 0.1, 0.23, 0.09]
SCE = sum(-1.*A.*log2(A))
SCE1 = sum(-1.*A.*log2(A),'omitnan')
0 Comments
More Answers (0)
See Also
Categories
Find more on Dictionaries in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!