Spacing in defining complex numbers?

2 views (last 30 days)
Knut on 8 May 2017
Answered: Guillaume on 8 May 2017
I just spent a while puzzling over a problem until it dawned on me:
a1 = [3.98994e-05 +1i*-0, 4.21732e-05 +1i*3.69849e-05];
Computes to :
1.0e-04 *
0.3990 + 0.0000i 0.0000 + 0.0000i 0.4217 + 0.0000i 0.0000 + 0.3698i
To get what I expected, I had to do the following (strip spaces):
[3.98994e-05+1i*-0, 4.21732e-05+1i*3.69849e-05]
1.0e-04 *
0.3990 + 0.0000i 0.4217 + 0.3698i
I am debugging a large vector written from C code, so my hunch was to spend quite some time looking for bugs in C-code before starting to look at the numerical interpretation in MATLAB.

Answers (2)

KSSV on 8 May 2017
You can try braces instead of space..
a1 = [(3.98994e-05 +1i*-0), (4.21732e-05 +1i*3.69849e-05)];

Guillaume on 8 May 2017
The whole reason for this is that you're not consistent with your spacing around the operators. Either put a space before and after the +, or none on either side. As it is, because of the space before and none after, the + is interpreted as the unary +.


Find more on Mathematics in Help Center and File Exchange


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!