Unspecified behaviour of function imag.
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Noah Tang
am 30 Nov. 2021
Beantwortet: Walter Roberson
am 30 Nov. 2021
In version '9.10.0.1602886 (R2021a)', running
imag part
will return
[0 0 0 0]
I accidentally found this when trying to type "imagpart". How does this happen? Will it affect our program in other unanticipated ways?
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 30 Nov. 2021
This will not affect your code.
You are encountering Command/Function Duality https://www.mathworks.com/help/matlab/matlab_prog/command-vs-function-syntax.html
When you call
imag part
that is the same as if you had invoked
imag('part')
which is calling imag() on the vector of four characters, 'p', 'a', 'r', 't' .
In many circumstances, characters automatically convert to the numeric codes used to internally encode the characters, such as 112 for 'p', and 97 for 'a' . So imag() treats this as a vector of real-valued double precision numbers. But the imaginary() portion of those is all 0 so 0 0 0 0 gets returned.
0 Kommentare
Weitere Antworten (0)
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!