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 日

0 投票

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 件)

カテゴリ

ヘルプ センター および File ExchangeEntering Commands についてさらに検索

質問済み:

2019 年 2 月 23 日

回答済み:

2019 年 2 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by