Why is 6*i not a complex number in my program?

 Akzeptierte Antwort

Doug Hull
Doug Hull am 18 Jan. 2011

2 Stimmen

You may have used a variable called "i" earlier in your program or session, thus overwriting the imaginary constant i with your own number. In this case, MATLAB will use your new value for i instead of treating i as sqrt(-1). Five ways to ensure that you receive a complex result are:
  • Use the syntax 6i; MATLAB always interprets this as 6*sqrt(-1)
y = 6i;
  • Redefine i back to sqrt(-1)
i=sqrt(-1)
y = 6*i;
  • Clear your redefinition of i
clear i
y = 6*i;
  • Use j instead of i (assuming you haven't used a variable called "j" earlier in you program or session)
Note: these are very good reasons for not using i & j as indexes (in FOR loops, for example)
y = 6*j;
  • Use the COMPLEX function
y = complex(0, 6);
[From the MATLAB FAQ of Ancient Times]

Weitere Antworten (1)

Anish
Anish am 18 Jan. 2011

0 Stimmen

Looks like you might have a variable defined named "i" which is a real. If this is the case, then the "definition" of "i" as imaginary unit is overridden. For example:
i = 6;
disp(6*i)
Output:
36
See:

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by