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

2 次查看(过去 30 天)
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 CenterFile Exchange 中查找有关 Workspace Variables and MAT-Files 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by