real & imaginary part

10 visualizzazioni (ultimi 30 giorni)
sina arfaee
sina arfaee il 23 Feb 2019
Risposto: John D'Errico il 23 Feb 2019
Hi
My output is like (0.000 + 1.000i).
How I can show output without real part and like (1i)?
It is important that the output contain i.
Thanks a lot

Risposta accettata

John D'Errico
John D'Errico il 23 Feb 2019
There is not a display or command window preference that will allow you to do as you have indicated.
X = rand + i*rand
X =
0.981596208916383 + 0.496799421779149i
real(X)
ans =
0.981596208916383
imag(X)*i
ans =
0 + 0.496799421779149i
But now, you want to see this without the 0 real part. The thing is, if you create the number as imaginary, MATLAB sees it as complex. So it displays a zero real part.
I suppose nothing stops you from using sprintf though. So something like this?
sprintf('%.15fi',imag(X))
ans =
'0.496799421779149i'
Or this
disp(sprintf('%.15fi',imag(X)))
0.496799421779149i
Or
disp([num2str(imag(X),15),'i'])
0.496799421779149i
To do something more sophisticated than that, you would need to overload disp & display to intercept the result when your input has an imaginary part but no real part.

Più risposte (0)

Categorie

Scopri di più su Entering Commands in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by