real & imaginary part

26 ビュー (過去 30 日間)
sina arfaee
sina arfaee 2019 年 2 月 23 日
回答済み: John D'Errico 2019 年 2 月 23 日
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

採用された回答

John D'Errico
John D'Errico 2019 年 2 月 23 日
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.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeEntering Commands についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by