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

8 Ansichten (letzte 30 Tage)
Doug Hull
Doug Hull am 18 Jan. 2011
I though i was for imaginary in MATLAB.

Akzeptierte Antwort

Doug Hull
Doug Hull am 18 Jan. 2011
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
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 Get Started with MATLAB finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by