MATLAB Answers

Knut
0

Spacing in defining complex numbers?

Asked by Knut
on 8 May 2017
Latest activity Answered by 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.
-k

  0 Comments

Sign in to comment.

Products

2 Answers

Answer by 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)];

  0 Comments

Sign in to comment.


Answer by 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 +.

  0 Comments

Sign in to comment.