MATLAB: Is 6*i not a complex number in the program

imaginaryMATLAB

I though i was for imaginary in MATLAB.

Best Answer

  • 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]