# how to write numbers with 10^ format in matlab?

16 views (last 30 days)
MP on 10 Aug 2022
Commented: MP on 11 Aug 2022
How to print 123456 as 1.2x10^5 in a matlab figure?
str5 = ['CC = ' num2str(123456) ];
str = sprintf('%s',str5);
annotation('textbox',[0.1 0.1 0.1 0.1],'String',str,'FitBoxToText','on');
Any help will be greatly appriciated.

Stephen23 on 10 Aug 2022
Edited: Stephen23 on 10 Aug 2022
str = strrep(sprintf('CC = %.1e',123456),'e','x10^')
str = 'CC = 1.2x10^+05'
str = regexprep(sprintf('CC = %.1e',123456),'e(\D)0*(\d+)\$','x10^\$1\$2')
str = 'CC = 1.2x10^+5'
Stephen23 on 10 Aug 2022
Edited: Stephen23 on 10 Aug 2022
"Why does that appear like this"
This is due to how the graphics engine interprets text. You need to either:
str = strrep(sprintf('CC = %.1e',123456),'e','x10^')
str = 'CC = 1.2x10^+05'
plot(0:1,0:1)
annotation('textbox',[0.5,0.5,0.1,0.1],'String',str,'interpreter','none')
MP on 11 Aug 2022
str = strrep(sprintf('CC = %.1e',123456),'e','x10\^');
worked!!
Thank you so much @Stephen23