How to make exponents superscripted on plots instead of with e notation?

11 ビュー (過去 30 日間)
zero1342
zero1342 2015 年 7 月 1 日
編集済み: Muthu Annamalai 2015 年 7 月 23 日
I am displaying a variable in the title of a plot but I would like it to show with the exponent part superscripted instead of in the e notation. For example:
n0=10^25
plot(...)
title('n0')
This displays n0 as 1.0e+25 in the title instead of the 25 superscripted. Is there a way to do this in MATLAB without having to manually type a new string into the title every time?
I don't want to have to do this:
title('10^{25}')
Thanks for any help.

採用された回答

zero1342
zero1342 2015 年 7 月 1 日
ANSWER:
exponent = floor(log10(n0));
title(sprintf('n_{0} = %.2f x 10^{%d}',n0/10^exponent,exponent))

その他の回答 (1 件)

Muthu Annamalai
Muthu Annamalai 2015 年 7 月 1 日
Whereas some options may exist, a simple work around does the trick following your hint;
var2exp = @( varname, var ) [regexprep(sprintf('%s=%g',varname,var),'[e|E]','^{'),'}']
title(var2exp('n0',n0))
this is admittedly kludgy, but seems to suit your needs.
  2 件のコメント
zero1342
zero1342 2015 年 7 月 1 日
That's close but it doesn't display the 10 in the title, only a superscripted 25 above a 1.
Instead I've done this:
exponent = floor(log10(n0));
title(sprintf('n_{0} = %.2f x 10^{%d}',n0/10^exponent,exponent))
This code takes the exponent off the variable then reattaches it in the title.
Muthu Annamalai
Muthu Annamalai 2015 年 7 月 23 日
編集済み: Muthu Annamalai 2015 年 7 月 23 日
I'm not so sure.
Whereas my code will work for -ve numbers, your code may fail, and badly at that with some complex output for log10 of a 0 or -ve number.

サインインしてコメントする。

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by