why I get "complex number" for the common calculation?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
vx2008
am 8 Feb. 2017
Beantwortet: John D'Errico
am 8 Feb. 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 Kommentare
Akzeptierte Antwort
John D'Errico
am 8 Feb. 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 Kommentare
Weitere Antworten (1)
Naty Shemer
am 8 Feb. 2017
Most probably (rt1./rft1) is negative and the log output of a negative number is imaginary...
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical 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!