why I get "complex number" for the common calculation?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
vx2008
el 8 de Feb. de 2017
Respondida: John D'Errico
el 8 de Feb. de 2017
RSTR=sum(wt.*log(rt1./rft1));
'wt', 'rt1' and 'rft1' are all real numbers and why 'RSTR' is complex numbers?
Z=log( bsxfun(@rdivide,(1+rt21),(1+rft21)) );
'rt21', and 'rft21' are both real numbers and why 'Z' is complex numbers?
0 comentarios
Respuesta aceptada
John D'Errico
el 8 de Feb. de 2017
There is only one reason why you are getting a complex result there if everything is truly a real number. At least one of the elements of the set of ratios (rt21./rft21) is a negative number. It will take only one such pair that yields something negative.
log(-eps)
ans =
-36.0436533891172 + 3.14159265358979i
As you can see, the log of a negative number, even a very tiny one will have an imaginary part that is i*pi, where i is sqrt(-1).
0 comentarios
Más respuestas (1)
Naty Shemer
el 8 de Feb. de 2017
Most probably (rt1./rft1) is negative and the log output of a negative number is imaginary...
0 comentarios
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!