エラー発生について
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
sz
am 28 Okt. 2021
Bearbeitet: Atsushi Ueno
am 28 Okt. 2021
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 Kommentare
Akzeptierte Antwort
Hernia Baby
am 28 Okt. 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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Dictionaries finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!