why I get "complex number" for the common calculation?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
vx2008
le 8 Fév 2017
Réponse apportée : John D'Errico
le 8 Fév 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 commentaires
Réponse acceptée
John D'Errico
le 8 Fév 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 commentaires
Plus de réponses (1)
Naty Shemer
le 8 Fév 2017
Most probably (rt1./rft1) is negative and the log output of a negative number is imaginary...
0 commentaires
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!