エラー発生について
    1 visualización (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    sz
 el 28 de Oct. de 2021
  
    
    
    
    
    Editada: Atsushi Ueno
      
 el 28 de Oct. de 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 comentarios
Respuesta aceptada
  Hernia Baby
      
 el 28 de Oct. de 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 comentarios
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
